Overview
Alex Xu (former Twitter, Apple, Zynga, Oracle; CMU) — Practical guide to system design interviews with a step-by-step framework and detailed worked examples for 15 common design problems.
Design Problems Covered
| Chapter | System | Key Concepts |
|---|---|---|
| 1 | Scale from zero to millions | Single server → load balancing → CDN → database scaling |
| 4 | Rate Limiter | Token bucket, sliding window, distributed rate limiting |
| 5 | Consistent Hashing | Virtual nodes, hash ring, partition rebalancing |
| 6 | Key-Value Store | Replication, consistency, conflict resolution |
| 7 | Unique ID Generator | Snowflake ID, UUID, database auto-increment at scale |
| 8 | URL Shortener | Hash functions, base62 encoding, caching |
| 9 | Web Crawler | BFS, URL frontier, politeness, distributed crawling |
| 10 | Notification System | Push/SMS/email, fan-out, message queues |
| 11 | News Feed | Fan-out on write vs. read, ranking, caching |
| 12 | Chat System | WebSocket, message sync, presence |
| 13 | Search Autocomplete | Trie, top-k, distributed prefix search |
| 14 | YouTube | Video upload, transcoding, CDN, recommendation |
| 15 | Google Drive | File sync, chunking, conflict resolution |
Framework
- Understand the problem and establish design scope (3-10 min)
- Propose high-level design and get buy-in (10-15 min)
- Design deep dive (10-25 min)
- Wrap up (3-5 min)
Related
- designing-data-intensive-applications — Kleppmann’s deeper theoretical foundation
- database-internals — Storage engine details underlying these systems