Why Estimation Matters
System design interviews often ask you to estimate: "How much storage does Instagram need for photos?" "What QPS does Twitter handle?" These are not trick questions — the interviewer wants to see that you can reason about numbers, sanity-check your design choices, and identify the dominant constraints.
Estimation is about order-of-magnitude accuracy, not precise answers. The goal is to understand whether your design needs 1 server or 100, whether you need 1 TB of storage or 1 PB, whether a single database handles the read load or you need read replicas. Being off by 2× is fine. Being off by 1000× means you designed the wrong system.
Powers of 2 — Data Units
All storage and bandwidth estimation reduces to powers of 2. Know these:
1 byte = 8 bits 1 KB (kilobyte) = 1,024 bytes ≈ 10^3 bytes 1 MB (megabyte) = 1,024 KB ≈ 10^6 bytes 1 GB (gigabyte) = 1,024 MB ≈ 10^9 bytes 1 TB (terabyte) = 1,024 GB ≈ 10^12 bytes 1 PB (petabyte) = 1,024 TB ≈ 10^15 bytes
Quick mental shortcuts: a plain text tweet is ~140 bytes. A high-quality profile photo is ~200 KB. A 1-minute HD video is ~100 MB. An hour-long 4K video is ~5–10 GB. With these anchors, you can estimate storage needs for any user-generated content platform.
Latency Numbers Every Engineer Should Know
These numbers (approximate, modern hardware) are the backbone of latency estimation:
L1 cache reference: ~0.5 ns L2 cache reference: ~7 ns Main memory (RAM) reference: ~100 ns Read 4 KB from SSD: ~150 µs (150,000 ns) Round-trip within same datacenter: ~500 µs Read 1 MB sequentially from SSD: ~1 ms HDD seek: ~10 ms Read 1 MB sequentially from HDD: ~20 ms Network round-trip US to EU: ~150 ms
Key conclusions: memory is 200× faster than SSD. SSD is 70× faster than HDD. A datacenter round-trip is 3,000× faster than a cross-continental round-trip. Design your hot paths to stay in memory (cache). Avoid disk seeks in the critical path. Minimize cross-region network calls.
Availability Numbers
Availability is the fraction of time a system is operational. Every additional "nine" makes the SLA dramatically harder to achieve:
99% (two nines): 87.6 hours downtime/year (3.65 days/year) 99.9% (three nines): 8.76 hours downtime/year 99.99% (four nines): 52.6 minutes downtime/year 99.999% (five nines): 5.26 minutes downtime/year
Five nines requires virtually zero planned maintenance windows, instant automated failover, redundancy at every layer, and constant chaos engineering. Most web products target 99.9% (three nines). Financial systems often target 99.99%. Five nines is reserved for critical infrastructure like payment processing and emergency services.
Parallel systems: availability = 1 − (1−A)^n. Two 99.9% systems in parallel give 99.9999% availability. Sequential systems: availability = A_1 × A_2 × ... If both systems must be up, a chain of three 99.9% systems gives only 99.7%.
Example: Estimate Twitter QPS and Storage
Assumptions (these are illustrative, not real Twitter numbers): • 300 million monthly active users • 50% use Twitter daily → 150 million DAU • Each user posts 2 tweets per day on average • 10% of tweets contain media (images/video) • Data retained for 5 years
QPS estimation: • Tweet QPS = 150M users × 2 tweets/day ÷ (24 hours × 3,600 seconds) ≈ 3,500 tweets/second • Peak QPS ≈ 2× average = ~7,000 tweets/second
Storage estimation: • Average tweet: tweet_id (64 bytes) + text (140 bytes) + metadata (30 bytes) = ~230 bytes/tweet • Text storage/day: 300M × 2 × 230 bytes ≈ 138 GB/day • Media: 300M × 2 tweets × 10% media × 1 MB = 60 TB/day • 5-year media storage: 60 TB/day × 365 × 5 ≈ 109 PB
Key insight: media storage (images/video) dominates by orders of magnitude. Text storage is trivial compared to media. Design your storage tier around the media problem.
Tips for Estimation in Interviews
Round aggressively: "99,987 / 9.1" becomes "100,000 / 10 = 10,000." Precision is not the point.
Write down your assumptions explicitly: "I'm assuming 10% of users upload a photo per day." If your assumptions are wrong, the interviewer can correct them. If they are reasonable, you demonstrate structured thinking.
Label all units: "5" is ambiguous. "5 MB/user/day" is not. Getting units right prevents order-of-magnitude errors.
Think in powers of 10: 1K = 10^3, 1M = 10^6, 1B = 10^9. Multiplying and dividing powers of 10 is faster than carrying zeros.
Common interview estimations to practice: QPS for a social media platform, storage for a photo sharing app, bandwidth for a video streaming service, cache size for a search autocomplete system, and number of servers needed for a given QPS.