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. 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 → Responsethen 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
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
👉 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
From debates:
❌ 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 + monitoringAnd remember this
Do not fight the interviewer’s flow.
Stay structured even when interrupted.