> ## Documentation Index
> Fetch the complete documentation index at: https://resources.devweekends.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Interview Questions Bank

> Common system design interview questions with difficulty levels

## Overview

This is a curated list of system design interview questions organized by difficulty and topic. Use this to practice and assess your readiness.

<Tip>
  **Interview Strategy**: Start with medium difficulty questions. If you can design 3-4 different systems confidently, you're ready for most interviews.
</Tip>

## Question Bank by Difficulty

### 🟢 Easy (Entry Level / New Grad)

These questions test basic concepts and don't require complex distributed systems knowledge.

| # | Question                         | Key Concepts                                  | Time   |
| - | -------------------------------- | --------------------------------------------- | ------ |
| 1 | **Design a URL Shortener**       | Hashing, DB design, read-heavy                | 30 min |
| 2 | **Design a Pastebin**            | Storage, expiration, similar to URL shortener | 30 min |
| 3 | **Design a Rate Limiter**        | Algorithms (token bucket), Redis              | 30 min |
| 4 | **Design a Key-Value Store**     | Hash table, persistence                       | 30 min |
| 5 | **Design a Unique ID Generator** | UUID, Snowflake ID                            | 25 min |

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

These questions require understanding of distributed systems, caching, and scalability.

| #  | Question                            | Key Concepts                        | Time   |
| -- | ----------------------------------- | ----------------------------------- | ------ |
| 6  | **Design Twitter/X**                | Fanout, timeline, caching           | 45 min |
| 7  | **Design Instagram**                | CDN, feed ranking, storage          | 45 min |
| 8  | **Design WhatsApp**                 | Real-time messaging, WebSockets     | 45 min |
| 9  | **Design Facebook Messenger**       | Group chat, read receipts, presence | 45 min |
| 10 | **Design a News Feed**              | Ranking, push vs pull, caching      | 45 min |
| 11 | **Design a Notification System**    | Push notifications, templates       | 40 min |
| 12 | **Design a Web Crawler**            | Queue, politeness, deduplication    | 40 min |
| 13 | **Design Typeahead/Autocomplete**   | Trie, ranking, caching              | 35 min |
| 14 | **Design a Search System**          | Inverted index, ranking             | 45 min |
| 15 | **Design a File Storage (Dropbox)** | Chunking, sync, deduplication       | 45 min |

### 🔴 Hard (Senior / Staff Level)

These questions require deep expertise and consideration of complex trade-offs.

| #  | Question                                | Key Concepts                               | Time   |
| -- | --------------------------------------- | ------------------------------------------ | ------ |
| 16 | **Design YouTube/Netflix**              | Video processing, CDN, adaptive streaming  | 50 min |
| 17 | **Design Uber/Lyft**                    | Real-time matching, geo-indexing           | 50 min |
| 18 | **Design Google Maps**                  | Graph algorithms, routing, tiles           | 50 min |
| 19 | **Design Distributed Cache**            | Consistent hashing, eviction               | 45 min |
| 20 | **Design Distributed Message Queue**    | Kafka-like, partitioning, ordering         | 50 min |
| 21 | **Design a Payment System**             | ACID, idempotency, reconciliation          | 50 min |
| 22 | **Design a Booking System**             | Double-booking prevention, high contention | 45 min |
| 23 | **Design Google Docs**                  | Real-time collaboration, CRDT/OT           | 50 min |
| 24 | **Design a Metrics/Monitoring System**  | Time-series, aggregation, alerting         | 45 min |
| 25 | **Design a Distributed Task Scheduler** | Cron at scale, reliability                 | 45 min |

## Questions by Topic

### Data-Intensive Applications

<CardGroup cols={2}>
  <Card title="Storage Systems" icon="database">
    * Key-Value Store
    * Distributed Cache
    * File Storage (Dropbox)
    * Object Storage (S3)
  </Card>

  <Card title="Search & Discovery" icon="magnifying-glass">
    * Search Engine
    * Typeahead/Autocomplete
    * Recommendation System
    * Content Discovery
  </Card>
</CardGroup>

### Real-Time Systems

