go-crucible
A Go debugging training repository where every exercise is a real, runnable bug embedded in a realistic application context. Find the bug, understand why it exists, fix it, and confirm the fix with the provided test. No Kubernetes cluster required — all tests run locally against in-process fakes.
What’s Inside
- 21 exercises across three application contexts: a Kubernetes resource auditor (
kube-patrol), a GitHub Actions workflow toolchain (gh-forge), and a metrics pipeline daemon - Three difficulty tiers — from beginner-level Go fundamentals (nil map writes, swallowed errors), through intermediate concurrency and context misuse, up to advanced compound failures (timer leaks, graceless shutdown, race conditions)
- Race-detection exercises specifically designed to be observed under
go test -race - Progressive hints in each exercise, plus reference solution patches that round-trip cleanly with
git apply - A parallel review track that presents simulated pull requests as unified diffs and asks for structured review comments, training the reflex of reading change rather than isolated code
Why It Exists
Most Go training material teaches the language. This one trains the debugging muscle: reading unfamiliar code under realistic conditions, forming hypotheses, and confirming them with tests and tools like the race detector. The application contexts were chosen to mirror the kinds of systems SREs and platform engineers actually maintain.