Low-Level Design

Object-oriented design, design patterns, concurrency, and machine-coding case studies.

What is Low-Level Design?

Low-Level Design (LLD) is the bridge between architecture and code. While HLD describes the components of a system and how they communicate, LLD describes how individual components are built — class structure, object relationships, data structures, algorithms, and concurrency.

In interviews, LLD rounds typically ask you to design the classes and methods for a focused problem (parking lot, elevator, splitwise, chat) in 45–60 minutes.


HLD vs LLD

AspectHLDLLD
FocusSystem architectureClass/object design
LevelServices, databases, queuesClasses, methods, fields
OutputBlock diagrams, data flowClass diagrams, sequence diagrams
ToolsUML deployment, C4UML class, sequence, state
ScaleDistributed systemsSingle service / module
ConcernsScalability, availabilityExtensibility, testability

Sections



How to Approach an LLD Interview

  1. Clarify requirements — functional and non-functional. Don't assume.
  2. Identify entities — nouns become classes; verbs often become methods.
  3. Define relationships — is-a (inheritance) vs has-a (composition).
  4. Pick patterns deliberately — name the pattern you're using and why.
  5. Handle concurrency — call out shared state, locks, atomicity.
  6. Discuss extensibility — how would you add a new vehicle type / payment method?
  7. Edge cases — invalid input, exhausted resources, partial failure.