Designing common, real-world systems is at the heart of every software engineering system design interview. Companies want to assess whether you can build scalable, reliable, and maintainable architectures for everyday products used by millions.
This guide introduces you to the most commonly asked system design questions and the core challenges behind each one.
🔑 Approach Framework (How to Answer Any System Design Question)
For any system, apply this structure in your interview:
-
Clarify Requirements
- Functional: What should the system do?
- Non-functional: Scale, latency, availability?
-
Define Core Use Cases
- Prioritize features (e.g., read-heavy vs. write-heavy)
-
Sketch the High-Level Architecture
- Frontend ↔ API Gateway ↔ Services ↔ Datastores
-
Design the Database Schema & Storage
- Choose between SQL, NoSQL, KV store, blob storage
-
Discuss Scalability, Fault Tolerance, and Trade-offs
- Use load balancers, sharding, replication, and queues
-
Consider Caching, Security, and Monitoring
- CDN, Redis, OAuth, logs, dashboards
-
Identify Bottlenecks and Future Improvements
💼 Common System Design Questions
These are frequently asked across Google, Meta, Amazon, TikTok, Airbnb, and Stripe:
1. 🧾 URL Shortener (e.g., Bitly)
Key Concepts:
- Unique key generation (hashing or counter)
- Mapping table (short → long URL)
- Redirection service
- Caching, rate-limiting, and expiry logic
Challenge: Generate billions of unique short links while minimizing collisions.
2. 💬 Chat Application (e.g., WhatsApp, Slack)
Key Concepts:
- WebSockets or polling for real-time communication
- Message queue (Kafka, SQS)
- Message delivery guarantees (at-least-once)
- Online/offline state, read receipts
Challenge: Maintain real-time performance at scale across regions.
3. 📰 Social Media Feed (e.g., Twitter, Instagram)
Key Concepts:
- Fan-out on write vs. read
- Feed ranking algorithm
- Caching hot content
- Feed pagination and deduplication
Challenge: Deliver personalized and fresh content under tight latency budgets.
4. 🗂️ File Storage System (e.g., Dropbox, Google Drive)
Key Concepts:
- Chunked file uploads with versioning
- Blob storage (e.g., S3)
- Deduplication, syncing, and conflict resolution
- Metadata indexing and permissions
Challenge: Handle file changes and syncing reliably across devices.
5. 📺 Video Streaming Platform (e.g., YouTube, Netflix)
Key Concepts:
- Upload pipeline → transcoding (HLS, DASH)
- CDN integration for low-latency streaming
- Buffering strategies and adaptive bitrate streaming
- Logging and analytics
Challenge: Deliver high-quality video at scale with minimal latency.
6. 🚕 Ride-Sharing App (e.g., Uber, Lyft)
Key Concepts:
- Real-time location tracking
- Matching algorithm (rider ↔ driver)
- Surge pricing logic
- Geo-indexing (e.g., QuadTrees, Geohashing)
Challenge: Ensure low latency and high availability in dynamic environments.
7. 📩 Notification System (e.g., Push/Email/SMS)
Key Concepts:
- Prioritization of messages
- Message queues with retries and DLQ
- Scheduled delivery & exponential backoff
- User preferences and unsubscribe logic
Challenge: Guarantee delivery while handling failures and retries at scale.
🧠 Key Themes Across These Systems
Theme | Where It Appears |
---|---|
Real-time Communication | Chat app, ride-sharing, notifications |
Read Optimization | News feed, video streaming, file system |
Write-heavy Workloads | Logging, uploads, clickstream analysis |
Consistency Trade-offs | Messaging, collaborative docs |
Data Storage & Search | File system, media platform, search |
✅ Summary
System | Core Challenge |
---|---|
URL Shortener | Unique ID generation, fast redirection |
Chat Application | Real-time, ordered message delivery |
Social Media Feed | Scalable fan-out, ranking algorithms |
File Storage System | Sync, consistency, and conflict resolution |
Video Streaming | Buffering, encoding, CDN delivery |
Ride-Sharing App | Location tracking, pricing, matching |
Notification System | Reliability, retries, personalization |