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
| Track | Problems | What it covers |
|---|---|---|
| HLD | 20 | Distributed systems, infrastructure, product-scale architecture |
| LLD | 15 | OOP design, design patterns, class-level modeling |
| ML Design | 17 | ML pipelines, model serving, MLOps, RAG, agents |
Timed Practice
Each problem has a 45-minute timer — matching real interview conditions.
- Open any problem from the grid
- Click ⏱ 45 min to start the countdown
- Write your solution in the editor without stopping to look things up
- When time is up you get a browser notification
- 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 Started → In Progress → Done → Needs 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
Resources & Custom Links
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.