Low-level design lab/ Browser-native test runner

Master Low-Level Design by Building Real-World Systems.

Bridge the gap between algorithmic thinking and production-grade object architecture. Practise real LLD interview problems and design patterns with tests that run instantly in your browser.

At a glanceFree to practise
4Languages
—Problems
12GoF patterns
JSTSPythonGo
Tests run locally. Your code never leaves the machine.
discount-strategy.ts
Tests: 4 / 4Strategy pattern

UML object topology

Class diagram
«interface»DiscountStrategy
  • + apply(total): number
«implements»PercentOff
  • - percent: number
  • + apply(total): number
CheckoutStrategy pattern
  • - strategy: DiscountStrategy
  • - prices: number[]
  • + total(prices): number

Classes: 3 • Interfaces: 1 • Associations: 2

TypeScriptPythonGo
Runs in your browser
interface DiscountStrategy {
  apply(total: number): number;
}


class PercentOff implements DiscountStrategy {
  constructor(private percent: number) {}
  apply(total: number) {
    return Math.floor((total * (100 - this.percent)) / 100);
  }
}


class Checkout {
  constructor(private strategy: DiscountStrategy) {}
  total(prices: number[]) {
    return this.strategy.apply(prices.reduce((a, b) => a + b, 0));
  }
}
check_circle

Test suite: 4 / 4 passed

Open in the workspace
Engineering rigor

How LLDLAB turns software engineers into system designers

Every problem is modelled the way production systems are built, so the patterns stick when the interviewer changes the requirements.

Real-World Engineering Scenarios

Model parking lots, caches, carts and schedulers the way production systems are built: interfaces, composition and clear responsibilities.

Real business domains

Design Patterns in Practice

Every problem is built around a pattern, so you learn Strategy, Observer or Factory by using them, not by memorising definitions.

UML and anti-pattern notes

Instant Feedback in Your Browser

Write JavaScript, TypeScript, Python or Go and run the test suite instantly. Code never leaves your machine.

No install, no server
Curated problem library

High-Impact System Design Challenges

Architectural primitives

Design Patterns Matrix

Categories:4 Creational4 Structural4 Behavioral
Category 014 patterns

Creational

How objects get created without hard-wiring concrete classes.

  • SingletonConfig registry
  • FactoryPayment providers
  • BuilderQuery objects
  • PrototypeDocument templates
Explore creational patterns
Category 024 patterns

Structural

How classes and objects compose into larger structures.

  • AdapterLegacy APIs
  • DecoratorStream wrappers
  • FacadeCheckout flow
  • ProxyLazy loading
Explore structural patterns
Category 034 patterns

Behavioral

How responsibilities and communication are distributed.

  • ObserverEvent buses
  • StrategyPricing rules
  • CommandUndo stacks
  • StateVending machines
Explore behavioral patterns
Design principles

Code that survives the follow-up question

Interviewers change one requirement and watch what breaks. Every problem is scored on how well your classes absorb that change, not just whether the tests pass.

S

Single responsibilityOne reason to change.

O

Open/closedExtend without editing.

L

Liskov substitutionSubtypes keep the contract.

I

Interface segregationSmall, focused interfaces.

D

Dependency inversionDepend on abstractions.
Machine coding readiness

Ready to crack the LLD & machine coding interview?

Start with a beginner blueprint and work up to concurrent systems, one pattern at a time.

Start free practice