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.🟡 Medium (Mid-Level / 2-5 YOE)
These questions require understanding of distributed systems, caching, and scalability.🔴 Hard (Senior / Staff Level)
These questions require deep expertise and consideration of complex trade-offs.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
Week 3-4: Core Systems
Week 5-6: Advanced Systems
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