Challenges

Each challenge is a small part of a real backend. Build it by hand and check it stage by stage.

Data structures

Useful, less-known data structures, built by hand.

Load and timing

Limits, retries and timers that keep a service up under load.

Data consistency

Records, money and replicas that stay correct when many things happen at once.

Protocols and sockets

Wire formats, protocol states and real sockets with injected faults.