Welcome to Go for Platform Engineering
Go is the language platform infrastructure is written in: Docker, Kubernetes, Terraform, Prometheus, Vault. All Go. This course teaches you to build the same kind of tooling yourself. No more gluing shell scripts together. No more fighting YAML generators. Write real programs that automate your platform.
What We're Building
Each lesson produces a working tool you can drop into your workflows:
- Lesson 1 —
devctl: a Cobra-based CLI with subcommands, Viper config, and JSON/table output - Lesson 2 — SSH executor: programmatic remote command runner with jump host and file transfer support
- Lesson 3 — Docker manager: container lifecycle automation via the Docker Go SDK
- Lesson 4 — Image builder: OCI image construction without a running Docker daemon
- Lesson 5 — K8s client: a tool that lists, watches, creates, and patches Kubernetes resources
- Lesson 6 — WebApp operator: a full Kubernetes operator with CRD, controller, and reconciliation loop
- Lesson 7 — Pulumi deployer: infrastructure-as-code runner using the Pulumi Automation API
- Lesson 8 — GitOps commit bot: clones a repo, creates a branch, commits a config change, and pushes
- Lesson 9 — Vault config loader: authenticates to HashiCorp Vault, reads dynamic secrets, injects env
- Lesson 10 — Prometheus exporter: custom metrics collector implementing the
Collectorinterface - Lesson 11 — Log pipeline: tail-based log agent that parses, enriches, and ships structured events
- Lesson 12 — Health probe server: liveness, readiness, and dependency health checks with circuit breakers
- Lesson 13 — CI/CD runner: custom pipeline executor with artifact management and status reporting
- Lesson 14 — Deploy controller: rolling, blue-green, and canary deployer with automatic rollback
Why This Course?
- Practical: every lesson builds a tool you'd actually use on the job
- Cloud-agnostic: focuses on Docker, Kubernetes, and open-source tooling, no vendor lock-in
- Production patterns: error handling, retries, graceful shutdown, and observability baked in from the start
- Fills the gap: sits between "Go in Practice" (HTTP services) and "Go Systems Programming" (low-level OS) — purpose-built for engineers building and maintaining internal platforms
Prerequisites
Complete Go Essentials and Go in Practice. You should be comfortable with HTTP servers, JSON handling, interfaces, and error patterns. Familiarity with Go Concurrency Patterns helps for the operator and pipeline lessons. You should also have basic Docker and Kubernetes knowledge. This course teaches the Go SDK, not container fundamentals.
Course Structure
We start with CLI foundations, move into the container and Kubernetes ecosystem, then cover infrastructure automation and observability, and finish with deployment pipelines. Each lesson builds on the previous ones but can also stand alone as a reference. Pick your first lesson from the sidebar!