Skip to main content

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
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

Complete Microservices with Go

Complete Microservices with Go

Sources: udemy
Create a microservices system from scratch using Go, Docker, and Kubernetes. Gain fundamental knowledge and readiness for real-world projects.
18 hours 31 minutes 16 seconds
Redis Internals

Redis Internals

Sources: Arpit Bhayani
This is a self-paced course in which you will study the internal workings of Redis by re-implementing its key features in Golang. Together we will...
9 hours 6 minutes 41 seconds
For the Love of Go: Book/Video Bundle

For the Love of Go: Book/Video Bundle

Sources: John Arundel
Hello, and welcome to learning Go! It's great to have you here. This is the bundled edition of ‘For the Love of Go’, a book introducing the Go programming langu
6 hours 12 minutes 54 seconds
AI Engineering with Go

AI Engineering with Go

Sources: ByteSizeGo
Learn to integrate AI into applications using Go. Create AI projects by mastering the LLM API, semantic search, and production deployment. The course is
11 hours 13 minutes 5 seconds
Ultimate Go: Software Design with Kubernetes 2.0

Ultimate Go: Software Design with Kubernetes 2.0

Sources: ardanlabs.com
This course will teach you how to develop advanced services in Go, using Domain Driven Design and Data Oriented Architecture approaches with deployment in...
22 hours 32 minutes 42 seconds