
Build a Golang backend for a social network with login, posts, following, and a personalized feed. Learn rest api design, auth with email activation, and ci/cd deployment to Google Cloud.
Explore practical error handling in go with a truck distribution simulation, using explicit nil checks, errors package, and fmt.Errorf to wrap context for top‑level and http handlers.
Learn how goroutines enable concurrent processing by launching parallel truck tasks, compare sequential vs parallel execution, and use wait groups to synchronize completion for scalable Go programs.
Learn to build a http server with Go's net/http package by implementing a handler that consumes requests, writes responses, and routes basic paths using listen and serve.
Build a production-ready API by encoding and decoding JSON requests, setting headers and status codes, validating input, and returning user data via in-memory storage in Go.
Organize your backend into transport, service, and storage layers to avoid spaghetti code, inject abstractions via interfaces, and apply the saga pattern for cross-service transactions.
Set up a Go http API by creating a main application, config, and server with timeouts. Implement a v1 grouped router, health check, and recovery middleware for reliable requests.
Configure runtime application settings with environment variables using os.LookupEnv, load from dot env files or the drive tool, and prepare the storage layer and repository pattern in the next module.
Adopt the repository pattern to decouple business logic from data storage, abstract storage with an interface, and enable in-memory or SQL implementations for testing and flexibility.
Implement a repository pattern in Go by organizing storage with interfaces for posts and users, a Postgres storage, and a constructor to wire them into the app.
Model a one-to-many relationship between users and posts and implement reproducible SQL migrations with Golang migrate or goose, including up and down scripts, version history, rollback, and related tooling.
Develop a get post by id endpoint in Go, with route grouping, explicit field selection, and robust not found and internal error handling.
Add comments support to posts by creating a comments table with post_id and user_id. Build a comments store to fetch posts with associated comments and user details.
explains building a Go seed script to populate the database with users, posts, and comments using a reusable seed function and a seed executable.
Implement a followers feature with a followers table using a composite key (user_id, follower_id), enabling put-based follow and unfollow endpoints and duplicate protection for personalized feeds.
In this project-based course, we will build a complete REST API in Go from scratch and deploy it to the cloud, ready to handle real traffic and scale affordably.
Our journey begins by creating a simple TCP server, which will help us explore the net/http package in Go and understand the basics of handling network communication.
Next, we’ll dive into the theory behind building reliable and composable Go web applications. From there, we’ll develop our project step-by-step, covering carefully curated topics such as request handling, middleware creation, database integration, request and database optimisations and rate limiting to equip you with the skills needed to ship real backend services to the cloud and manage real-world traffic efficiently.
This course aims to provide you with the foundational knowledge required to build and understand backend systems, implement industry best practices, and create production-ready APIs that are secure, scalable, and maintainable. It is not just a step-by-step tutorial, but a comprehensive learning experience that prepares you for real-world scenarios.
Legal Notice:
All product and company names, logos, and trademarks featured on this thumbnail are the property of their respective owners. Their use in this course does not imply any affiliation, sponsorship, or endorsement by these companies.