Backend Engineering with Go

17h 6m 22s
English
Paid

Course description

In this practice-oriented course, we will build a full-fledged REST API in Go from scratch and deploy it in the cloud, ready for real traffic and scaling with minimal costs.

Read more about the course

Where we'll start:

We will start by creating a simple TCP-server to get acquainted with the net/http package and understand the basics of network interaction in Go.

What you will learn:

Then we will delve into the architectural principles of building reliable and modular web applications in Go. The project will develop step by step, and you will go through key topics such as:

  • Handling HTTP requests
  • Creating custom middleware
  • Database integration
  • Optimizing queries and database interaction
  • Rate limiting
  • Preparing for cloud deployment and handling real traffic

What this course will give you:

This course is not just a step-by-step guide - it is a comprehensive training aimed at developing a deep understanding of backend systems, mastering industry best practices, and creating secure, scalable, and maintainable APIs ready for production.

It is perfect for those who want to go beyond template solutions and learn how to develop real backend services in Go that are ready for real-world projects.

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 77 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online Backend Engineering with Go

0:00
/
#1: Project Overview

All Course Lessons (77)

#Lesson TitleDurationAccess
1
Project Overview Demo
09:50
2
Why Go with Go?
02:08
3
Preface for Udemy Students
01:19
4
Design Principles for a REST API
08:55
5
Effective Error Handling
15:29
6
Interfaces
16:17
7
Testing
06:18
8
Pointers
12:16
9
Goroutines
10:14
10
Context and Timeouts
13:30
11
Concurrency with Channels
13:21
12
Maps
06:21
13
Capstone Project (Exercise)
02:14
14
Capstone Project Solution
02:31
15
Map Concurrency & Mutexes
12:07
16
TCP Server - net package
08:28
17
Understanding Routing
03:55
18
HTTP Server - The net/http package
11:03
19
Encoding & Decoding JSON Requests
07:45
20
Setting up your Development Environment
07:52
21
Clean Layered Architecture
11:32
22
Setting up the HTTP server and API
18:12
23
Hot Reloading in Go
03:31
24
Environment Variables
06:57
25
The Repository Pattern
09:21
26
Implementing the Repository Pattern
07:52
27
Persisting data with SQL
12:54
28
Configuring the DB Connection Pool
17:16
29
SQL Migrations
15:41
30
Marshalling JSON responses
14:26
31
Creating a User Feed Post
14:20
32
Getting a Post From a User
11:42
33
Internal Errors Package
07:07
34
HTTP Payload Validation
07:44
35
DB Relationships & SQL Joins
05:05
36
Adding Comments to Posts
15:45
37
Updating and Deleting Posts
23:30
38
Standardising JSON Responses
03:08
39
Optimistic Concurrency Control
14:10
40
Managing SQL Query Timeouts
04:53
41
Database Seeding
18:56
42
Creating the User Profile
11:23
43
Adding Followers
25:11
44
SQL Indexes
08:49
45
User Feed Algorithm
21:13
46
Pagination and Sorting
14:48
47
Feed Filtering
15:13
48
Auto Generating Docs for the API
16:01
49
Documenting the Handlers
09:27
50
Adding a Logger
12:33
51
User Registration Overview
26:02
52
SQL Transactions
23:02
53
User Activation
25:39
54
Sending the Invitation Email
39:25
55
(Optional) Sending Emails using MailTrap
07:29
56
Improving Further the Email
11:48
57
Extra: Building the Confirmation UI
18:25
58
Authentication Overview
23:53
59
Basic Authentication
14:28
60
Generating Tokens
27:08
61
Validating Tokens
20:10
62
Authorization Overview
06:51
63
Authorization Database Setup
09:04
64
Role Precedence Middleware
19:43
65
Fixing the User Invitation
05:03
66
Designing for Performance
08:12
67
Caching the User Profile
38:12
68
Testing Overview
06:41
69
Testing the User Handler
28:07
70
Spies
08:25
71
Graceful Server Shutdown
11:58
72
Rate Limiting our API
21:52
73
Handling CORS errors
13:46
74
Basic Server Metrics
10:03
75
Continuous Integration
14:26
76
Changelog
11:35
77
Deploying to Google Cloud
24:22

Unlock unlimited learning

Get instant access to all 76 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Go Programming (Golang): The Complete Developer's Guide

Go Programming (Golang): The Complete Developer's Guide

Sources: zerotomastery.io
Learn Golang from scratch, from an industry expert. Build real-world apps. You'll learn the fundamentals all the way to advanced concurrency so that you go from
13 hours 10 minutes 35 seconds
Advanced Branching and Looping in GO

Advanced Branching and Looping in GO

Sources: pluralsight
GO is a relatively new programming language. In this course, Advanced Branching and Looping in GO, you will gain the ability to effectively use the GO for loop statement, and th...
1 hour 14 minutes 40 seconds
How to develop a productive HTTP client in Golang (Go)

How to develop a productive HTTP client in Golang (Go)

Sources: udemy
Have you ever called a REST API from your Go program? Did you implemented your own HTTP client or did you ended up using some of the thousand libraries out there? Do you know wh...
9 hours 44 minutes 29 seconds
Building Modern Web Applications with Go (Golang)

Building Modern Web Applications with Go (Golang)

Sources: udemy
Learn to write modern, fast, and secure web applications in Google's Go programming language, and learn it from an award winning University professor with 20 years of teaching e...
29 hours 6 minutes 20 seconds