1. The 45-Minute Time Allocation Framework
The number one reason qualified engineers fail system design interviews is poor time management. Spending 20 minutes calculating server memory leaves no time for database schema, bottlenecks, or failure modes.
Master this strict breakdown: 0-5m Scope & Requirements; 5-10m Capacity Estimation; 10-25m High-Level Design; 25-40m Deep Dives & Bottlenecks; 40-45m Wrap-up & Trade-offs.
2. Step 1: Scoping Functional & Non-Functional Requirements (5 mins)
Never start drawing boxes immediately. Clarify user scale, read/write patterns, latency targets, and availability goals.
Identify 2-3 core functional use cases (e.g. 'Users can post a tweet' and 'Users can view their timeline') and 2-3 non-functional invariants (e.g. 99.99% availability, timeline p99 < 150ms).
3. Step 2: Capacity Estimation & Back-of-the-Envelope Math (5 mins)
Convert DAU into QPS: 100M daily active users making 10 requests = 1B requests/day = ~12,000 QPS average (peak ~25,000–30,000 QPS).
Estimate storage growth over 5 years and network ingress/egress bandwidth. State assumptions out loud so the interviewer can guide you.
4. Step 3: High-Level Architecture & API Definition (15 mins)
Sketch the end-to-end topology: Client -> CDN/DNS -> API Gateway -> Microservices -> Caching Tier -> Database Shards.
Define clean REST or gRPC endpoint contracts for the core functional requirements.
5. Step 4: Deep Dives & Eliminating SPOFs (15 mins)
This is where senior and staff levels are evaluated. Drill into edge cases: What happens if the primary database dies? How do you handle hot partitions? Where are the single points of failure?
Model this architecture on the HLDForge Canvas
Turn static box diagrams into living, collaborative systems. Drag and drop microservices, Kafka clusters, and cache tiers. Run automated SPOF detection and STRIDE threat modeling in real time.
Written by HLDForge Architecture Team
Former FAANG Bar Raiser & Staff Architect
The HLDForge Architecture Team publishes practical engineering guides, real-world case studies, and high-concurrency blueprints to help engineers build scalable and fault-tolerant software.