Code with Lucian
13 min video
3 min read
45-Minute System Design Interview Blueprint
You just saved 10 min.
The big takeaway
A structured 5-phase approach to system design interviews: scope requirements tightly (0-5 min), estimate scale and define APIs (5-10 min), build a minimal working architecture (10-20 min), deep-dive on bottlenecks and tradeoffs (20-35 min), and close with observability patterns (35-45 min). Success hinges on taking control, justifying every decision, and treating challenges as opportunities rather than threats.
The System Design Funnel & Why It Matters
System Design Is the Salary Multiplier
System design interviews are where you lock in seniority level and salary premium. Interviewers measure signal versus noise—your ability to navigate ambiguity, justify tradeoffs, and think like a senior engineer under load, not buzzword density.
HR Interview Pass Rate
75 %
Coding Round Pass Rate
20 %
System Design Pass Rate
10 %
Out of 100 engineers: 75 pass HR, 20 pass coding, 10 pass system design. System design cuts the pool in half.
Senior Engineers Drive the Interview
Mid-level developers wait passively for questions; senior engineers take control immediately. After 14 years interviewing on both sides, successful candidates dictate the pace and structure, not the interviewer.
Phase 1: Scope & SLAs (Minutes 0-5)
The Scope Trap & How to Escape It
When handed a vague prompt like 'design Uber,' mid-level devs panic and sketch databases immediately. Senior engineers stop, take a breath, and spend exactly 5 minutes defining problem boundaries using functional and non-functional requirements.
Functional Requirements: Three Features Max
For Uber, lock down three core features: rider requests a ride, driver accepts the ride, and real-time location tracking. Explicitly exclude search, pricing, ratings, and ride-sharing pools from the initial scope.
1
Rider requests a ride
2
Driver accepts the ride
3
Track driver location in real time
Uber core features for system design scope (exclude pricing, ratings, search, ride-sharing).
Non-Functional Requirements: The Script
Ask three clarifying questions out loud: Do we need strong consistency for payments but eventual consistency for driver locations? What latency budget for location tracking—under 500ms acceptable? What is the read-to-write ratio? These answers shape every architectural decision downstream.
1
Consistency model: strong vs eventual?
2
Latency budget: under 500ms?
3
Read-to-write ratio: 100:1 or 1:99?
Three non-functional requirement questions that unlock architecture decisions.
Premature Over-Engineering Is a Cardinal Sin
Pitching multi-region database sharding before knowing if the system receives 10 requests per second signals zero engineering maturity. Scope tight, establish SLAs, lock it down in under 5 minutes, and get interviewer agreement.
Phase 2: Estimations & API Contracts (Minutes 5-10)
Back-of-Envelope Math: Order of Magnitude, Not Precision
Interviewers don't care if your multiplication is off by decimal points; they care about order of magnitude and what those numbers imply for hardware. Round aggressively: 10 million daily users × 10 actions per day = 100 million events; divide by 86,400 seconds = ~1,000 requests per second average, 2,000 at peak.
1
10M daily users × 10 actions = 100M events
2
100M ÷ 86,400 sec/day = 1,000 RPS average
3
Peak load: 2,000 RPS (2× average)
Aggressive rounding for Uber-scale estimation.
Math Justifies Hardware Decisions
If payload is 10 KB and peak is 2,000 QPS, that's 20 MB/sec bandwidth—easy for one instance. If it were 2 GB/sec, you instantly know you need horizontal partitioning. Math is architectural justification, not pedantry.
20 MB/sec
Network bandwidth at 2,000 QPS × 10 KB payload
Single instance can handle; 2 GB/sec would require sharding.
Protocol Selection: Justify Every Choice
Don't just say 'we'll use APIs.' Make specific statements: REST over HTTPS for ride booking (stateless transactional, one request-one confirmation); WebSockets or server-sent events for real-time location streaming (bidirectional, avoids HTTP polling overhead).
1
REST over HTTPS
Ride booking (stateless, transactional)
2
WebSockets / SSE
Real-time location (bidirectional, low overhead)
Protocol selection justified by access pattern.
Data Model: Justify Storage Choice by Access Pattern
Don't blurt out 'we'll use Postgres.' If you need strict ACID compliance and relational integrity for payments, go relational. If you need ultra-low latency or geospatial indexing for driver coordinates, choose specialized NoSQL like Redis or Cassandra.
1
Relational (Postgres)
Payments (ACID, integrity)
2
NoSQL (Redis/Cassandra)
Driver locations (low latency, geospatial)
Storage choice justified by access pattern and consistency needs.
Phase 3: High-Level Architecture (Minutes 10-20)
Build Iteratively, Not Day-1000 Architecture
Mid-level engineers design day-1000 architecture on day one; senior engineers build iteratively. Start with a pristine minimal foundation: client, load balancer, gateway, service, and storage. Make sure the core data flow works seamlessly on paper first.
1
Client
2
Load Balancer
3
API Gateway
4
Service
5
Storage
Minimal five-box foundation before scaling.
Trace the Happy Path & State Purpose Out Loud
Walk the interviewer through a single end-to-end request: mobile client sends ride request to load balancer, which terminates TLS and forwards to API gateway for auth and rate limiting, gateway routes to service, service writes to database and returns ride ID. Never draw a box without stating its purpose explicitly.
1
Mobile client sends ride request
2
Load balancer terminates TLS, distributes 2,000 QPS
3
API gateway authenticates and rate-limits
4
Service routes and processes
5
Database writes, returns ride ID
End-to-end happy path with explicit purpose for each component.
Separate Read and Write Paths
If 95% of traffic is users viewing driver locations on a map, show how read queries hit an in-memory cache or read replica, completely bypassing the heavy transactional write database.
Naive approach
All reads and writes hit primary database
Optimized approach
95% read traffic hits cache/replica; writes hit primary
Separate read and write paths to avoid bottlenecking the primary.
Golden Rule: Prove Core System Works Before Scaling
Keep the initial design embarrassingly simple and functional. Prove to the interviewer that your core system works logically before attempting to scale it.
Phase 4: Deep Dives & Tradeoffs (Minutes 20-35)
Caching Strategy: Specify the Pattern
When asked how to handle database write surges, don't just say 'add a cache.' Specify the pattern: cache-aside using Redis. Read requests hit cache first; on miss, load from primary database, write back to cache, return response. On hit, return directly. Use TTL and LRU eviction policies to handle memory limits.
1
Read request hits cache first
2
Cache miss: load from primary DB
3
Write back to cache, return response
4
Cache hit: return directly
5
TTL and LRU eviction manage memory
Cache-aside pattern with TTL and LRU eviction.
Database Scaling: Replicas for Reads, Sharding for Writes
If reads are choking, add read replicas with asynchronous replication to distribute load. If writes are choking, introduce sharding or horizontal partitioning. Always explain your sharding key to avoid hotspots.
1
Read bottleneck
Add read replicas with async replication
2
Write bottleneck
Introduce sharding or horizontal partitioning
Database scaling strategies by bottleneck type.
Sharding Key Pitfall: Avoid Hotspots
If you shard an Uber database by city ID, New Year's Eve in New York creates a massive hotspot partition. Fix: use a composite key combining city ID with hash of driver ID. This distributes peak city traffic evenly across multiple physical shards, preventing single-node meltdowns.
Naive sharding key
City ID only (creates hotspot on NYE in NYC)
Composite sharding key
City ID + hash(driver ID) (distributes evenly)
Composite sharding key prevents hotspot partitions during peak load.
Asynchronous Decoupling with Message Queues
Instead of synchronously writing location updates directly to the database, push location events into a distributed message queue. Worker nodes pull from the queue at a controlled rate, giving automatic backpressure protection during traffic spikes.
1
Location events pushed to message queue
2
Worker nodes pull at controlled rate
3
Automatic backpressure during spikes
4
Prevents database overload
Message queue decoupling prevents database overload.
CAP Theorem: Choose Consistency or Availability
During a network partition, you cannot have both strong consistency and high availability. Consistency means accurate data; availability means the system never goes down. Explicitly choose one and justify why.
1
Driver location tracking
Prioritize availability, accept eventual consistency (2-sec delay acceptable)
2
Financial transactions
Prioritize consistency, reject payment on network failure
CAP theorem tradeoff decisions with business justification.
Proactively Address Single Points of Failure
Scan your diagram and point out risks before the interviewer does. For example, the primary database node is a single point of failure. Set up multi-region automated failover with health check heartbeats and a standby replica continuously streaming updates to guarantee high availability.
1
Primary database node identified as SPOF
2
Multi-region automated failover configured
3
Health check heartbeats monitor primary
4
Standby replica streams updates continuously
5
Failover node ready to take over instantly
Multi-region failover strategy eliminates single point of failure.
Welcome Bottlenecks as Opportunities
Don't be defensive when challenged. Welcome bottlenecks as opportunities to showcase advanced architectural patterns like event-driven queues, caching strategies, and failover mechanics. Use the bottleneck to demonstrate judgment, not ego.
Phase 5: Resilience, Observability & Closing (Minutes 35-45)
Unmonitored Systems Are Broken Systems
Senior candidates know that unmonitored systems are broken systems waiting to happen. Spend 2 minutes on system observability and reliability to separate yourself from mid-level engineers.
Distributed Tracing for Request Visibility
Inject a unique trace ID at the API gateway to track a single request across all microservices. This enables end-to-end visibility into latency and failure points.
Circuit Breakers Prevent Cascading Failure
If a downstream payment service slows down, a circuit breaker trips to prevent cascading failure across the entire application.
Three Red Flags That Trigger Rejection
Red flag 1: over-engineering too early instead of proving the basic flow first. Red flag 2: getting defensive when questioned, treating questions as attacks instead of opportunities. Red flag 3: bad clock management—spending 25 minutes on math and having zero time left for architecture.
1
Over-engineering too early
Prove basic flow first
2
Defensive when questioned
Treat questions as opportunities
3
Bad clock management
Allocate time to architecture, not just math
Three instant-rejection red flags in system design interviews.
The 45-Minute Blueprint Summary
Complete Timeline: 0-45 Minutes
Minutes 0-5: scope and SLAs (functional vs non-functional). Minutes 5-10: estimations and API contracts (order of magnitude). Minutes 10-20: high-level design (simple five-box happy path). Minutes 20-35: deep dives and tradeoffs (bottlenecks). Minutes 35-45: observability and wrap-up. Execute this structure to separate yourself from engineers who wander without direction.
0-5 min
Scope & SLAs: functional vs non-functional requirements
5-10 min
Estimations & API contracts: order of magnitude, protocols
10-20 min
High-level design: five-box happy path, read/write separation
20-35 min
Deep dives & tradeoffs: caching, sharding, failover, CAP theorem
35-45 min
Observability & wrap-up: tracing, circuit breakers, closing
45-minute system design interview structure.
What This Signals to Interviewers
Executing this structure signals leadership, deep technical maturity, clear communication under pressure, and the ability to think like a senior engineer. You instantly separate yourself from most engineers.
Worth quoting
"System design is exactly where you dictate your seniority level and lock in the massive salary premium."
— Code with Lucian, at [0:10]
"Senior engineers don't wait to be asked questions one by one. Successful candidates take control immediately."
— Code with Lucian, at [0:32]
"Math isn't trivial. It's architectural justification."
— Code with Lucian, at [4:07]
Try this
Practice the 45-minute timeline structure on a mock system design interview (Uber, Netflix, or similar).
For your next interview, spend exactly 5 minutes on scope and SLAs before sketching any architecture.
Prepare three non-functional requirement questions to ask immediately: consistency model, latency budget, read-to-write ratio.
Create a template for aggressive back-of-envelope math (daily users → events → RPS → bandwidth) and practice it until it takes under 3 minutes.
For each architectural component you draw, write down its explicit purpose and state it out loud during practice.
Identify one sharding key pitfall (hotspot scenario) for your target system and prepare a composite key solution.
Prepare a caching strategy script using cache-aside pattern with TTL and LRU eviction.
Map out a multi-region failover strategy for your target system before the interview.
Practice welcoming interviewer challenges as opportunities to showcase advanced patterns (queues, circuit breakers, tracing).
Record a mock interview and time yourself on each phase; adjust if any phase exceeds its time box.
Made with Glimpse by Wozart
glimpse.wozart.com/v/9seiyth6
Share this infographic
Read this infographic as text

