InterviewKata
Low-level design · Start here

Start here: the low-level design round

"Design a parking lot." It sounds simple, and that's the trap: everyone can list classes, but few answers handle change, concurrency and working code in 45 minutes. This page explains the round, what you need, and how to use this track.

1. What the round is

A low-level design round is like a carpentry test: you're given a small brief (a bookshelf, not a house), and judged on the joints as much as the look. Do the parts fit together cleanly? Will it hold weight? Can a shelf be added later without taking it apart?

You get a prompt for a small system (a cache, a parking lot, an elevator, a booking system) and about 45 minutes. You clarify requirements, design the classes and interfaces, and usually write the core in a language of your choice. Some companies call it object-oriented design or a machine-coding round; the longer machine-coding variants expect complete, runnable code in 60–90 minutes.

2. How this track teaches

  1. Eleven foundation modules: the interview plan, OOP, SOLID with a deep dive on each principle, patterns, diagrams and concurrency, each with an animation, a hands-on tool and tested code.
  2. Fifteen problems, from warm-ups (LRU cache) to bigger designs (movie booking, pub-sub), all with the same ten sections.
  3. Code in three languages behind tabs: Python, TypeScript and Java. Your choice is remembered across pages.
  4. Every program is compiled and run before publishing, and its output is shown under the code. All three languages print exactly the same lines.

3. What you need

4. Five rules from day one

  1. Requirements before classes. Five minutes of questions saves twenty minutes of rewriting.
  2. One job per class. If you can't say a class's job in one sentence, split it.
  3. Interfaces where things vary, and nowhere else.
  4. Find the check-then-act and say how it's protected.
  5. Code the core for real. Hand-wave getters, not the algorithm.

5. The daily routine (45 minutes)

DayActivity
MondayRead the prompt and requirements only. Design it yourself for 30 minutes on paper.
TuesdayRead the page's classes, flow and patterns. Note what you missed.
WednesdayCode the core from memory in your language; compare outputs with the page.
ThursdayAnswer every follow-up out loud; do the Your turn exercise.
FridayTen minutes of the review deck, then redo Monday's design in 20 minutes.

6. Self-check quiz

What's the main difference between low-level and system design rounds?

Same skill of decomposition, different level.

What should you do in the first five minutes?

Requirements decide everything after.

7. Glossary

Every dotted word in this track, in one place.

8. Where to go next