🐹 Go for Software Engineers: Complete Curriculum Index
Welcome to the Go Software Engineering curriculum. This track is structured from a backend software engineer's perspective, covering the Go memory model, goroutine concurrency, REST/gRPC APIs, database persistence, event streaming with Kafka, Clean Architecture microservices, OpenTelemetry observability, testing, and minimal Distroless containerization.
Every guide in this series strictly follows a two-part learning format:
- ⚡ Quick Dive: Syntax cheat sheets, concurrency matrices, and CLI one-liners.
- 📖 Extended Guide: Deep memory layouts, runnable Go implementations, failure modes, and performance optimization.
📚 Curriculum Roadmap
| # | Guide | Primary Topics Covered |
|---|---|---|
| 01 | Go Language Fundamentals & Memory Model | Stack vs. heap allocation, escape analysis (-gcflags="-m"), slice headers, and interface dispatch (iface/eface). |
| 02 | Go Concurrency, Goroutines & Channels | The GMP runtime scheduler, channel states, worker pools, errgroup, sync.Mutex, and context cancellation. |
| 03 | Go REST APIs & Web Frameworks | Standard net/http (Go 1.22+ routing), Chi router, Gin, composable middleware, and graceful shutdown. |
| 04 | Go gRPC & High-Performance RPC | Protocol Buffers (proto3), unary and streaming RPCs, server interceptors, and deadline propagation. |
| 05 | Go Database Persistence: SQL & GORM | Connection pooling with pgxpool, type-safe SQL with sqlc, raw database/sql, and GORM. |
| 06 | Go Event-Driven: Kafka & RabbitMQ | Kafka consumer groups (segmentio/kafka-go), partition offset commits, and RabbitMQ manual ACKs (amqp091-go). |
| 07 | Go Microservices & Clean Architecture | Domain-Driven Design (DDD), Hexagonal / Clean Architecture boundaries, and Circuit Breakers (sony/gobreaker). |
| 08 | Go Observability: OpenTelemetry & Metrics | Structured JSON logging with log/slog, Prometheus metrics, and distributed tracing with OpenTelemetry SDK. |
| 09 | Go Testing, Mocking & Benchmarking | Table-driven testing, testify, Mockery interface mocking, Testcontainers PostgreSQL, and memory micro-benchmarks. |
| 10 | Go Production Docker & Distroless | Multi-stage Docker builds, static CGO-free compilation (-ldflags="-w -s"), and Distroless images under 15MB. |