45-Minute System Design Interview Blueprint

Summary of the video “How to Pass a System Design Interview (The 45-Minute Blueprint) by Code with Lucian.

A structured 5-phase approach to system design interviews: scope requirements tightly (0-5 min), estimate scale and define APIs (5-10 min), build a minimal working architecture (10-20 min), deep-dive on bottlenecks and tradeoffs (20-35 min), and close with observability patterns (35-45 min). Success hinges on taking control, justifying every decision, and treating challenges as opportunities rather than threats.

The System Design Funnel & Why It Matters

System Design Is the Salary Multiplier

System design interviews are where you lock in seniority level and salary premium. Interviewers measure signal versus noise—your ability to navigate ambiguity, justify tradeoffs, and think like a senior engineer under load, not buzzword density.

Senior Engineers Drive the Interview

Mid-level developers wait passively for questions; senior engineers take control immediately. After 14 years interviewing on both sides, successful candidates dictate the pace and structure, not the interviewer.

Phase 1: Scope & SLAs (Minutes 0-5)

The Scope Trap & How to Escape It

When handed a vague prompt like 'design Uber,' mid-level devs panic and sketch databases immediately. Senior engineers stop, take a breath, and spend exactly 5 minutes defining problem boundaries using functional and non-functional requirements.

Functional Requirements: Three Features Max

