Lab
36 labs across three tracks. Each one opens when its lesson is done. Critique names the missing path and scores the design — it never just says wrong.
Unlock the first lab — start Client vs server (~6 min)FoundationFree — sign in
Name the pieces. Walk the request.
The spine. One component at a time, then four complete systems. Free once you have an account — progress still unlocks in order.
0/20 lessons · 0/12 labs0%
Free — create an account to keep progress.
- Label a request pathStarterLocked — finish client vs server in Learn.
- Survive a database hiccupCoreFree — sign inFree with an account — sign in from the header.
- Put a load balancer in frontCoreFree — sign inFree with an account — sign in from the header.
- Insert a cache on the read pathCoreFree — sign inFree with an account — sign in from the header.
- Put a CDN on static bytesCoreFree — sign inFree with an account — sign in from the header.
- Keep bytes out of the databaseCoreFree — sign inFree with an account — sign in from the header.
- Don't make the user wait on the jobCoreFree — sign inFree with an account — sign in from the header.
- Read-heavy profile serviceStretchFree — sign inFree with an account — sign in from the header.
- Design a URL shortenerStretchFree — sign inFree with an account — sign in from the header.
- Design pastebin / uploadsStretchFree — sign inFree with an account — sign in from the header.
- Design a rate limiterStretchFree — sign inFree with an account — sign in from the header.
- Design a small group chatStretchFree — sign inFree with an account — sign in from the header.
PractitionerBy request
Things fail. Design for it.
What the spine leaves out: timeouts, hot keys, sharding, and work that happens after the response. Labs stop telling you which box is missing.
0/23 lessons · 0/18 labs0%
Ask for access — free →
- Give every hop a deadlineCoreAsk for access to Practitioner →
- Stop the retry stampedeCoreAsk for access to Practitioner →
- Keep the floor from falling outStretchAsk for access to Practitioner →
- Stop calling the thing that is downCoreAsk for access to Practitioner →
- One key expires and everyone runsCoreAsk for access to Practitioner →
- One key is melting a shardStretchAsk for access to Practitioner →
- Add a cache node without a cold startStretchAsk for access to Practitioner →
- Split the write pathStretchAsk for access to Practitioner →
- Never lose the eventStretchAsk for access to Practitioner →
- Give the poison message somewhere to goCoreAsk for access to Practitioner →
- Log one user out everywhereStretchAsk for access to Practitioner →
- A feed that survives a celebrityHardAsk for access to Practitioner →
- Send a million without meltingHardAsk for access to Practitioner →
- Match without double-bookingHardAsk for access to Practitioner →
- See it before support doesCoreAsk for access to Practitioner →
- Ship to five percent firstCoreAsk for access to Practitioner →
- Read your own writeCoreAsk for access to Practitioner →
- Hold the seat, then give it backHardAsk for access to Practitioner →
ArchitectBy request
Many machines, one answer.
Consensus, multi-region, and ledgers that must never lose a rupee. The hardest labs here start from an empty canvas and have more than one defensible answer.
0/9 lessons · 0/6 labs0%
Ask for access — free →
- Make the read see the writeHardAsk for access to Architect →
- Write close, replicate farHardAsk for access to Architect →
- Bound the blast radiusHardAsk for access to Architect →
- Do not lose a rupeeHardAsk for access to Architect →
- Search that can be rebuiltHardAsk for access to Architect →
- The whole thing, at planet scaleHardAsk for access to Architect →