Watch it move
Every concept is a running simulation, not a static diagram. Requests travel, queues grow, servers fail, all in front of you.
Interactive engineering lessons
Step-by-step animated lessons on system design, networking and computer science. Watch requests move, predict what happens next, and break things on purpose.
Every dot is a request. The load balancer spreads them across four servers, checks each one's health, and routes around the ones that crash.
Every concept is a running simulation, not a static diagram. Requests travel, queues grow, servers fail, all in front of you.
The lesson pauses and asks what happens next. Committing to a guess before the answer is what makes it stick.
Crash servers, flood the traffic, flip algorithms. Then read the real NGINX or HAProxy config that does the same thing.
The syllabus
Each topic is a complete lesson you can finish in one sitting: a live simulation, questions that make you predict, and a playground to break things in.
One address, many servers. Algorithms, health checks, sticky sessions, Layer 4 vs 7, and failover.
Cache-aside, TTLs, eviction, and why invalidation is famously hard.
Serve bytes from the edge, close to every user on the planet.
Add a server and move only 1/N of the keys, not all of them.
Leaders, followers, failover, and the replication lag that bites.
Split a database that no longer fits on one machine.
Token buckets, leaky buckets and sliding windows, side by side.
Decouple services, absorb spikes, and retry safely.
What a network partition forces you to choose.
From URL to pixels: DNS, TCP, TLS and HTTP in one journey.
Watch data get wrapped layer by layer, sent, then unwrapped.
SYN, ACK, lost packets, retransmits and congestion control.
Root, TLD and authoritative servers in a single lookup.
How two strangers agree on a secret while everyone listens.
Head-of-line blocking, multiplexing and QUIC.
How billions of devices share a few billion addresses.
Keeping a line open for chat, games and live data.
Isolation, shared memory and context switches.
How one thread juggles thousands of tasks.
Buckets, collisions and resizing, one insert at a time.
Where your variables live, and how long.
Mark, sweep, and generational tricks.
Why memory layout can make code 10× faster.
Two threads, one counter, and a lost update.
Feel the difference between n, n log n and n².