Overview
This is a curated list of system design interview questions organized by difficulty and topic. Use this to practice and assess your readiness.Question Bank by Difficulty
🟢 Easy (Entry Level / New Grad)
These questions test basic concepts and don’t require complex distributed systems knowledge.| # | Question | Key Concepts | Time |
|---|---|---|---|
| 1 | Design a URL Shortener | Hashing, DB design, read-heavy | 30 min |
| 2 | Design a Pastebin | Storage, expiration, similar to URL shortener | 30 min |
| 3 | Design a Rate Limiter | Algorithms (token bucket), Redis | 30 min |
| 4 | Design a Key-Value Store | Hash table, persistence | 30 min |
| 5 | Design a Unique ID Generator | UUID, Snowflake ID | 25 min |
🟡 Medium (Mid-Level / 2-5 YOE)
These questions require understanding of distributed systems, caching, and scalability.| # | Question | Key Concepts | Time |
|---|---|---|---|
| 6 | Design Twitter/X | Fanout, timeline, caching | 45 min |
| 7 | Design Instagram | CDN, feed ranking, storage | 45 min |
| 8 | Design WhatsApp | Real-time messaging, WebSockets | 45 min |
| 9 | Design Facebook Messenger | Group chat, read receipts, presence | 45 min |
| 10 | Design a News Feed | Ranking, push vs pull, caching | 45 min |
| 11 | Design a Notification System | Push notifications, templates | 40 min |
| 12 | Design a Web Crawler | Queue, politeness, deduplication | 40 min |
| 13 | Design Typeahead/Autocomplete | Trie, ranking, caching | 35 min |
| 14 | Design a Search System | Inverted index, ranking | 45 min |
| 15 | Design a File Storage (Dropbox) | Chunking, sync, deduplication | 45 min |
🔴 Hard (Senior / Staff Level)
These questions require deep expertise and consideration of complex trade-offs.| # | Question | Key Concepts | Time |
|---|---|---|---|
| 16 | Design YouTube/Netflix | Video processing, CDN, adaptive streaming | 50 min |
| 17 | Design Uber/Lyft | Real-time matching, geo-indexing | 50 min |
| 18 | Design Google Maps | Graph algorithms, routing, tiles | 50 min |
| 19 | Design Distributed Cache | Consistent hashing, eviction | 45 min |
| 20 | Design Distributed Message Queue | Kafka-like, partitioning, ordering | 50 min |
| 21 | Design a Payment System | ACID, idempotency, reconciliation | 50 min |
| 22 | Design a Booking System | Double-booking prevention, high contention | 45 min |
| 23 | Design Google Docs | Real-time collaboration, CRDT/OT | 50 min |
| 24 | Design a Metrics/Monitoring System | Time-series, aggregation, alerting | 45 min |
| 25 | Design a Distributed Task Scheduler | Cron at scale, reliability | 45 min |
Questions by Topic
Data-Intensive Applications
Storage Systems
- Key-Value Store
- Distributed Cache
- File Storage (Dropbox)
- Object Storage (S3)
Search & Discovery
- Search Engine
- Typeahead/Autocomplete
- Recommendation System
- Content Discovery
Real-Time Systems
Messaging
- Slack/Discord
- Facebook Messenger
- Notification System
Streaming
- Live Video Streaming
- Netflix/YouTube
- Spotify
- Gaming (Twitch)
Social & Content Platforms
Social Networks
- Twitter/X Timeline
- Facebook News Feed
Content Platforms
- Medium/Blog Platform
- Quora
- Review System (Yelp)
Location & Mapping
Ride-Sharing
- Uber/Lyft
- Food Delivery (DoorDash)
- Nearby Friends
- Location Tracking
Mapping
- Google Maps
- Yelp (Local Search)
- Geofencing
- Store Locator
E-Commerce & Transactions
Shopping
- Amazon (E-commerce)
- Flash Sale System
- Inventory Management
- Product Catalog
Payments
- Payment System
- Digital Wallet
- Fraud Detection
- Subscription Billing
Sample Interview Questions with Hints
Question 1: Design a URL Shortener
Requirements to clarify
Requirements to clarify
- How many URLs per day? (100M writes, 10B reads)
- How long should URLs be valid? (configurable, default forever)
- Custom short URLs allowed?
- Analytics needed?
Key design points
Key design points
- Encoding: Base62 encoding (a-z, A-Z, 0-9)
- ID Generation: Counter + Base62 or random hash
- Storage: Simple key-value (Redis) + persistent DB
- Caching: Cache popular URLs in Redis
- Database: NoSQL (DynamoDB) works well
Question 2: Design Twitter Timeline
Requirements to clarify
Requirements to clarify
- Active users? (300M DAU)
- Tweet rate? (500M tweets/day)
- Follow limits? (5000 following)
- Celebrity accounts? (millions of followers)
Key design points
Key design points
- Fan-out on write: Pre-compute timelines for most users
- Fan-out on read: For celebrities (too many followers)
- Hybrid approach: Write to cache for most, read-time merge for celebrities
- Caching: Redis sorted sets for timelines
- Ranking: Chronological + engagement signals
Question 3: Design WhatsApp
Requirements to clarify
Requirements to clarify
- Users? (2B users, 100M DAU)
- Message rate? (100B messages/day)
- Group size? (1024 members max)
- Message types? (text, image, video)
Key design points
Key design points
- Connection: WebSocket for real-time
- Message flow: Sender → Server → Recipient (or queue if offline)
- Group messages: Fan-out on server
- Delivery status: Sent → Delivered → Read
- Offline handling: Queue messages, deliver on reconnect
Question 4: Design Netflix
Requirements to clarify
Requirements to clarify
- Users? (200M subscribers)
- Content size? (10K titles, petabytes of video)
- Concurrent streams? (10M peak)
- Quality levels? (480p to 4K)
Key design points
Key design points
- Video processing: Transcode to multiple qualities
- Streaming: HLS/DASH adaptive bitrate
- CDN: Multi-tier CDN, edge caching
- Recommendations: ML-based personalization
- Search: Elasticsearch for content discovery
Question 5: Design Uber
Requirements to clarify
Requirements to clarify
- Users? (100M riders, 5M drivers)
- Rides/day? (20M)
- Location update frequency? (every 4 seconds)
- Matching criteria?
Key design points
Key design points
- Location tracking: Redis GEO or QuadTree
- Matching: Scoring algorithm (distance, rating, ETA)
- Real-time: WebSocket for location updates
- Pricing: Dynamic pricing based on supply/demand
- Trip state: State machine (requested → matched → in-progress → completed)
Self-Assessment Checklist
Before your interview, make sure you can:Fundamentals
- Calculate QPS, storage, and bandwidth requirements
- Choose between SQL and NoSQL with justification
- Explain CAP theorem and when to prioritize what
- Design a basic caching strategy
- Draw a load-balanced architecture
Intermediate
- Design for horizontal scalability
- Implement consistent hashing
- Choose between push vs pull models
- Design for fault tolerance
- Handle data partitioning/sharding
Advanced
- Design for global scale (multi-region)
- Handle distributed transactions
- Implement exactly-once delivery
- Design real-time systems
- Handle hot partitions
Practice Schedule
Week 1-2: Foundation
| Day | Focus | Practice |
|---|---|---|
| 1-2 | Fundamentals | Read theory, watch videos |
| 3-4 | URL Shortener | Design and diagram |
| 5-6 | Rate Limiter | Design and diagram |
| 7 | Review | Redo both from scratch |
Week 3-4: Core Systems
| Day | Focus | Practice |
|---|---|---|
| 1-2 | Twitter Timeline | Design and diagram |
| 3-4 | Design and diagram | |
| 5-6 | Notification System | Design and diagram |
| 7 | Review | Mock interview |
Week 5-6: Advanced Systems
| Day | Focus | Practice |
|---|---|---|
| 1-2 | YouTube/Netflix | Design and diagram |
| 3-4 | Uber | Design and diagram |
| 5-6 | Distributed Cache | Design and diagram |
| 7 | Review | Mock interview |
Week 7+: Mock Interviews
- Do 2-3 mock interviews per week
- Time yourself (45 minutes)
- Practice with a friend or use Pramp/Interviewing.io
- Record yourself and review
Resources for Each Question
Free Resources
- System Design Primer (GitHub)
- High Scalability Blog
- Company Engineering Blogs
- YouTube: Gaurav Sen, Tech Dummies, System Design Interview
Paid Resources
- “Designing Data-Intensive Applications” (Book)
- “System Design Interview” by Alex Xu (Book)
- Educative.io System Design Course
- ByteByteGo Newsletter