High-level system design

HLD interview practice that builds real interview skill

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

A repeatable structure for every HLD interview

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.

5–10 min

Estimate the workload

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

Draw the high-level design

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

Deep-dive and defend trade-offs

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

Close with risks and evolution

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

Five scores, and the whiteboard is one of them

There is rarely one correct architecture. A good answer is internally consistent, tied to the stated requirements, and explicit about its costs. The debrief scores that on five dimensions. Whiteboard usage is one of them: a design you only talk through, without drawing the components and connections, is marked down, and that pulls the overall score down with it.

  • Requirements coverage: did you address the functional and non-functional requirements?
  • Design quality: are the components, boundaries, and data flows coherent?
  • Whiteboard usage: does the diagram match what you said, with labeled components and connections?
  • Depth of reasoning: did you surface trade-offs, alternatives, and edge cases?
  • Communication: was the discussion structured and easy to follow?

Live problem library

Choose from the questions currently in rotation

The live library includes URL shorteners, chat, video, file sync, collaborative docs, crawlers, and ranking systems. Filter by difficulty and read the brief without an account. Sign in only when you are ready to start a live interview.

Browse current questions

Common questions

HLD interview FAQ

What is an HLD interview?

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.

How should I practise high-level system design?

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.

How long is a system design interview?

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.

Is HLD the same as system design?

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.