System Design
Design questions from real interviews, each with a full walkthrough you can read end to end.
Grow one server into a fleet, one bottleneck at a time, from replicas and caches to shards.
Turn long links into short codes and redirect billions of clicks fast.
Hand out sortable, collision-free 64-bit IDs from many machines at once.
Cap how often each client can call an API, consistently across a fleet.
Partition, replicate and heal a store that stays up when machines fail.
Serve hot reads from memory across many nodes without stale surprises.
Fetch and de-duplicate billions of pages politely, then keep them fresh.
Return the top completions for every keystroke in under 100 ms.
Build every user a ranked timeline from the people they follow.
Upload, store and serve photos to a feed, with likes and follows.
Deliver one-to-one and group messages in real time, even to offline users.
Fan out push, email and SMS reliably without spamming anyone.
Let many people edit one document at once and always converge.
Ingest, transcode and stream video at every bitrate around the world.
Sync files across devices, upload only what changed, and resolve conflicts.
Match riders with nearby drivers and track every trip live.
Find the best businesses within a radius of any point, fast.
Sell a fixed set of seats to a crowd without ever double-booking.
Move money exactly once, reconcile it, and survive every retry.
Run millions of one-off and recurring jobs on time, at least once.
Rank millions of players by score and show anyone their position instantly.