0–5 min
Clarify the problem
Define the users, core use cases, scale, latency goals, consistency needs, and what is explicitly out of scope. Strong candidates narrow an ambiguous prompt before drawing components.
High-level system design
A high-level design interview tests more than architecture knowledge. You need to turn ambiguity into a workable system, explain decisions under pressure, and adapt when the interviewer changes the constraints. Use this guide to practise that complete loop—not just memorize diagrams.
The 45-minute framework
0–5 min
Define the users, core use cases, scale, latency goals, consistency needs, and what is explicitly out of scope. Strong candidates narrow an ambiguous prompt before drawing components.
5–10 min
Calculate rough read and write throughput, storage growth, bandwidth, and peak traffic. The goal is not perfect arithmetic; it is making architecture choices that fit the workload.
10–25 min
Trace the critical request path through clients, APIs, services, storage, caches, queues, and external systems. Explain ownership and data flow instead of listing technologies.
25–40 min
Expect follow-ups on bottlenecks, failures, data partitioning, consistency, hot keys, retries, and observability. State what your design optimizes and what it deliberately gives up.
40–45 min
Summarize the design, name the largest remaining risks, and explain how it evolves at 10× scale. This demonstrates prioritization and engineering judgment.
What gets evaluated
There is rarely one correct architecture. A good answer is internally consistent, tied to the stated requirements, and explicit about its costs. Use the same rubric after every practice session so weaknesses become visible over time.
Live problem library
Browse every active high-level system design problem, filter by difficulty, and read the brief without an account. Sign in only when you are ready to start a live interview.
Common questions
An HLD, or high-level design, interview asks you to design a large software system at the architecture level. You clarify requirements, estimate scale, define APIs and data models, draw major components, and defend trade-offs around scalability, reliability, latency, and consistency.
Use a timed, repeatable structure and speak every decision aloud. Practise with unfamiliar prompts, draw the request and data flows, invite follow-up questions, then compare your performance against a consistent rubric. Reading solutions helps with concepts, but live retrieval and communication need deliberate practice.
Most system design rounds last about 35 to 60 minutes. A useful practice target is 45 minutes: roughly 10 minutes for scope and estimates, 15 minutes for the high-level architecture, 15 minutes for deep dives, and 5 minutes to summarize risks.
In software engineering interviews, HLD and system design usually refer to the same architecture-focused round. HLD emphasizes services, databases, caches, queues, scaling, and trade-offs, while low-level design focuses more on classes, interfaces, and code structure.