Skip to content

Design Practice

The Design section covers HLD (High-Level Design), LLD (Low-Level Design), and ML System Design — three of the most underrated parts of senior engineering interviews.

Three Tracks

TrackProblemsWhat it covers
HLD20Distributed systems, infrastructure, product-scale architecture
LLD15OOP design, design patterns, class-level modeling
ML Design17ML pipelines, model serving, MLOps, RAG, agents

Timed Practice

Each problem has a 45-minute timer — matching real interview conditions.

  1. Open any problem from the grid
  2. Click ⏱ 45 min to start the countdown
  3. Write your solution in the editor without stopping to look things up
  4. When time is up you get a browser notification
  5. Then review your solution against the checklist and references

This is the single most effective way to use the Design section — time pressure forces you to prioritize and exposes gaps you wouldn't notice in open-ended practice.

Solution Editor

Each problem opens a structured markdown editor pre-filled with a template for that track:

HLD template includes: Requirements → Capacity Estimation → API Design → Data Model → High-Level Architecture → Component Deep Dives → Trade-offs

LLD template includes: Requirements → Core Classes & Interfaces → Class Relationships → Design Patterns → Code Sketch → Edge Cases

ML template includes: ML Framing → Data Pipeline → Model Architecture → Training Strategy → Serving & Inference → Monitoring → Scaling

Your solution auto-saves to Firestore as you type — no manual save needed, and it syncs across devices.

Self-Review Checklist

After writing your solution, go through the track-specific checklist to grade yourself:

HLD checklist (sample):

  • Clarify functional & non-functional requirements
  • Estimate scale (QPS, storage, bandwidth)
  • Discuss trade-offs & alternative approaches
  • Address failure scenarios & fault tolerance

Checkbox state is saved per problem to Firestore.

Status Tracking

Cycle each problem through four states:

Not StartedIn ProgressDoneNeeds Review

Use Needs Review for problems where you feel your solution is weak and want to revisit. The filter bar lets you quickly pull up all problems in any state.

Filters

Filter the problem grid by:

  • Status — All / Not Started / In Progress / Done / Needs Review
  • Difficulty — All / Easy / Medium / Hard

Each problem comes with pre-linked references:

  • HLD — System Design Primer, ByteByteGo, Gaurav Sen
  • LLD — Refactoring Guru, Sudocode, Neetcode
  • ML — Made With ML, Chip Huyen Blog, HuggingFace, relevant papers and tool docs

You can also add your own links per problem (solution articles, video walkthroughs, blog posts). Custom links are saved to Firestore and show up every time you open that problem.

Built with VitePress