For Uber, lock down three core features: rider requests a ride, driver accepts the ride, and real-time location tracking. Explicitly exclude search, pricing, ratings, and ride-sharing pools from the initial scope.

Non-Functional Requirements: The Script

Ask three clarifying questions out loud: Do we need strong consistency for payments but eventual consistency for driver locations? What latency budget for location tracking—under 500ms acceptable? What is the read-to-write ratio? These answers shape every architectural decision downstream.

Premature Over-Engineering Is a Cardinal Sin

Pitching multi-region database sharding before knowing if the system receives 10 requests per second signals zero engineering maturity. Scope tight, establish SLAs, lock it down in under 5 minutes, and get interviewer agreement.

Phase 2: Estimations & API Contracts (Minutes 5-10)

Back-of-Envelope Math: Order of Magnitude, Not Precision

Interviewers don't care if your multiplication is off by decimal points; they care about order of magnitude and what those numbers imply for hardware. Round aggressively: 10 million daily users × 10 actions per day = 100 million events; divide by 86,400 seconds = ~1,000 requests per second average, 2,000 at peak.

Math Justifies Hardware Decisions

If payload is 10 KB and peak is 2,000 QPS, that's 20 MB/sec bandwidth—easy for one instance. If it were 2 GB/sec, you instantly know you need horizontal partitioning. Math is architectural justification, not pedantry.

