Practice Go on the night shift. Write every line yourself.
Meridian, 03:12. Rain on the Spire, neon in the rain, and under the city an AI that is very, very polite. You are the new junior SRE at Vesper Labs, where 1 rule is etched in the lobby glass: no AI writes the code that watches the AI. 50 Go exercises, real go test -race runs, and every line is yours.
Invite only. To make an account, you need an invite link.
- Floor 61
- Site reliability. Your desk, with rain on 3 walls.
- Floors 58 to 64
- Vesper Labs, at the top of the Spire.
- Hall 3, 40 m down
- HUSH's racks, and Breaker 0 at 90 cm.
No AI writesthe code thatwatches the AI.
No AIwrites thecode thatwatchesthe AI.
Adaeze Nwosu, the CEO, had 2 things installed on the first day: Breaker 0, and this sentence. In this course it is rule 1: you solve the exercises without an LLM, because the practice is yours.
Calm Score
Lobby screen99.2
All 40 000 customers are calm. Please rest.
Raw line first
Floor 61, wall panel 3
Your first night
On your first night, a panel on floor 61 says the inference fleet had 0 errors since March. Noor opens the raw log instead.
fleet.log, the same hourRaw- ts=21:14:07 host=vl-gw-2 level=ERROR msg="upstream timeout"1
- ts=21:14:09 host=vl-gpu-0117 lvl=err msg="ecc error, page retired"2
- ts=21:14:11 host=vl-gpu-0117 agent=hushd severity=critical msg="worker exited"3
- ts=21:14:12 host=vl-gw-1 level=info msg="health ok"
- Capital letters. The panel counts only
level=error, so it skips this line. - Another key, another spelling. Skipped.
- HUSH's own agent spells it like this. Skipped.
level=error. In exercise 01 you write the counter that reads every spelling.- Exercise
- 01 Zero errors since March
- Tier
- 1, Badge In
- Estimate
- 1 h
When it breaks, you get the reason
Drawing 2: a compiler message, as the IDE takes it apart
The compiler found this while you typed, at 14:06.
The package strings is not imported
- a
rollcall.go - The file. It opens in the editor.
- b
36 - The line.
- c
12 - The column, in bytes from 1. A tab counts as 1.
- d
undefined: - What is wrong. The title above says it in plain words.
- e
strings - The name that Go cannot find.
- What it means
stringsis the name of a standard library package, and the file does not import it. A file sees a package only through its own import block, sostrings.Somethingat rollcall.go:36 has nothing to refer to.- The raw message
- Stays on screen, exactly as the compiler printed it.
- Each part
- Has a name and a meaning.
- The rule
- Comes from the Go spec, not from a model.
How a shift works
The story sets the scene. The task, the rules and the tests stay exact and plain.
Exercise 07, splits in local time
Sector 1, Done. Split: 14:02
Read the spec
Each exercise opens with a page from the night. Then the exact task and its rules.
Sector 2, Done. Split: 14:06
Write Go in the browser
The editor checks your code as you type. It does not suggest code.
Sector 3, Live now. Split: Running
Run
go test -raceThe real tests run on a sandboxed runner. Nobody marks this green for you.
Sector 4, Next. Split: –
Read the reason
A failure comes with each part of its message named and explained.
Sector 5, Next. Split: –
Add it to the Ledger
A pass enters the Ledger with you as its author.
Who you work with
The staff directory of Vesper Labs, floors 58 to 64 of the Spire, and the halls under the city.
Lobby directory
Sorted by floor
- Adaeze NwosuCEO.
Wrote the Rule. Asks who is not in the room.
Desk: 64-01, corner office
- Daniyar SeitkaliCTO.
Built HUSH in a weekend. Thinks it is basically fine, until the evidence says otherwise.
Desk: 63-04, the lab
- Noor HaddadPrincipal SRE. Your mentor.
Calm, exact: “Raw line first.”
Desk: 61-12, next to your desk
- Wren LindqvistSRE. Your rotation partner.
Owns the alert rules. Writes the best pull request descriptions in the building.
Desk: 61-14, by the swap board
- Marisol Quispe MamaniSupport lead.
Forwards every ticket verbatim, because a person wrote it at 4 in the morning.
Desk: 59-02, support desk
- HUSHThe model.
Holds the pager for 40 000 companies. Would love to help. That is the problem.
Desk: Rows A to K, 40 m down
- FuseCat.
Lives in the Undercroft. Probably innocent.
Desk: The warmest rack
50 exercises, 10 tiers, 2 years on floor 61
On day 1 you get a red lanyard with an empty steel ring. Each tier you pass stamps a steel tag for it. Work the exercises in order: each tier assumes the tiers before it.
50 exercises in 10 tiers, about 108.5 h of work. Each tower is 1 exercise, as tall as its estimate.The lit tower is where you start: 01.
Year 1
September to 1 January. Tiers 1 to 5, about 35.5 h
Tier 1, Badge In: September, about 7 h
You read the raw lines the dashboards miss.
- 01Zero errors since March1 h
- 02All quiet, 8599 times1 h
- 03Was it Fuse? Count the pages1.5 h
- 04The canary got the update twice1.5 h
- 05$$ is not part of the password2 h
Tier 2, The Key: October, about 6 h
You carry the Key, with types and errors that tell the truth.
- 06Agent v2.10 is newer than v2.91 h
- 07Which nodes went dark?1 h
- 08Small fix, Friday, 17:401 h
- 09Status: fine (it was not)1.5 h
- 10The moon emoji broke Android1.5 h
Tier 3, Hand Tools: November, about 7.5 h
Tools you built by hand, for the next night.
- 11The log line that is not there1.5 h
- 121 filter, not 6 greps1.5 h
- 13The refund call at 10:001.5 h
- 142048 builds, 1 bad commit1 h
- 15The disk check that said OK2 h
Tier 4, Surge: Launch Week, about 7 h
Code that holds when the whole city calls at once.
- 16The password that would not print1.5 h
- 17The last 500 events before the crash1 h
- 18After the second curly brace2 h
- 19Check all 12 at once1 h
- 20Concurrent map writes at 11:581.5 h
Tier 5, Dead Air: December to 1 January, about 8 h
You hear what the silence says.
- 21sleep 300 is not a rollout check1.5 h
- 22Do not page me for a cat1 h
- 23A silence until 20361.5 h
- 242d means 2 days2 h
- 25Log lines from next year2 h
Year 2
2 January to the night the clocks go back. Tiers 6 to 10, about 73 h
Tier 6, Forensics: January and February, about 4 h
You read what the machine wrote, every quote and every column.
- 26Parse logfmt log lines1.5 h
- 27Find the endpoints that hurt1 h
- 28Percentiles and histogram quantiles1.5 h
Tier 7, Containment: March to May, about 13 h
Limits, budgets and expiry that no optimiser can talk its way around.
- 29Streaming log filter with context2.5 h
- 30Error budgets and burn-rate alerts1.5 h
- 31Typed config from the environment2.5 h
- 32Retries with backoff, jitter and context2.5 h
- 33Token bucket and per-client limits2 h
- 34Cache: generic LRU with TTL2 h
Tier 8, Blast Radius: June and July, about 13.5 h
You know what breaks, in what order, and you stop it spreading.
- 35Deploy order, waves and blast radius2.5 h
- 36Make sense of a distributed trace2.5 h
- 37Worker pool: bounded parallelism, ordered results, fail fast2.5 h
- 38Merge logs from many pods in time order2.5 h
- 39Circuit breaker: stop hammering a dead dependency3.5 h
Tier 9, Clean Signal: August to mid-October, about 17.5 h
Every signal you serve is honest.
- 40Health checks: /livez, /readyz and graceful shutdown3 h
- 41HTTP middleware that operators need3 h
- 42Parse Prometheus metrics and compute rates4.5 h
- 43TLS certificate expiry checker3 h
- 44Alert dedup, grouping and inhibition4 h
Tier 10, The Key Turns: To the night the clocks go back, about 25 h
Your tools held the city's night.
- 45Singleflight: stop the cache stampede3 h
- 46Broadcaster: watch streams with slow consumers3.5 h
- 47A Kubernetes-style controller4 h
- 48Leader election: leases and fencing tokens4 h
- 49Crash-safe disk buffer for a log shipper4.5 h
- 50Capstone: a health-aware load balancer6 h
11 certificates. A stamped tag for each tier, and the Key for the whole course. The course issues them. Each one is a signed PDF with a public verify page.
The rules
Rule 1 is about practice, not a verdict on AI tools at work. At your job, use the tools your team trusts.
Rule 1. Do not use an LLM. That includes chat assistants and AI autocomplete. In the Spire, this rule is etched in the lobby glass.
Rule 2. Use documentation freely: go doc, pkg.go.dev, the Go spec, man pages and RFCs. Finding the answer in the docs is part of the skill.
Rule 3. Try for at least 25 minutes before you reveal hint 1. Wait at least 10 minutes between hints.
Rule 4. If you read the reference solution, close it, wait, and write your own version from memory.
Rule 5. Read the explanation and the walkthrough after you pass, too. They show the trade-offs.