Top 30 System Design Interview Questions and Answers
The 30 most commonly asked system design interview questions at FAANG and top tech companies, with structured answers, key concepts, and links to full.
Why System Design Interviews Matter
System design interviews are the most important round for senior engineering roles at companies like Google, Amazon, Meta, Microsoft, Netflix, Apple, and Uber. Unlike coding interviews that test algorithmic ability, system design interviews evaluate whether you can architect real-world distributed systems — the same skill you use every day as a senior engineer.
The format is deliberately open-ended. You receive a vague prompt like "Design WhatsApp" and must drive the conversation: clarify requirements, estimate scale, define the API, design the data model, draw the high-level architecture, and discuss tradeoffs. The interviewer evaluates your process, not just the end result.
How to Answer Any System Design Question
Every system design question can be answered using the same structured framework:
Step 1: Clarify Requirements (3-5 minutes) Ask about users, scale, latency requirements, consistency vs availability preferences, and which features to prioritize. Never assume — the interviewer has specific context in mind.
Step 2: Estimate Scale (3-5 minutes) Calculate requests per second, storage requirements, and bandwidth. This shows you design for real constraints, not theoretical systems. For example, if the system has 100M daily active users and each makes 10 requests per day, that is roughly 12,000 requests per second.
Step 3: Define the API (3-5 minutes)
Sketch the main API endpoints — REST or gRPC. Include the request/response format. For a URL shortener: POST /shorten { url: "..." } → { short_url: "..." } and GET /{code} → 301 redirect.
Step 4: Design the Data Model (3-5 minutes) Define the key entities, their relationships, and access patterns. Choose SQL or NoSQL based on the access patterns, not personal preference.
Step 5: Draw the High-Level Architecture (10-15 minutes) This is the core of the interview. Draw clients, API gateway, application servers, databases, caches, queues, and CDN. Label every arrow with what data flows through it.
Step 6: Deep Dive (10 minutes) The interviewer will pick 1-2 components to explore in depth. Be ready to discuss specific algorithms, data structures, and failure modes.
Step 7: Discuss Scaling and Tradeoffs (5 minutes) Address how the system scales: horizontal scaling, database sharding, caching layers, async processing. Explicitly state tradeoffs you made and alternatives you considered.
For a detailed breakdown of this framework, see our Interview Framework Guide.
Easy Questions (Start Here)
These questions test fundamental concepts and are commonly asked for mid-level engineering roles.
1. Design a URL Shortener
Key concepts: Hashing, base62 encoding, read-heavy workloads, database scaling, caching, 301 vs 302 redirects.
What interviewers look for: Can you estimate the storage requirements? How do you generate unique short codes without collisions? How do you handle billions of redirect requests efficiently?
Core tradeoffs: Hash-based vs counter-based ID generation. SQL vs NoSQL for storage. Cache-aside vs read-through caching patterns.
Read the full URL Shortener solution →
2. Design a Distributed Key-Value Store
Key concepts: Consistent hashing, data replication, CAP theorem, vector clocks, quorum consensus.
What interviewers look for: How do you partition data across nodes? What happens when a node fails? How do you resolve write conflicts?
Core tradeoffs: Consistency vs availability. Strong consistency (CP) vs eventual consistency (AP). Replication factor vs storage cost.
Read the full KV Store solution →
3. Design a CDN
Key concepts: Edge caching, cache eviction policies, DNS-based routing, content invalidation, origin shielding.
What interviewers look for: How do you decide which content to cache at the edge? How do you handle cache invalidation? How do you route users to the nearest edge server?
4. Design a Load Balancer
Key concepts: Load balancing algorithms, health checks, Layer 4 vs Layer 7, session affinity, connection pooling.
What interviewers look for: When would you use round-robin vs least connections? How do you handle sticky sessions? What happens during a rolling deployment?
Read the full Load Balancer solution →
5. Design an Authentication System
Key concepts: JWT tokens, OAuth 2.0, session management, password hashing, rate limiting, MFA.
What interviewers look for: How do you store passwords securely? How do you handle token expiration and refresh? How do you prevent brute-force attacks?
Read the full Auth System solution →
Medium Questions (Most Common in Interviews)
These questions appear in the majority of system design interviews at top tech companies.
6. Design WhatsApp
Key concepts: WebSockets, message queues, end-to-end encryption, message delivery guarantees, presence/typing indicators, group messaging.
What interviewers look for: How do you deliver messages in real-time? What happens when the recipient is offline? How do you handle group messages to 256 members efficiently?
Core tradeoffs: Push (WebSocket) vs pull (polling). At-least-once vs exactly-once delivery. Fanout on write vs fanout on read for group messages.
Read the full WhatsApp solution →
7. Design Twitter
Key concepts: News feed generation, fan-out on write vs read, database sharding, caching, social graph, trending algorithms.
What interviewers look for: How do you generate a user's timeline from millions of people they follow? How do you handle celebrity users with 50M followers? How do you rank tweets?
Core tradeoffs: Fan-out on write (precompute timelines, fast reads, expensive writes) vs fan-out on read (compute on request, cheaper writes, slower reads). Hybrid approach for celebrities.
Read the full Twitter solution →
8. Design Netflix
Key concepts: CDN, video transcoding, adaptive bitrate streaming, recommendation engine, data replication.
What interviewers look for: How do you stream video to 200M subscribers globally? How do you handle different device capabilities and network conditions? How do you recommend content?
Read the full Netflix solution →
9. Design a Rate Limiter
Key concepts: Rate limiting algorithms (token bucket, sliding window, fixed window), distributed caching, API gateway.
What interviewers look for: Which algorithm do you choose and why? How do you implement rate limiting across multiple servers? How do you handle race conditions in a distributed rate limiter?
Read the full Rate Limiter solution →
10. Design a Notification Service
Key concepts: Pub/sub, push notifications (APNs, FCM), email/SMS delivery, user preferences, deduplication, priority queues.
What interviewers look for: How do you handle millions of notifications per minute? How do you prioritize urgent notifications? How do you prevent notification fatigue?
Read the full Notification Service solution →
11. Design Instagram
Key concepts: Image storage, CDN, news feed, database sharding, caching, followers/following graph.
What interviewers look for: How do you store and serve billions of images? How is the news feed generated? How does Instagram shard their PostgreSQL database?
Read the full Instagram solution →
12. Design a Payment System
Key concepts: ACID transactions, idempotency, double-entry bookkeeping, payment gateway integration, fraud detection.
What interviewers look for: How do you ensure a payment is never processed twice? How do you handle partial failures between your system and the payment gateway? How do you reconcile transactions?
Read the full Payment System solution →
13. Design YouTube
Key concepts: Video upload pipeline, transcoding, CDN, recommendation algorithm, view counting, live streaming.
What interviewers look for: How do you handle 500 hours of video uploaded per minute? How do you transcode to multiple resolutions? How do you count views accurately at scale?
Read the full YouTube solution →
14. Design a Job Scheduler
Key concepts: Distributed task scheduling, cron expressions, exactly-once execution, dead letter queues, priority scheduling, failure recovery.
What interviewers look for: How do you ensure a scheduled job runs exactly once? How do you handle a scheduler node failure? How do you scale to millions of scheduled jobs?
Read the full Job Scheduler solution →
15. Design an E-Commerce Platform
Key concepts: Shopping cart, inventory management, order processing, payment integration, search, recommendations.
What interviewers look for: How do you handle concurrent purchases of the last item in stock? How do you manage distributed transactions across inventory, payment, and order services?
Read the full E-Commerce solution →
Hard Questions (Senior/Staff Level)
These questions are asked at senior and staff engineer levels. They require deep knowledge of distributed systems.
16. Design Uber
Key concepts: WebSockets, geospatial indexing (geohash, quadtree), real-time location tracking, matching algorithm, surge pricing, ETA estimation.
What interviewers look for: How do you match riders with nearby drivers in real-time? How do you handle millions of location updates per second? How do you calculate accurate ETAs?
Core tradeoffs: Geohash vs quadtree for spatial indexing. Push vs pull for location updates. Consistency vs speed in the matching algorithm.
17. Design Google Docs
Key concepts: Real-time collaboration, operational transformation (OT) vs CRDT, WebSockets, conflict resolution, document versioning.
What interviewers look for: How do you handle multiple users editing the same paragraph simultaneously? What happens when two users type at the same cursor position? How do you handle offline editing?
Read the full Google Docs solution →
18. Design Dropbox
Key concepts: File synchronization, chunked uploads, deduplication, data replication, conflict resolution, delta sync.
What interviewers look for: How do you sync a 10GB file efficiently? How do you detect and handle conflicts when the same file is edited on two devices? How do you deduplicate storage across users?
Read the full Dropbox solution →
19. Design Google Maps
Key concepts: Graph algorithms (Dijkstra, A*), geospatial tiling, map rendering, real-time traffic, ETA calculation, geocoding.
What interviewers look for: How do you find the shortest route between two points? How do you incorporate real-time traffic data? How do you render map tiles efficiently at different zoom levels?
Read the full Google Maps solution →
20. Design a Web Crawler
Key concepts: BFS/DFS crawling, URL frontier, politeness policies, distributed task queue, deduplication, robots.txt compliance.
What interviewers look for: How do you crawl 1 billion pages without overwhelming target servers? How do you prioritize which pages to crawl first? How do you detect and handle duplicate content?
Read the full Web Crawler solution →
10 More Questions to Practice
These additional questions cover important patterns you should be familiar with:
- Design a Search Autocomplete — Trie data structure, top-k results, caching (Solution)
- Design Spotify — Audio streaming, playlists, recommendation engine, offline mode (Solution)
- Design TikTok — Short video pipeline, CDN, recommendation algorithm, creator tools (Solution)
- Design Reddit — Voting system, comment threading, subreddit isolation, trending (Solution)
- Design Airbnb — Search with filters, booking system, payment escrow, reviews (Solution)
- Design a Food Delivery System — Real-time tracking, order matching, ETA, surge pricing (Solution)
- Design a Ticket Booking System — Seat locking, distributed transactions, fairness (Solution)
- Design a Code Deployment System — CI/CD pipeline, blue-green deployment, rollback (Solution)
- Design a Digital Wallet — Transactions, balance consistency, fraud detection (Solution)
- Design a Distributed Lock Service — Lease-based locks, fencing tokens, ZooKeeper (Solution)
Key Concepts to Master Before Your Interview
Before attempting any system design problem, make sure you understand these foundational concepts:
Scaling: Scalability patterns, vertical vs horizontal scaling, database sharding, load balancing
Data: SQL vs NoSQL tradeoffs, database indexing, data replication, ACID transactions
Caching: Caching strategies (write-through, write-back, cache-aside), CDN, distributed caching, eviction policies
Distributed Systems: CAP theorem, consistent hashing, consensus algorithms, distributed locking
Communication: REST vs GraphQL, WebSockets, message queues, pub/sub
Your Study Plan
If you have limited time, focus on the 10 most commonly asked questions (problems 1, 6, 7, 8, 9, 16, 17, 18, 19, and 20) and the core concepts listed above. Use our 30-day roadmap for a structured study plan, or the 60-day plan if you have more time.
Practice answering each question out loud for 35-45 minutes. Record yourself and listen back — most engineers discover they spend too long on requirements and rush through the architecture.