System design interviews are where senior candidates win or lose offers. Yet most companies wing it—asking random questions without rubrics, hoping to "know good when they see it."

After helping 150+ companies redesign their technical interviews, I've compiled the questions that actually work—organized by difficulty, with specific evaluation criteria for each.

How to Use This Question Bank

For interviewers: Pick questions appropriate to the candidate's level. Use the rubrics to score consistently.

For candidates: Practice across categories. Focus on the framework, not memorizing specific architectures.

For hiring managers: Build a rotation of 8-10 questions your team is calibrated on.

The Evaluation Framework

Before the questions, here's how to score them:

Dimension Weight What to Evaluate
Requirements Gathering 15% Did they clarify scope before designing?
High-Level Architecture 25% Is the overall design sound and appropriate?
Component Deep-Dive 25% Can they go deep on specific components?
Trade-off Analysis 20% Do they articulate pros/cons of decisions?
Communication 15% Is their explanation clear and structured?

Scoring scale:

  • 4 (Strong): Exceeds expectations, demonstrates senior-level thinking
  • 3 (Good): Meets expectations, solid approach
  • 2 (Mixed): Some gaps, needs prompting
  • 1 (Weak): Significant gaps, concerning

Entry-Level Questions (L3-L4)

1. URL Shortener

Time: 35-40 minutes | Difficulty: ⭐⭐

"Design a URL shortening service like bit.ly."

Requirements to clarify:

  • Scale (1M vs 1B URLs?)
  • Analytics requirements
  • Custom URLs?
  • Expiration?

Strong answer includes:

  • Hash function for generating short codes
  • Handling collisions
  • Read-heavy optimization (caching)
  • Database choice rationale

Red flags:

  • Jumps to database schema without discussing scale
  • Can't explain collision handling
  • Ignores caching for a read-heavy workload

2. Rate Limiter

Time: 35-40 minutes | Difficulty: ⭐⭐

"Design a rate limiting system for an API."

Requirements to clarify:

  • Limits per user? Per IP? Per API key?
  • Distributed or single-node?
  • Hard vs soft limits?

Strong answer includes:

  • Algorithm comparison (token bucket vs sliding window)
  • Distributed coordination approach
  • Handling burst traffic
  • Failure modes

Red flags:

  • Only knows one algorithm
  • Doesn't consider distributed scenarios
  • Can't explain race conditions

3. Key-Value Store

Time: 40-45 minutes | Difficulty: ⭐⭐⭐

"Design a distributed key-value store like Redis."

Requirements to clarify:

  • Consistency requirements
  • Persistence needs
  • Data size and access patterns

Strong answer includes:

  • Partitioning strategy
  • Replication approach
  • Consistency model (eventual vs strong)
  • Memory vs disk trade-offs

Mid-Level Questions (L4-L5)

4. Twitter News Feed

Time: 45-50 minutes | Difficulty: ⭐⭐⭐

"Design the home timeline for a Twitter-like service."

Requirements to clarify:

  • Celebrity accounts (millions of followers)?
  • Real-time vs near-real-time?
  • Personalization/ranking?

Strong answer includes:

  • Fan-out on write vs fan-out on read trade-off
  • Caching strategy
  • Hybrid approach for celebrities
  • Ranking system placement

Red flags:

  • One-size-fits-all solution
  • Ignores the celebrity problem
  • Can't discuss cache invalidation

5. Notification System

Time: 45-50 minutes | Difficulty: ⭐⭐⭐

"Design a system that sends millions of notifications daily across multiple channels."

Requirements to clarify:

  • Channels (push, email, SMS, in-app)?
  • Delivery guarantees?
  • User preferences?

Strong answer includes:

  • Message queue architecture
  • Priority handling
  • Retry and dead-letter strategies
  • Template management
  • Rate limiting per channel

6. Web Crawler

Time: 45-50 minutes | Difficulty: ⭐⭐⭐

"Design a web crawler that indexes billions of pages."

Requirements to clarify:

  • Crawl frequency?
  • Politeness constraints?
  • Content types?

Strong answer includes:

  • URL frontier management
  • Distributed crawling coordination
  • Duplicate detection
  • Robots.txt compliance
  • DNS caching

7. Autocomplete/Typeahead

Time: 40-45 minutes | Difficulty: ⭐⭐⭐

"Design an autocomplete system for a search box."

Requirements to clarify:

  • Personalized vs global suggestions?
  • Latency requirements?
  • How many suggestions?

