Alex Xu — System Design Interview Vol 1, Chapter 2
This chapter covers estimation with worked examples. Supplement with Jeff Dean's "Latency Numbers Every Programmer Should Know."
Why Estimation Matters
Estimation signals that you understand scale. A system with 1,000 users is architecturally different from one with 100 million. Knowing the order of magnitude tells you which components to reach for, where the bottlenecks will be, and how many servers you need.
In an interview, estimation is Step 2 — it takes about 5 minutes and sets up every design decision that follows.
Interview mindset
Don't worry about getting exact numbers. Interviewers care that you can reason about scale. Round aggressively: "100 million DAU, let's say ~1M requests per day per user action, so roughly 1,200 QPS — call it 1K QPS."
Example: Tweet storage for 5 years
100M tweets/day × 300 bytes × 365 × 5
= 100M × 300B × 1,825
≈ 54.75 TB → ~55 TB
Bandwidth
Formula
Bandwidth = QPS × avg_response_size
Example: Photo serving at 12K QPS
12,000 QPS × 200 KB per photo
= 2,400,000 KB/s
≈ ~2.3 GB/s outbound
Common Reference Sizes
What
Typical Size
A tweet (text)
~300 bytes
A DB metadata row
~1 KB
A web page (HTML)
~100 KB
A compressed photo
~200 KB
A high-res photo
~2 MB
A 1-minute video (compressed)
~10 MB
Seconds in a day
86,400
Practice Estimation
1. A social network has 100M DAU. Each user posts 2 items per day and reads 20. What is the approximate read QPS?
2. Which operation is roughly 1,000× slower than reading from RAM?
3. A service stores 50M new records per day, each 500 bytes, for 3 years. Approximate storage needed?
4. A system needs 99.99% availability. How much downtime per year is that?
🎓 Estimation feels unnatural at first. If you want to practice more worked examples, or want me to walk through estimation for a specific system (e.g., YouTube, WhatsApp), just ask.