Patterns

System Design Checklist

1Requirements (3-5 min)

Functional

  • ☐ Core features (must-haves)
  • ☐ User flows (who does what)
  • ☐ Data relationships
  • ☐ Edge cases to handle

Non-Functional

  • ☐ DAU / MAU numbers
  • ☐ Read vs write ratio
  • ☐ Latency requirements
  • ☐ Availability target (99.9%?)

2Estimations (2-3 min)

  • QPS: DAU × actions/user ÷ 86,400
  • Peak QPS: Average × 2-3
  • Storage: Users × data/user × retention
  • Bandwidth: QPS × request size
Quick mental math: 100M users × 1KB × 365 days ≈ 36.5 TB/year

3High-Level Design (10-15 min)

Client Layer

  • ☐ Mobile / Web / Both
  • ☐ CDN for static assets
  • ☐ Client-side caching

Application Layer

  • ☐ Load balancer
  • ☐ API Gateway
  • ☐ Service breakdown
  • ☐ Async processing

Data Layer

  • ☐ Database choice
  • ☐ Cache layer
  • ☐ File/blob storage
  • ☐ Search (if needed)

4Deep Dives (15-20 min)

Pick 2-3 Topics

  • ☐ Database schema
  • ☐ API design
  • ☐ Core algorithm
  • ☐ Scaling strategy
  • ☐ Consistency approach

For Each Topic

  • ☐ State the problem
  • ☐ Explore options
  • ☐ Justify your choice
  • ☐ Acknowledge trade-offs

5Bottlenecks & Scaling (5 min)

  • Single points of failure → Add redundancy
  • Hot spots → Partition / shard
  • Slow queries → Index / cache / denormalize
  • Monitoring → Metrics, logs, alerts

Common Patterns to Consider

ProblemPattern
High read trafficCaching, read replicas, CDN
High write trafficQueue, write-behind cache, sharding
Real-time updatesWebSockets, pub/sub, SSE
Search functionalityElasticsearch, inverted index
File uploadsPre-signed URLs, chunked upload
Rate limitingToken bucket, sliding window

⏱️ Time Management

• 45-min interview: ~5 min requirements, ~35 min design, ~5 min Q&A

• Don't spend too long on any one phase

• If stuck, say "I'll come back to this" and move on

• Always leave time for the interviewer's questions