Strong answer includes:

  • Trie data structure
  • Ranking by frequency/recency
  • Caching popular prefixes
  • Handling typos

Senior-Level Questions (L5-L6)

8. Distributed Message Queue

Time: 50-55 minutes | Difficulty: ⭐⭐⭐⭐

"Design a distributed message queue like Kafka."

Requirements to clarify:

  • Ordering guarantees?
  • Delivery semantics (at-least-once, exactly-once)?
  • Retention period?

Strong answer includes:

  • Partition strategy
  • Consumer group coordination
  • Offset management
  • Replication and leader election
  • Exactly-once semantics challenges

Red flags:

  • Can't explain ordering guarantees
  • Doesn't understand partition trade-offs
  • Ignores replication

9. Real-Time Collaborative Editor

Time: 50-55 minutes | Difficulty: ⭐⭐⭐⭐

"Design a Google Docs-like collaborative editing system."

Requirements to clarify:

  • Concurrent users per document?
  • Offline support?
  • Version history depth?

Strong answer includes:

  • OT (Operational Transform) vs CRDT comparison
  • WebSocket infrastructure
  • Cursor and presence synchronization
  • Conflict resolution strategy

10. Ride-Sharing Backend

Time: 50-55 minutes | Difficulty: ⭐⭐⭐⭐

"Design the backend for a ride-sharing service like Uber."

Requirements to clarify:

  • Geographic coverage?
  • Matching algorithm priorities (speed, price, rating)?
  • Surge pricing?

Strong answer includes:

  • Location tracking and geospatial indexing
  • Matching algorithm and fairness
  • ETA calculation
  • Payment processing integration
  • Driver/rider state machines

11. Distributed Cache

Time: 50-55 minutes | Difficulty: ⭐⭐⭐⭐

"Design a distributed caching system like Memcached."

Strong answer includes:

  • Consistent hashing
  • Eviction policies (LRU, LFU)
  • Cache-aside vs write-through patterns
  • Hot key handling
  • Cluster membership

12. Search Engine

Time: 55-60 minutes | Difficulty: ⭐⭐⭐⭐⭐

"Design a web search engine."

Strong answer includes:

  • Inverted index construction
  • Ranking algorithm (PageRank, relevance signals)
  • Query parsing and expansion
  • Spelling correction
  • Personalization

Staff+ Level Questions (L6+)

13. Global Database

Time: 55-60 minutes | Difficulty: ⭐⭐⭐⭐⭐

"Design a globally distributed database like CockroachDB or Spanner."

Strong answer includes:

  • Distributed consensus (Paxos/Raft)
  • Clock synchronization (TrueTime, hybrid clocks)
  • Transaction isolation levels
  • Cross-region replication
  • Conflict resolution

14. Payment System

Time: 55-60 minutes | Difficulty: ⭐⭐⭐⭐⭐

"Design a payment processing system handling billions in transactions."

Strong answer includes:

  • Idempotency and exactly-once processing
  • Ledger and double-entry bookkeeping
  • Fraud detection integration
  • PCI compliance considerations
  • Reconciliation processes

15. Ad Serving Platform

Time: 55-60 minutes | Difficulty: ⭐⭐⭐⭐⭐

"Design an ad serving system for a major platform."

Strong answer includes:

  • Real-time bidding architecture
  • Ad ranking and auction mechanics
  • Click prediction ML integration
  • Pacing and budget management
  • Attribution tracking

Category Quick Reference

Category Questions Best For
Storage #3, #11, #13 Backend, infrastructure roles
Real-time #4, #9, #10 Full-stack, product engineers
Data Processing #6, #8, #12 Data engineers, ML engineers
Scale #1, #2, #5, #7 Any senior role

Interview Flow Template

Minutes 0-5: Introductions, question setup Minutes 5-15: Requirements clarification, scope definition Minutes 15-35: High-level design, component overview Minutes 35-50: Deep dive on 1-2 components Minutes 50-55: Trade-offs, alternatives discussion Minutes 55-60: Candidate questions

Common Mistakes to Avoid

  1. As interviewer: Asking questions without calibration—you'll get inconsistent signals
  2. Providing a "correct" architecture: There's no single right answer; evaluate reasoning
  3. Going too deep too fast: Let candidates show breadth before drilling down
  4. Ignoring communication: How they explain matters as much as what they design

Want help calibrating your interview team on these questions? Contact SmithSpektrum for interview training workshops.