Learn Go by building distributed systems.
A 26-week guided path from "I know JavaScript" to "I solved all six Fly.io Gossip Glomers in Go." You learn in small katas, verify with a CLI, and publish your journey as a public GitHub portfolio. The test is the source of truth — self-report is banned.
Free · stdlib-only · 43 tasks · 22 drills · open curriculum
How it works
Four-level mastery, not checkboxes
Every task is unseen → learning → proficient → automatic. You advance by passing the task's test — spaced retrieval at 3 / 7 / 21 / 60 days locks it in. Miss a review, mastery drops. Durable learning, not exposure.
A prereq DAG, not a linear list
43 tasks across six phases, wired by explicit prerequisites. The graph refuses to surface a task whose prereqs you haven't cracked yet. Placement quizzes at each phase entry let you skip what you already know.
Your repo is your portfolio
Run go-dojo init my-dojo once — it scaffolds a fresh repo. Every go-dojo verify commits the attempt. Push to GitHub and your commit history becomes your learning story. No accounts on our servers, no telemetry, no lock-in.
The end point
Phases 0–4 exist so that when you open Fly.io's Gossip Glomers — six distributed-systems challenges that are the whole reason backend engineers love Go — you already own goroutines, channels, JSON, TCP, gossip protocols, and CRDTs. You ship a distributed key-value store with CRDT merge semantics, unaided. No tutorial hell. No copied solutions.
Not a course
We don't make videos. We don't assign reading. We curate the sequence — the one nobody else provides — and verify that you did the work. Lessons link to the Go blog, Russ Cox's essays, Jon Gjengset's streams, MIT 6.824. The glue in between is ours.