System Design Interview Guide — Complete Preparation Roadmap
⚡ Updated: June 2025 🏢 Target: Amazon, Google, Meta, Microsoft, Uber, Stripe, Flipkart, and startups
Who Is This For?
Whether you’re a mid-level engineer preparing for your first system design round or a senior engineer targeting Staff+ roles, this guide gives you the exact roadmap to prepare efficiently.
Your Learning Path
This guide is organized into 3 parts. Follow them in order:
| Step | Page | What You’ll Learn |
|---|---|---|
| 1 | You’re here | What to study, in what order, how long it takes |
| 2 | System Design Fundamentals → | The building blocks: CAP, caching, sharding, queues, DBs |
| 3 | The 45-Min Interview Framework → | Exact structure, timing, and what interviewers score on |
After these three, start solving: Practice Problems →
How System Design Interviews Actually Work
A typical system design interview is 45-60 minutes. The interviewer gives you an open-ended problem (“Design Uber” or “Design a notification system”) and evaluates:
- Problem scoping — Can you ask the right clarifying questions and narrow requirements?
- High-level architecture — Can you identify the right components and how they communicate?
- Deep dive ability — Can you go deep on 2-3 technical challenges and discuss trade-offs?
- Communication — Can you drive the conversation and explain your decisions clearly?
You’re NOT expected to design a production system. You’re expected to demonstrate structured thinking and trade-off awareness.
New here? Start with the fundamentals if terms like “CAP theorem” or “consistent hashing” don’t ring a bell. Then read the interview framework to understand the 45-minute structure.
Topics to Study (Priority Order)
Must-Know (Week 1-2)
| Topic | Why It Matters | Learn It | Practice It |
|---|---|---|---|
| Load balancing | Every system needs it | Fundamentals | URL Shortener |
| Caching (Redis) | 80% of designs use a cache | Fundamentals | Rate Limiter |
| Database choice (SQL vs NoSQL) | Most common trade-off question | Fundamentals | Key-Value Store |
| Message queues (Kafka) | Async processing, decoupling | Fundamentals | Notification System |
| API design (REST) | You’ll design APIs in every interview | Fundamentals | Pastebin |
Important (Week 3-4)
| Topic | Why It Matters | Practice It |
|---|---|---|
| Consistent hashing | Distributed data placement | Key-Value Store |
| WebSockets / real-time | Chat, tracking, live updates | Chat System |
| CDN and object storage | Media-heavy systems | Netflix / YouTube |
| Distributed locking | Preventing double-booking | Uber |
| Fan-out patterns | News feeds, notifications | Twitter Feed |
Advanced (Week 5+)
| Topic | Why It Matters | Practice It |
|---|---|---|
| Event sourcing / CQRS | Financial systems, audit trails | Stock Broker |
| Saga pattern | Distributed transactions | Digital Wallet |
| Conflict resolution (CRDT/OT) | Collaborative editing | Google Docs |
| Geo-indexing (Geohash, H3) | Location-based systems | Uber |
| Search (Elasticsearch) | Discovery, catalogs | Zomato |
Recommended Practice Problems (By Difficulty)
Beginner (Start Here)
- URL Shortener (Bitly) — ID generation, caching, redirects
- Pastebin — Object storage, metadata, TTL
- Rate Limiter — Redis patterns, token bucket, sliding window
- Key-Value Store — Partitioning, replication, consistency
Intermediate
- Chat System (WhatsApp) — WebSockets, message delivery, offline handling
- Notification System — Multi-channel, Kafka, templating
- Twitter Feed — Fan-out, timeline, caching
- Instagram — Photo upload, CDN, news feed
- Leaderboard — Redis sorted sets, real-time ranking
- Netflix / YouTube — Video encoding, adaptive streaming, recommendations
Advanced
- Uber / Lyft — Real-time matching, Redis Geo, surge pricing
- Zomato / Uber Eats — Search, dispatch, live tracking
- BookMyShow — Seat booking, distributed locks, payment
- Stock Broker (Robinhood) — Order matching, event sourcing, CQRS
- Digital Wallet (PhonePe) — Double-entry ledger, saga, idempotency
- Google Docs — Collaborative editing, CRDT, real-time sync
- Distributed Job Scheduler — Leader election, exactly-once, retries
- Delayed Trigger Service — Timing wheels, scheduled execution
How Long Does Preparation Take?
| Your Level | Time Needed | Focus |
|---|---|---|
| Junior (0-2 YOE) | 6-8 weeks | Fundamentals + 8 beginner/intermediate problems |
| Mid (2-5 YOE) | 4-6 weeks | All topics + 12-15 problems + framework mastery |
| Senior (5+ YOE) | 2-4 weeks | Advanced topics + deep dive practice |
Common Mistakes to Avoid
- Jumping to solutions — Always spend 3-5 minutes on requirements first
- Over-engineering — A URL shortener doesn’t need Kafka and microservices
- Ignoring scale — “Just use a database” isn’t a design answer at 100K QPS
- Not discussing trade-offs — Every choice has downsides. Name them.
- Monologuing — The interview is a conversation. Pause and check in with the interviewer.
- Solving random problems — Study by pattern, not by difficulty. See the framework.
Frequently Asked Questions
How many problems should I practice?
12-15 problems, studied deeply, is better than 30 problems skimmed. Understand the patterns, not memorize solutions.
Do I need to memorize exact numbers?
No. But know orders of magnitude: “a single Postgres handles ~10K QPS,” “Redis does 100K ops/sec,” “Kafka handles millions of events/sec.” See back-of-envelope estimation.
Should I draw diagrams or use text?
Always draw. Interviewers are visual. Even a simple box-and-arrow diagram communicates better than 5 minutes of talking.
What if the interviewer asks about a system I haven’t prepared?
The patterns transfer. If you’ve done 12 designs, you’ve seen caching, queues, databases, and real-time delivery. Apply those patterns to the new problem. The cheat sheet in the approach page helps here.
Is system design asked at all levels?
- Junior/New grad: Rarely (some companies ask simplified versions)
- Mid-level (SDE-2): Yes, at most top companies
- Senior+ (SDE-3, Staff): Yes, with higher depth expectations
The Complete Prep Roadmap
Week 1-2: Learn fundamentals (/concepts)
↓
Week 2-3: Master the framework (/approach)
↓
Week 3-6: Solve problems by difficulty (beginner → advanced)
↓
Week 6+: Mock interviews + revisit weak areas
Daily routine:
- 30 min: Read one concept from fundamentals
- 60 min: Solve one HLD problem (timer: 45 min attempt, 15 min review)
- 15 min: Review the approach framework patterns table
Next Steps
| Where you are | What to do next |
|---|---|
| Don’t know the basics | Read System Design Fundamentals → |
| Know the concepts but freeze in interviews | Read The 45-Min Framework → |
| Ready to practice | Start with URL Shortener → |
| Want a quick reference | Cheatsheet → |
Related Resources
- System Design Fundamentals — CAP, caching, sharding, queues, DBs
- The 45-Min Interview Framework — Exact structure and scoring criteria
- Quick-Fire 50 Cheatsheet — DSA patterns at a glance
- Company-Specific: Amazon — Amazon’s design interview format
- LLD Fundamentals — For machine coding rounds
💬 Comments