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