The 8-Step System Design Framework
Use this structure for every system design interview:
- Step 1: Clarify requirements (functional and non-functional) — spend 5 minutes here
- Step 2: Estimate scale (users, requests per second, storage) — back of envelope math
- Step 3: High-level design — draw a simple box diagram of key components
- Step 4: API design — define the key endpoints the system needs
- Step 5: Database schema — identify entities, relationships, and storage choice
- Step 6: Deep dive on critical components — the interviewer will guide this
- Step 7: Discuss trade-offs — why you chose SQL over NoSQL, push vs. pull, etc.
- Step 8: Handle failure scenarios — what happens when a component goes down?
Key Concepts Every System Design Interview Requires
Build deep knowledge in these 10 areas — they appear in every design question:
- Load balancing: Round-robin, least connections, consistent hashing
- Caching: Redis vs. Memcached, cache-aside, write-through, TTL strategies
- Database: SQL vs. NoSQL trade-offs, sharding, replication, indexing
- Message queues: Kafka, RabbitMQ — async decoupling, fan-out patterns
- CDN: Content delivery for static assets, edge caching
- Rate limiting: Token bucket, leaky bucket algorithms
- Consistency models: Strong, eventual, and causal consistency
- CAP theorem: Consistency, Availability, Partition tolerance — you can only pick 2
- Microservices vs. monolith: When to split, service communication
- Search: Elasticsearch for full-text search, inverted indexes
Common System Design Interview Questions
Practice these classic problems until your framework is instinctive:
- Design a URL shortener (like bit.ly)
- Design a ride-sharing app (like Ola/Uber)
- Design Twitter/X — newsfeed, follower model, timeline generation
- Design a notification system for 10 million users
- Design a rate limiter for an API gateway
- Design a distributed file storage system (like Google Drive)
- Design a video streaming service (like YouTube/Netflix)
- Design a chat application (like WhatsApp)
Capacity Estimation: How to Do Back-of-Envelope Math
Interviewers want to see that you can reason about scale:
- 100 million DAU × 10 reads/day = 1 billion reads/day = ~11,574 reads/second
- 1 tweet × 250 bytes × 1 billion tweets = 250 GB/day
- Storage for 5 years = 250 GB × 365 × 5 = ~450 TB
- Common numbers to memorise: 1 day = 86,400 seconds; 1 million = 10^6; 1 billion = 10^9
- Always round up for safety and explain your assumptions clearly
Common Interview Questions & Answers
Q1. Design a URL shortener like bit.ly
I'd start by clarifying requirements: 100M URLs/month, custom aliases, analytics needed. Scale: 40 writes/sec, 400 reads/sec (10:1 read-heavy). Core components: API server, hash service (Base62 encoding of auto-increment ID), NoSQL store (Cassandra for key-value lookups at scale), CDN for global redirect speed. Cache top 20% of URLs in Redis (80% of traffic). For collision handling, use database unique constraint and retry. For analytics, async-write to Kafka → separate analytics service.
The interviewer wants to see structured thinking, not a perfect answer.
Q2. How would you design a notification system for 50 million users?
Notification types: push (mobile), email, SMS. Flow: Event → Message Queue (Kafka) → Notification Service → Channel-specific adapters (FCM, Twilio, SES). User preference service to check opt-outs and preferred channels. Priority queue for critical notifications. Rate limiting per user to prevent spam. For scale, partition Kafka by user ID for ordering. Retry with exponential backoff. Dead-letter queue for failed notifications.
Demonstrate async thinking with queues — synchronous notification at scale is a red flag.
Common Mistakes to Avoid
Jumping to the solution without clarifying requirements
Not thinking about scale — designing for 100 users, not 100 million
Choosing technology without explaining trade-offs
Ignoring failure scenarios and fault tolerance
Drawing components in silence — always explain what you're drawing
Expert Tips
Study 'Designing Data-Intensive Applications' by Martin Kleppmann — the best book on the subject
Read Exponent (tryexponent.com) and Tech Interview Handbook for curated examples
Draw clean diagrams — a neat whiteboard signals organised thinking
Practice speaking your design out loud — system design is a conversation, not an exam
Pre-Interview Checklist
6 itemsFrequently Asked Questions
Is system design required for fresher interviews?
No — system design is typically expected from candidates with 3+ years of experience. Freshers face data structures and algorithms instead.
What resources should I use to prepare for system design?
Start with Alex Xu's 'System Design Interview' books (Vol 1 and 2). Practice on Exponent and YouTube channels like 'System Design Interview' by Gaurav Sen.
Ready to ace your next interview?
Practice with SpeakWell AI. Upload your resume → get resume-based questions → practice with AI interviewers → improve communication → track progress → get instant AI feedback.