Skip to content
← Notes

Go

Go from fundamentals to production

  1. 01 Getting Started with Go Why Go exists, how to set it up, and your first program — understand the philosophy before writing a single line.
  2. 02 Types, Variables & Control Flow Go's type system is simple but strict — learn the building blocks before you build anything real.
  3. 03 Functions & Error Handling Go's approach to functions and errors is radically different from most languages — explicit, composable, and impossible to ignore.
  4. 04 Pointers & Memory Pointers let you share data without copying it — understand them once and never be confused by & and * again.
  5. 05 Structs & Methods Go doesn't have classes — it has structs with methods. Simpler, more explicit, and surprisingly powerful.
  6. 06 Interfaces & Polymorphism Go interfaces are implicit — no 'implements' keyword needed. This changes everything about how you design software.
  7. 07 Generics Write code that works with any type — Go 1.18's biggest feature eliminates boilerplate without sacrificing type safety.
  8. 08 Packages, Modules & Testing How to organize Go code for real projects — dependency management, package design, and writing tests that catch real bugs.
  9. 09 Strings, Runes & Encoding Go strings are UTF-8 byte slices — knowing this prevents an entire class of bugs when handling international text, emojis, and binary data.
  10. 10 Concurrency with Goroutines Go's concurrency model is its killer feature — goroutines and channels make concurrent programming feel natural, not terrifying.
  11. 11 Advanced Concurrency Patterns Context, sync primitives, worker pools, and the patterns that power Go at scale — from Uber to Cloudflare.
  12. 12 Working with Data JSON, HTTP clients, databases, and file I/O — the bread and butter of every Go backend service.
  13. 13 Building REST APIs A complete, production-grade REST API from scratch — routing, validation, error responses, and the project structure used at real companies.
  14. 14 Authentication & Middleware JWT authentication, middleware chains, CORS, rate limiting — the security and cross-cutting concerns every API needs.
  15. 15 Database Patterns Migrations, repository pattern, connection pooling, and query builders — the database layer that scales.
  16. 16 gRPC & Protocol Buffers High-performance service-to-service communication — gRPC is what REST wants to be when services talk to each other.
  17. 17 WebSockets & Real-Time Build real-time features in Go — chat, live updates, notifications — using WebSockets and Go's concurrency model.
  18. 18 Error Handling at Scale Beyond 'if err != nil' — error wrapping strategies, domain errors, error budgets, and patterns from large Go codebases.
  19. 19 Testing Strategies Unit tests, integration tests, test fixtures, mocking, and testcontainers — testing that catches real bugs, not just checkbox coverage.
  20. 20 Observability Logs, metrics, and traces — the three pillars that let you understand what your Go service is doing in production.
  21. 21 Production Go Logging, configuration, graceful shutdown, profiling, and deployment — everything between 'it works on my machine' and running at scale.
  22. 22 Building CLI Tools Go's single-binary output makes it perfect for CLI tools — build developer tools, automation scripts, and DevOps utilities.
  23. 23 Design Patterns in Go Go's simplicity changes how you apply classic patterns — no classes, no inheritance, just composition and interfaces.
  24. 24 Security Best Practices SQL injection, XSS, CSRF, secrets management, and cryptography — secure your Go services against real-world attacks.
  25. 25 Case Study: URL Shortener Build a complete URL shortener from scratch — applying everything you've learned: HTTP, database, caching, testing, and deployment.