System Design Framework

A structured approach to tackle any system design interview

Explore Case Studies

45-60 Minute Interview Timeline

Requirements Clarification(5-7 minutes)
β†’
Back-of-Envelope Calculations(3-5 minutes)
β†’
High-Level Design(10-15 minutes)
β†’
Deep Dive(15-20 minutes)
β†’
Bottlenecks & Trade-offs(5-10 minutes)
01

Requirements Clarification

5-7 minutes

Ask questions to understand the scope, constraints, and requirements

Key Questions to Ask/Consider:

  • What are the main features we need to support?
  • What is the expected scale (users, requests, data)?
  • What are the latency requirements?
  • Should we focus on any specific aspect of the system?
  • What are the non-functional requirements (availability, consistency)?
  • Are there any specific constraints (budget, timeline, technology)?

πŸ’‘ Senior Engineer Tips

  • β€’ Push back on ambiguous requirements - senior engineers know what details matter
  • β€’ Consider regulatory and compliance requirements upfront
  • β€’ Ask about existing systems and migration constraints
  • β€’ Discuss SLA requirements explicitly
02

Back-of-Envelope Calculations

3-5 minutes

Estimate scale to inform design decisions

Key Questions to Ask/Consider:

  • Daily/Monthly Active Users (DAU/MAU)
  • Requests per second (read/write ratio)
  • Data storage requirements
  • Bandwidth requirements
  • Peak vs average load

Quick Calculations:

QPS:DAU Γ— actions/day Γ· 86,400 seconds
Storage:Objects Γ— size Γ— retention Γ— replication
Bandwidth:QPS Γ— average response size

πŸ’‘ Senior Engineer Tips

  • β€’ Use powers of 2 for quick mental math
  • β€’ Consider growth trajectory, not just current numbers
  • β€’ Factor in replication and backup overhead
  • β€’ Mention regional distribution impact on calculations
03

High-Level Design

10-15 minutes

Draw the main components and their interactions

Key Questions to Ask/Consider:

  • What are the main components needed?
  • How do clients interact with the system?
  • What are the data flows for main use cases?
  • Where do we need caching?
  • How do we handle reads vs writes?

Common Components:

Load Balancer / API GatewayApplication ServersDatabase (SQL/NoSQL)Cache LayerMessage QueueCDNExternal Services

πŸ’‘ Senior Engineer Tips

  • β€’ Start with the simplest design that could work
  • β€’ Use standard architectural patterns (don't reinvent)
  • β€’ Consider multi-region from the start
  • β€’ Identify single points of failure early
04

Deep Dive

15-20 minutes

Drill into critical components based on interviewer guidance

Deep Dive Areas:

Data Model
  • β€’ Schema design
  • β€’ Indexing strategy
  • β€’ Partitioning/Sharding
  • β€’ Denormalization decisions
API Design
  • β€’ Endpoints
  • β€’ Request/Response formats
  • β€’ Authentication
  • β€’ Rate limiting
  • β€’ Versioning
Algorithm/Logic
  • β€’ Core business logic
  • β€’ Matching/Ranking algorithms
  • β€’ Consistency guarantees
Scaling
  • β€’ Horizontal scaling points
  • β€’ Caching strategy
  • β€’ Database scaling
  • β€’ Async processing

πŸ’‘ Senior Engineer Tips

  • β€’ Discuss trade-offs explicitly for every decision
  • β€’ Mention operational concerns (monitoring, debugging)
  • β€’ Consider failure modes and recovery strategies
  • β€’ Reference real-world implementations when relevant
05

Bottlenecks & Trade-offs

5-10 minutes

Identify issues and discuss solutions

Common Issues & Solutions:

⚠️ Single Points of Failure
βœ“ Replicationβœ“ Failoverβœ“ Multi-region
⚠️ Scalability Bottlenecks
βœ“ Shardingβœ“ Read replicasβœ“ Cachingβœ“ CDN
⚠️ Consistency vs Availability
βœ“ CAP trade-offsβœ“ Eventual consistencyβœ“ Conflict resolution
⚠️ Cost Optimization
βœ“ Tiered storageβœ“ Auto-scalingβœ“ Reserved capacity

πŸ’‘ Senior Engineer Tips

  • β€’ Proactively identify issues before being asked
  • β€’ Quantify impact of bottlenecks
  • β€’ Propose incremental improvements with milestones
  • β€’ Consider operational cost, not just infrastructure

❌ Common Mistakes to Avoid

βœ— Diving into details too early

βœ“ Start with requirements and high-level design first

βœ— Not asking clarifying questions

βœ“ Spend first 5-7 minutes understanding the problem

βœ— Over-engineering the solution

βœ“ Start simple, then add complexity as needed

βœ— Ignoring non-functional requirements

βœ“ Explicitly discuss scalability, availability, consistency

βœ— Not discussing trade-offs

βœ“ Every decision has pros/cons - articulate them

βœ— Monologue without interaction

βœ“ Check in with interviewer, ask for feedback

βœ— Giving up when stuck

βœ“ Think out loud, ask for hints, reason from first principles

βœ— Not leveraging experience

βœ“ Reference relevant past projects and learnings

🎀 Senior Engineering Key Phrases

"Let me clarify the requirements first..."
"Given the scale, we should consider..."
"The trade-off here is..."
"Based on the read/write ratio..."
"For consistency requirements, I'd choose..."
"One potential bottleneck is..."
"To handle failures, we could..."
"Let me walk you through the data flow..."

Ready to design?

Put this framework to the test with our collection of real-world system design case studies.