1️⃣ Types of Questions

  • Product Design
    • Apps like Uber, Netflix, Dropbox
  • Infrastructure Design
    • Rate limiter
    • Message queue
    • Data pipeline

2️⃣ Standard Interview Framework

Step-by-step approach

1. Requirements (~5 min)

Functional Requirements

  • Define what the system should do
  • Format: Users should be able to...

Example (Twitter):

  • Post tweets
  • Follow users
  • View feed

Tips:

  • Focus on top 3 features only
  • Ask:
    • “Should the system support X?”
    • “What happens if Y?”

Non-functional Requirements

  • Define system qualities

Examples:

  • High availability
  • Low latency (<200ms)
  • Scale (100M+ users)

2. Core Entities (~2 min)

  • Define main data objects

Example:

  • User
  • Tweet
  • Follow

How to identify:

  • Who are actors?
  • What are main resources?

Tips:

  • Start small → expand later
  • Avoid over-designing schema early

3. APIs (~5 min)

  • Choose API type:
TypeUse Case
RESTDefault
GraphQLFlexible clients
gRPC / RPCInternal fast calls

4. High-Level Design

Goal: Build working system first

Approach:

  • Draw servers
  • Draw database
  • Draw cache
  • Draw load balancer
  • Map APIs → system flow

Key Tips:

  • Start simple ✅
  • Add complexity later ⚠️
  • Explain data flow clearly
  • Show:
    • Where data is stored
    • What changes per request

Common Mistake:

  • Adding cache, queues, sharding too early ❌

5. Deep Dive

Goal: Improve system for:

  • Scale
  • Performance
  • Reliability

What to do:

  • Handle bottlenecks
  • Handle edge cases
  • Add:
    • Caching
    • Sharding
    • Load balancing

Example (Twitter Feed):

  • Fanout-on-read vs fanout-on-write
  • Use cache for faster reads

Pro Tips:

  • Junior → let interviewer guide
  • Don’t dominate conversation
  • Give interviewer space to probe

3️⃣ Core Fundamentals (Must Know)

1. Storage

Types:

  • Relational DB (tables)
  • Document DB (JSON)
  • Key-value store

Concepts:

  • ACID vs BASE
  • Choose based on access patterns

2. Scalability

  • Vertical → bigger machine
  • Horizontal → more machines

Techniques:

  • Sharding
  • Partitioning
  • Consistent hashing

3. Networking

Important Layers:

  • Application → APIs, WebSockets
  • Transport → TCP vs UDP
  • Network → Load balancer


4. Performance

Concepts:

  • Latency
  • Throughput
  • Bottlenecks

Optimization:

  • Caching
  • Efficient queries

5. Fault Tolerance

  • Failures are unavoidable

Techniques:

  • Replication
  • Redundancy
  • Failover

6. CAP Theorem

  • Choose between:
    • Consistency
    • Availability
    • Partition tolerance
  • Partition tolerance is always required

4️⃣ Key Components in Systems

Database

  • SQL or NoSQL both can scale
  • Choose based on:
    • Read/write patterns

Cache

  • Example: Redis
  • Fast access
  • Stores frequently used data

Trade-off:

  • Consistency issues

Message Queue

  • Enables async communication

Examples:

  • Kafka
  • RabbitMQ

Use Cases:

  • Handle traffic spikes
  • Decouple services

Load Balancer

  • Distributes traffic
  • Prevents overload

Blob Storage

  • Stores large files (images, videos)
  • Example: S3

CDN

  • Global cache layer
  • Faster content delivery

5️⃣ How to Prepare Effectively

Learning Approach

  1. Try problem yourself 🧠
  2. Identify gaps
  3. Research (Google / ChatGPT)
  4. Watch solution

Strategy

  • Don’t memorize → learn patterns
  • Focus on trade-offs
  • Practice mock interviews