Skip to main content
CF

Backend Engineering with Go

17h 6m 22s
English
Paid

Embark on a journey to master Backend Engineering with Go through this practice-oriented course. Build a robust REST API in Go from scratch and deploy it in the cloud, preparing it for real traffic and scalable growth with minimal costs.

Getting Started

We will kick off with the creation of a basic TCP-server to familiarize ourselves with the net/http package, gaining a strong foundation in network interactions using Go.

Course Highlights

As you progress, you'll dive into the architectural principles necessary for building reliable and modular web applications in Go. The project will evolve step by step, covering crucial topics such as:

  • Handling HTTP requests effectively
  • Developing custom middleware solutions
  • Integrating and managing databases
  • Optimizing database queries and interactions
  • Implementing rate limiting techniques
  • Preparing for cloud deployment and managing real traffic

Course Benefits

This course offers more than just a simple guide—it provides a comprehensive training experience, aimed at instilling a deep understanding of backend systems. You'll master industry best practices for creating secure, scalable, and maintainable APIs that are production-ready.

Designed for those eager to move beyond basic solutions, this course equips you with the skills to develop real backend services in Go, ideal for real-world projects.

Additional

https://github.com/sikozonpc/GopherSocial

About the Author: Udemy

Udemy thumbnail

Udemy is the largest open marketplace for online courses on the internet. Founded in 2010 by Eren Bali, Oktay Caglar, and Gagan Biyani and headquartered in San Francisco, the company went public on the Nasdaq in 2021 under the ticker UDMY. The platform hosts well over two hundred thousand courses across software development, IT and cloud, data science, design, business, marketing, and creative skills, taught by tens of thousands of independent instructors. Roughly seventy million learners use it worldwide, and the corporate arm — Udemy Business — supplies a curated subset of that catalog to enterprise customers.

Because Udemy is a marketplace rather than a single editorial publisher, the catalog is uneven by design. The strongest material lives in the long-form, project-based courses authored by working engineers — full-stack JavaScript, React, Node.js, Python data science, AWS, Docker and Kubernetes, mobile development with Flutter and React Native, and cloud certification preparation. The CourseFlix listing under this source is the slice of that catalog that has been mirrored here for offline-friendly viewing, organized by topic and updated as new releases land. Pricing on Udemy itself swings dramatically with the site's near-permanent sales, which is why the platform is best treated as a deep reference catalog: pick instructors with strong reviews and a track record of updating their material rather than buying on the headline price alone.

Watch Online 77 lessons

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

Related courses

Frequently asked questions

What are the prerequisites for enrolling in this course?
The course assumes a basic understanding of programming concepts and some familiarity with Go. It will be beneficial if you have prior experience with general coding practices, as the course covers advanced topics such as concurrency with channels, goroutines, and pointers. However, the course starts with foundational topics like setting up a development environment and understanding the net/http package, making it accessible for those looking to deepen their Go skills.
What projects will I build during the course?
You will build a robust REST API in Go from scratch. The project includes developing a TCP server, handling HTTP requests, creating custom middleware, and integrating databases. You will also work on a capstone project that encompasses creating a user feed post, managing database relationships, and implementing authentication features like user registration and generating tokens. The project is designed to prepare you for deploying scalable backend services.
Who is the target audience for this course?
This course is tailored for individuals who aim to advance beyond basic backend solutions and are eager to develop real-world backend services using Go. It is ideal for software developers and engineers who wish to master backend engineering principles and best practices. Those interested in building scalable and maintainable APIs in a production environment will find this course particularly beneficial.
How does this course compare in depth and scope to other backend courses?
The course offers a thorough exploration of backend engineering with Go, focusing on creating secure, scalable APIs. Unlike basic courses, it delves into complex topics such as implementing the repository pattern, optimizing database queries, managing SQL transactions, and documenting APIs. It provides a hands-on approach through a comprehensive capstone project, which sets it apart from more general backend courses by applying architectural principles to real-world scenarios.
What specific tools and platforms will I learn in this course?
You will learn to use the net/http package for building HTTP servers and handling requests. The course covers database management and SQL operations, including configuring database connection pools and performing SQL migrations. You'll also explore tools for hot reloading in Go, creating environment variables, and implementing rate limiting techniques. Additionally, you'll learn about generating tokens for authentication and using MailTrap for email testing.
What topics are not covered in this course?
The course does not cover frontend development or client-side technologies. It focuses exclusively on backend engineering principles using Go. While it provides comprehensive training on building and deploying backend services, it does not include topics related to other programming languages, frontend frameworks, or machine learning. The emphasis is on mastering backend systems and preparing them for cloud deployment.
What is the expected time commitment for completing this course?
Though the course features a total of 77 lessons, the specific runtime isn't provided. Given the comprehensive nature of the content, students should expect to dedicate significant time to both the lessons and hands-on projects. Balancing time between learning the theoretical aspects and applying them to the capstone project will be crucial. Students are encouraged to progress at their own pace, ensuring thorough understanding and skill application.