System Design

System Design Interview'ga tayyorgarlik

Interview Formati

Vaqt: 45-60 minut
Format: Open-ended problem

Typical savol:

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:

Trade-offs:

4. Scale (5-10 min)

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:

Don’t:

Mashq qilish

  1. LeetCode System Design premiu
  2. Grokking System Design
  3. Real arxitekturalarni o’qish:
    • Netflix Tech Blog
    • Uber Engineering Blog
    • Instagram Engineering

Keyingi dars: URL Shortener loyihalash.