Protocol Selection: Justify Every Choice

Don't just say 'we'll use APIs.' Make specific statements: REST over HTTPS for ride booking (stateless transactional, one request-one confirmation); WebSockets or server-sent events for real-time location streaming (bidirectional, avoids HTTP polling overhead).

Data Model: Justify Storage Choice by Access Pattern

Don't blurt out 'we'll use Postgres.' If you need strict ACID compliance and relational integrity for payments, go relational. If you need ultra-low latency or geospatial indexing for driver coordinates, choose specialized NoSQL like Redis or Cassandra.

Phase 3: High-Level Architecture (Minutes 10-20)

Build Iteratively, Not Day-1000 Architecture

Mid-level engineers design day-1000 architecture on day one; senior engineers build iteratively. Start with a pristine minimal foundation: client, load balancer, gateway, service, and storage. Make sure the core data flow works seamlessly on paper first.

Trace the Happy Path & State Purpose Out Loud

Walk the interviewer through a single end-to-end request: mobile client sends ride request to load balancer, which terminates TLS and forwards to API gateway for auth and rate limiting, gateway routes to service, service writes to database and returns ride ID. Never draw a box without stating its purpose explicitly.

Separate Read and Write Paths

If 95% of traffic is users viewing driver locations on a map, show how read queries hit an in-memory cache or read replica, completely bypassing the heavy transactional write database.

Golden Rule: Prove Core System Works Before Scaling

Keep the initial design embarrassingly simple and functional. Prove to the interviewer that your core system works logically before attempting to scale it.

Phase 4: Deep Dives & Tradeoffs (Minutes 20-35)

Caching Strategy: Specify the Pattern

When asked how to handle database write surges, don't just say 'add a cache.' Specify the pattern: cache-aside using Redis. Read requests hit cache first; on miss, load from primary database, write back to cache, return response. On hit, return directly. Use TTL and LRU eviction policies to handle memory limits.