<CardGroup cols={2}>
  <Card title="Messaging" icon="comments">
    * WhatsApp
    * Slack/Discord
    * Facebook Messenger
    * Notification System
  </Card>

  <Card title="Streaming" icon="video">
    * Live Video Streaming
    * Netflix/YouTube
    * Spotify
    * Gaming (Twitch)
  </Card>
</CardGroup>

### Social & Content Platforms

<CardGroup cols={2}>
  <Card title="Social Networks" icon="users">
    * Twitter/X Timeline
    * Instagram
    * Facebook News Feed
    * LinkedIn
  </Card>

  <Card title="Content Platforms" icon="newspaper">
    * Reddit
    * Medium/Blog Platform
    * Quora
    * Review System (Yelp)
  </Card>
</CardGroup>

### Location & Mapping

<CardGroup cols={2}>
  <Card title="Ride-Sharing" icon="car">
    * Uber/Lyft
    * Food Delivery (DoorDash)
    * Nearby Friends
    * Location Tracking
  </Card>

  <Card title="Mapping" icon="map">
    * Google Maps
    * Yelp (Local Search)
    * Geofencing
    * Store Locator
  </Card>
</CardGroup>

### E-Commerce & Transactions

<CardGroup cols={2}>
  <Card title="Shopping" icon="cart-shopping">
    * Amazon (E-commerce)
    * Flash Sale System
    * Inventory Management
    * Product Catalog
  </Card>

  <Card title="Payments" icon="credit-card">
    * Payment System
    * Digital Wallet
    * Fraud Detection
    * Subscription Billing
  </Card>
</CardGroup>

## Sample Interview Questions with Hints

### Question 1: Design a URL Shortener

<Accordion title="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?
</Accordion>

<Accordion title="Key design points">
  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
</Accordion>

### Question 2: Design Twitter Timeline

<Accordion title="Requirements to clarify">
  * Active users? (300M DAU)
  * Tweet rate? (500M tweets/day)
  * Follow limits? (5000 following)
  * Celebrity accounts? (millions of followers)
</Accordion>

<Accordion title="Key design points">
  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
</Accordion>

### Question 3: Design WhatsApp

<Accordion title="Requirements to clarify">
  * Users? (2B users, 100M DAU)
  * Message rate? (100B messages/day)
  * Group size? (1024 members max)
  * Message types? (text, image, video)
</Accordion>

<Accordion title="Key design points">
  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
</Accordion>

### Question 4: Design Netflix

<Accordion title="Requirements to clarify">
  * Users? (200M subscribers)
  * Content size? (10K titles, petabytes of video)
  * Concurrent streams? (10M peak)
  * Quality levels? (480p to 4K)
</Accordion>

<Accordion title="Key design points">
  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
</Accordion>

### Question 5: Design Uber

<Accordion title="Requirements to clarify">
  * Users? (100M riders, 5M drivers)
  * Rides/day? (20M)
  * Location update frequency? (every 4 seconds)
  * Matching criteria?
</Accordion>

<Accordion title="Key design points">
  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)
</Accordion>

## 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

| Day | Focus         | Practice                  |
| --- | ------------- | ------------------------- |
| 1-2 | Fundamentals  | Read theory, watch videos |
| 3-4 | URL Shortener | Design and diagram        |
| 5-6 | Rate Limiter  | Design and diagram        |
| 7   | Review        | Redo both from scratch    |

### Week 3-4: Core Systems

| Day | Focus               | Practice           |
| --- | ------------------- | ------------------ |
| 1-2 | Twitter Timeline    | Design and diagram |
| 3-4 | WhatsApp            | Design and diagram |
| 5-6 | Notification System | Design and diagram |
| 7   | Review              | Mock interview     |

### Week 5-6: Advanced Systems

| Day | Focus             | Practice           |
| --- | ----------------- | ------------------ |
| 1-2 | YouTube/Netflix   | Design and diagram |
| 3-4 | Uber              | Design and diagram |
| 5-6 | Distributed Cache | Design and diagram |
| 7   | Review            | Mock 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

* [System Design Primer (GitHub)](https://github.com/donnemartin/system-design-primer)
* [High Scalability Blog](http://highscalability.com/)
* [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

<Tip>
  **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.
</Tip>
