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 R β†’ E β†’ A β†’ D β†’ D

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)

Example: Define main data objects

  • User
  • Tweet
  • Follow

How to identify:

  • Who are actors?
  • What are main resources?

Tips:

  • Start small β†’ expand later
  • Avoid over-designing schema early
    • i am not gonna details the key filed and column yet i don't quite know that yet. i am too early in my design. they are gonna evolve naturally. As when i move to high level design I will be explicit about exactly the filed that matter So, For now i would stop here.

3. APIs (~5 min)

  • Look for the FR. then try to satisfy that with API REST API βœ…
POST /tweets
GET /tweets/{id}
POST /follows
GET /feed

4. High-Level Design

Goal: Build working system first

Approach:

  • Draw servers
  • Draw database
  • Draw cache
  • Draw load balancer
  • Map APIs β†’ system flow
  • Just Create Request β†’ Server β†’ DB β†’ Response then enhance later

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 (~10 min)

Goal: Improve system for:

  • Scale
  • Performance
  • Reliability
  • You can deep dive to few places in high level design

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️⃣ TIPS

1. Use ONE simple mnemonic

SCALE

  • S β†’ Scalability
  • C β†’ CAP
  • A β†’ Availability / Fault tolerance
  • L β†’ Latency
  • E β†’ Environment - mobile / web

πŸ‘‰ Enough for interviews βœ…


2. Learn to CONTROL the interview (soft skill)

If interviewer interrupts:

Say:

β€œI can dive deeper here, but I’d like to first complete the high-level design and then come back”


3. Don’t memorize answers, learn thinking

❌ Wrong mindset:

  • β€œShould I use Kafka?”

βœ… Right mindset:

  • β€œDo I need async processing?”

4. Always mention trade-offs

Example:

β€œI’ll use cache to reduce latency, but this introduces consistency challenges”

πŸ‘‰ This is what interviewers LOVE


5. Add 1–2 advanced points (edge boost πŸš€)

From comments:

  • Monitoring & metrics
  • Bottleneck detection
  • Query patterns

πŸ‘‰ Just mentioning these = strong signal


6. Final Recommendation

Your compact interview mental model should be:

1. Clarify top 3 functional requirements  
2. Clarify top 3 NFRs  
3. List core entities  
4. Define API/interface  
5. Draw simple end-to-end design  
6. Deep dive into bottleneck  
7. Add scaling + reliability + monitoring

And remember this

Do not fight the interviewer’s flow.  
Stay structured even when interrupted.