Skip to main content

Overview

This is a curated list of system design interview questions organized by difficulty and topic. Use this to practice and assess your readiness.
Interview Strategy: Start with medium difficulty questions. If you can design 3-4 different systems confidently, you’re ready for most interviews.

Question Bank by Difficulty

🟢 Easy (Entry Level / New Grad)

These questions test basic concepts and don’t require complex distributed systems knowledge.
#QuestionKey ConceptsTime
1Design a URL ShortenerHashing, DB design, read-heavy30 min
2Design a PastebinStorage, expiration, similar to URL shortener30 min
3Design a Rate LimiterAlgorithms (token bucket), Redis30 min
4Design a Key-Value StoreHash table, persistence30 min
5Design a Unique ID GeneratorUUID, Snowflake ID25 min

🟡 Medium (Mid-Level / 2-5 YOE)

These questions require understanding of distributed systems, caching, and scalability.
#QuestionKey ConceptsTime
6Design Twitter/XFanout, timeline, caching45 min
7Design InstagramCDN, feed ranking, storage45 min
8Design WhatsAppReal-time messaging, WebSockets45 min
9Design Facebook MessengerGroup chat, read receipts, presence45 min
10Design a News FeedRanking, push vs pull, caching45 min
11Design a Notification SystemPush notifications, templates40 min
12Design a Web CrawlerQueue, politeness, deduplication40 min
13Design Typeahead/AutocompleteTrie, ranking, caching35 min
14Design a Search SystemInverted index, ranking45 min
15Design a File Storage (Dropbox)Chunking, sync, deduplication45 min

🔴 Hard (Senior / Staff Level)

These questions require deep expertise and consideration of complex trade-offs.
#QuestionKey ConceptsTime
16Design YouTube/NetflixVideo processing, CDN, adaptive streaming50 min
17Design Uber/LyftReal-time matching, geo-indexing50 min
18Design Google MapsGraph algorithms, routing, tiles50 min
19Design Distributed CacheConsistent hashing, eviction45 min
20Design Distributed Message QueueKafka-like, partitioning, ordering50 min
21Design a Payment SystemACID, idempotency, reconciliation50 min
22Design a Booking SystemDouble-booking prevention, high contention45 min
23Design Google DocsReal-time collaboration, CRDT/OT50 min
24Design a Metrics/Monitoring SystemTime-series, aggregation, alerting45 min
25Design a Distributed Task SchedulerCron at scale, reliability45 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

  • WhatsApp
  • Slack/Discord
  • Facebook Messenger
  • Notification System

Streaming

  • Live Video Streaming
  • Netflix/YouTube
  • Spotify
  • Gaming (Twitch)

Social & Content Platforms

Social Networks

  • Twitter/X Timeline
  • Instagram
  • Facebook News Feed
  • LinkedIn

Content Platforms

  • Reddit
  • 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

  • How many URLs per day? (100M writes, 10B reads)
  • How long should URLs be valid? (configurable, default forever)
  • Custom short URLs allowed?
  • Analytics needed?
  1. Encoding: Base62 encoding (a-z, A-Z, 0-9)
  2. ID Generation: Counter + Base62 or random hash
  3. Storage: Simple key-value (Redis) + persistent DB
  4. Caching: Cache popular URLs in Redis
  5. Database: NoSQL (DynamoDB) works well

Question 2: Design Twitter Timeline

  • Active users? (300M DAU)
  • Tweet rate? (500M tweets/day)
  • Follow limits? (5000 following)
  • Celebrity accounts? (millions of followers)
  1. Fan-out on write: Pre-compute timelines for most users
  2. Fan-out on read: For celebrities (too many followers)
  3. Hybrid approach: Write to cache for most, read-time merge for celebrities
  4. Caching: Redis sorted sets for timelines
  5. Ranking: Chronological + engagement signals

Question 3: Design WhatsApp

  • Users? (2B users, 100M DAU)
  • Message rate? (100B messages/day)
  • Group size? (1024 members max)
  • Message types? (text, image, video)
  1. Connection: WebSocket for real-time
  2. Message flow: Sender → Server → Recipient (or queue if offline)
  3. Group messages: Fan-out on server
  4. Delivery status: Sent → Delivered → Read
  5. Offline handling: Queue messages, deliver on reconnect

Question 4: Design Netflix

  • Users? (200M subscribers)
  • Content size? (10K titles, petabytes of video)
  • Concurrent streams? (10M peak)
  • Quality levels? (480p to 4K)
  1. Video processing: Transcode to multiple qualities
  2. Streaming: HLS/DASH adaptive bitrate
  3. CDN: Multi-tier CDN, edge caching
  4. Recommendations: ML-based personalization
  5. Search: Elasticsearch for content discovery

Question 5: Design Uber

  • Users? (100M riders, 5M drivers)
  • Rides/day? (20M)
  • Location update frequency? (every 4 seconds)
  • Matching criteria?
  1. Location tracking: Redis GEO or QuadTree
  2. Matching: Scoring algorithm (distance, rating, ETA)
  3. Real-time: WebSocket for location updates
  4. Pricing: Dynamic pricing based on supply/demand
  5. 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

DayFocusPractice
1-2FundamentalsRead theory, watch videos
3-4URL ShortenerDesign and diagram
5-6Rate LimiterDesign and diagram
7ReviewRedo both from scratch

Week 3-4: Core Systems

DayFocusPractice
1-2Twitter TimelineDesign and diagram
3-4WhatsAppDesign and diagram
5-6Notification SystemDesign and diagram
7ReviewMock interview

Week 5-6: Advanced Systems

DayFocusPractice
1-2YouTube/NetflixDesign and diagram
3-4UberDesign and diagram
5-6Distributed CacheDesign and diagram
7ReviewMock 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

  • “Designing Data-Intensive Applications” (Book)
  • “System Design Interview” by Alex Xu (Book)
  • Educative.io System Design Course
  • ByteByteGo Newsletter
Quality over Quantity: It’s better to deeply understand 5 systems than to superficially know 20. Focus on the key design patterns that repeat across systems.