System Design
System Design Interview'ga tayyorgarlik
Interview Formati
Vaqt: 45-60 minut
Format: Open-ended problem
Typical savol:
- “Instagram kabi photo sharing app loyihalang”
- “URL shortener (bit.ly) qanday qurgan bo’lardingiz?”
- “Netflix kabi video streaming platform”
Yondashuv (Framework)
1. Talablarni aniqlash (5-10 min)
Functional Requirements:
- Users can upload photos
- Users can follow others
- Users can see feed
- Users can like/comment
Non-Functional Requirements:
- 100M daily active users
- Low latency (<200ms)
- High availability (99.99%)
- Eventual consistency OK for feed
Back-of-envelope calculations:
100M DAU
Average 10 photos/day per user
= 1B photos/day
= ~12K photos/sec
2. High-level design (10-15 min)
Client → CDN (static assets)
→ Load Balancer
→ API Servers
→ Database (user data)
→ Object Storage (S3) - photos
→ Cache (Redis) - feed
3. Core components (20-30 min)
Deep dive:
- Database schema
- API design
- Caching strategy
- Photo storage
- Feed generation
Trade-offs:
- SQL vs NoSQL?
- Push vs Pull model for feed?
- Consistency vs Availability?
4. Scale (5-10 min)
- Database sharding
- CDN for global users
- Read replicas
- Message queues for async
- Monitoring & alerts
Nima tekshiriladi?
1. Problem-solving:
Katta muammoni kichik qismlarga bo’lish
2. Trade-offs:
Har bir qarorning pros/cons
3. System knowledge:
Database, cache, load balancer, etc.
4. Communication:
O’ylashni og’zaki tushuntirish
5. Experience:
Real-world challenges
Maslahatlar
Do:
- Talablarni aniqlang
- Rasmlar chizing
- Ovoz chiqarib o’ylang
- Trade-off’larni muhokama qiling
- Interviewer bilan gaplashing
Don’t:
- Darhol coding’ga tushish
- Silent bo’lish
- Bitta yechimda turib qolish
- Hamma detaillarni qamrab olishga urinish
Mashq qilish
- LeetCode System Design premiu
- Grokking System Design
- Real arxitekturalarni o’qish:
- Netflix Tech Blog
- Uber Engineering Blog
- Instagram Engineering
Keyingi dars: URL Shortener loyihalash.