System Design Interview Questions
30+ system design interview questions covering fundamentals, scalability, databases, caching, real-world design problems, and estimation questions with structured frameworks. Click "Show Answer" to reveal. Perfect for a focused revision session before your interview.
Fundamentals
Q: What is a load balancer and why do you need one?
Q: Explain caching strategies. When should you cache, and what are the risks?
Q: What is a CDN? How does it differ from an origin server?
Q: Compare REST, GraphQL, and gRPC. When would you use each?
Q: What is a message queue? When would you use one?
Want deeper coverage? See System Design Core Concepts.
Scalability & Reliability
Q: Explain the difference between horizontal and vertical scaling. When would you choose each?
Q: Explain the CAP theorem. Why can't you have all three?
Q: What are the main sharding strategies? What makes a good shard key?
user_id is usually ideal. Bad shard key: low cardinality (country, status), creates hot spots, frequently used in aggregation queries that need data from all shards.Q: What does "five nines" availability mean? How do you achieve it?
Q: What is the circuit breaker pattern? How does it prevent cascading failures?
Deeper coverage: Scalability & Reliability Deep Dive
Databases
Q: When would you choose SQL over NoSQL? Give specific examples.
Q: What are the common use cases for Redis?
Q: What is database indexing? How do indexes speed up queries?
Q: What is the difference between normalization and denormalization? When would you denormalize?
customer_name directly in the orders table instead of JOINing to customers). Denormalize when: (1) Read performance is critical and JOINs are too slow. (2) Data warehousing / analytics (star schemas are denormalized by design). (3) Caching (materialized views). (4) NoSQL databases (no JOINs available, so you must denormalize). Trade-off: denormalization trades write complexity (must update multiple copies) for read speed.Q: What is eventual consistency? Give an example where it's acceptable.
Deeper coverage: Databases & Storage Deep Dive
Design Problems
Q: Design a URL shortener like bit.ly.
Q: Design a real-time chat system like WhatsApp.
Q: Design a rate limiter for an API.
Q: Design a notification system that handles push, email, and SMS.
Q: Design a search autocomplete system (type-ahead suggestions).
Q: Design a file storage service like Google Drive.
Full walkthroughs: Real-World Designs Deep Dive
Estimation Questions
Q: Estimate the QPS (queries per second) for Twitter.
Q: Estimate the storage needed for YouTube per day.
Q: How many servers do you need for 1M concurrent users?
Q: Estimate the bandwidth needed for a video streaming service.
Trade-off Questions
Q: Consistency vs availability — when would you sacrifice each?
Q: Monolith vs microservices — when should you choose each?
Q: SQL vs NoSQL — what factors drive the decision?
Q: Push vs pull model for a news feed — what are the trade-offs?
Q: Synchronous vs asynchronous processing — when should you use each?