Database Scaling: Replicas for Reads, Sharding for Writes

If reads are choking, add read replicas with asynchronous replication to distribute load. If writes are choking, introduce sharding or horizontal partitioning. Always explain your sharding key to avoid hotspots.

Sharding Key Pitfall: Avoid Hotspots

If you shard an Uber database by city ID, New Year's Eve in New York creates a massive hotspot partition. Fix: use a composite key combining city ID with hash of driver ID. This distributes peak city traffic evenly across multiple physical shards, preventing single-node meltdowns.

Asynchronous Decoupling with Message Queues

Instead of synchronously writing location updates directly to the database, push location events into a distributed message queue. Worker nodes pull from the queue at a controlled rate, giving automatic backpressure protection during traffic spikes.

CAP Theorem: Choose Consistency or Availability

During a network partition, you cannot have both strong consistency and high availability. Consistency means accurate data; availability means the system never goes down. Explicitly choose one and justify why.

Proactively Address Single Points of Failure

Scan your diagram and point out risks before the interviewer does. For example, the primary database node is a single point of failure. Set up multi-region automated failover with health check heartbeats and a standby replica continuously streaming updates to guarantee high availability.

Welcome Bottlenecks as Opportunities

Don't be defensive when challenged. Welcome bottlenecks as opportunities to showcase advanced architectural patterns like event-driven queues, caching strategies, and failover mechanics. Use the bottleneck to demonstrate judgment, not ego.

Phase 5: Resilience, Observability & Closing (Minutes 35-45)

Unmonitored Systems Are Broken Systems

Senior candidates know that unmonitored systems are broken systems waiting to happen. Spend 2 minutes on system observability and reliability to separate yourself from mid-level engineers.

Distributed Tracing for Request Visibility

Inject a unique trace ID at the API gateway to track a single request across all microservices. This enables end-to-end visibility into latency and failure points.

Circuit Breakers Prevent Cascading Failure

If a downstream payment service slows down, a circuit breaker trips to prevent cascading failure across the entire application.

Three Red Flags That Trigger Rejection

Red flag 1: over-engineering too early instead of proving the basic flow first. Red flag 2: getting defensive when questioned, treating questions as attacks instead of opportunities. Red flag 3: bad clock management—spending 25 minutes on math and having zero time left for architecture.

The 45-Minute Blueprint Summary

Complete Timeline: 0-45 Minutes

Minutes 0-5: scope and SLAs (functional vs non-functional). Minutes 5-10: estimations and API contracts (order of magnitude). Minutes 10-20: high-level design (simple five-box happy path). Minutes 20-35: deep dives and tradeoffs (bottlenecks). Minutes 35-45: observability and wrap-up. Execute this structure to separate yourself from engineers who wander without direction.

What This Signals to Interviewers

Executing this structure signals leadership, deep technical maturity, clear communication under pressure, and the ability to think like a senior engineer. You instantly separate yourself from most engineers.

Notable quotes

System design is exactly where you dictate your seniority level and lock in the massive salary premium. — Code with Lucian
Senior engineers don't wait to be asked questions one by one. Successful candidates take control immediately. — Code with Lucian
Math isn't trivial. It's architectural justification. — Code with Lucian

Action items

  • Practice the 45-minute timeline structure on a mock system design interview (Uber, Netflix, or similar).
  • For your next interview, spend exactly 5 minutes on scope and SLAs before sketching any architecture.
  • Prepare three non-functional requirement questions to ask immediately: consistency model, latency budget, read-to-write ratio.
  • Create a template for aggressive back-of-envelope math (daily users → events → RPS → bandwidth) and practice it until it takes under 3 minutes.
  • For each architectural component you draw, write down its explicit purpose and state it out loud during practice.
  • Identify one sharding key pitfall (hotspot scenario) for your target system and prepare a composite key solution.
  • Prepare a caching strategy script using cache-aside pattern with TTL and LRU eviction.
  • Map out a multi-region failover strategy for your target system before the interview.
  • Practice welcoming interviewer challenges as opportunities to showcase advanced patterns (queues, circuit breakers, tracing).
  • Record a mock interview and time yourself on each phase; adjust if any phase exceeds its time box.

More like this