Build the system to learn the system
Reading about concurrency teaches you the vocabulary. Causing a lost update at 2am teaches you concurrency. These tracks are small, deliberately peculiar systems — a bank that loses money, a load balancer that picks the wrong backend, a cache that does the same work twice — ordered so that each one’s bug sets up the next one’s idea.
Each exercise gives you the requirements and the failing behaviour, then progressive hints, then solutions that stay shut until you open them. Every solution is written three times — Go, Java and Python — and each exercise ends by comparing them, because the same bug is loud in one language, silent in another, and hidden behind the GIL in the third. The order matters more than the volume.
Concurrency
Java · Go · Python · 4 of 10 writtenTen systems that break until you understand concurrency — solved in Go, Java and Python.
Concurrency is not a syntax you learn, it is a set of failures you have personally caused. Rather than ten unrelated toys, this track builds two systems properly. The first three exercises are a bank: money vanishes, then the fix deadlocks, then a rate limiter shows that the clock is harder than the lock. The remaining seven are one load balancer, built up from a registry you can add backends to into something with health checks, a connection pool, a circuit breaker, graceful draining and consistent hashing — each exercise adding a capability and, with it, a new class of bug that the previous design could not have had. Every exercise is solved three times, in Java, Go and Python, because the same bug is silent in one language, loud in another, and disguised by the GIL in the third.
Isolation Levels
SQL · PostgreSQL vs MySQL · 3 of 10 writtenEvery anomaly the SQL standard permits, reproduced on purpose — and what real systems actually run.
Almost every production database in the world runs at an isolation level that allows its application to be wrong, and almost nobody who chose that level could name the anomalies it permits. This track fixes that from the other direction: rather than reading the definitions, you open two psql sessions and cause each anomaly deliberately — a dirty read, a non-repeatable read, a lost update, a phantom, a write skew — then fix it, then find out what the fix costs. The same scripts run against PostgreSQL and MySQL, which disagree about almost everything here, including what their own default level means.