AI-powered low-level design mock interviewer.
Code. Explain. Get scored β completely free.
An Electron desktop app for low-level design interview practice. An AI generates realistic problems, you design and code the classes, and an AI judge scores your performance.
Use it 100% free (unlimited) with free models on OpenRouter. No subscriptions, no sign-ups beyond the API key.
One-click generation of realistic LLD interview questions across diverse domains, design patterns, and system architectures.
Pick Ambiguous mode for open-ended scenarios that need clarifying questions, or Detailed mode for fully specified method contracts. Each question is scoped to your time budget (45 / 60 / 90 / 120 min) in Python or Java.
You can add a topic or custom prompt to steer the question in a specific direction, or add a concurrency requirement for thread-safety practice.
Configure problem mode, language, time budget, and concurrency requirements
A simulated interviewer that sits alongside your problem statement in a chat panel. It behaves like a real interviewer β answers scope and edge-case questions with concrete rules, but never gives away the solution.
"Can a small package go into a large compartment?" β "For now, match the size exactly. If there's no matching compartment, reject the deposit."
"Do we need thread-safety?" β "No, assume single-threaded usage. Thread-safety is out of scope."
"Should I use a dict or a list?" β "That's a design decision for you to make. What trade-offs are you considering?"
The full conversation is saved as part of your session.
AI interviewer chat β ask clarifying questions just like a real interview
Write and run real code. The workspace is a multi-file code editor with file explorer, tabs, and auto-save:
- Run & test β real local execution with Python and Java, streamed output and pass/fail status
- Interactive terminal β per-session workspace on disk with full shell access
- Session timer β time budget with time-spent tracking
External libraries can be enabled per session.
Code workspace with IntelliSense autocomplete, documentation flyout, and terminal test runner
One-click generation of runnable tests from your actual classes. Tests cover every required method including edge cases. Sessions with concurrency enabled get one extra multi-threaded check.
Open any session and run the AI Judge to get a detailed evaluation report. The judge analyzes your code, clarifications, and test output β and scores you across 6 dimensions:
| Dimension | What it evaluates |
|---|---|
| Problem Analysis | Did you model the right entities and responsibilities? |
| Class Design | Are classes clean and well-organized? |
| Code Quality | Is the code readable and encapsulated? |
| Extensibility | Can new rules be added without rewriting? |
| Concurrency & Edge Cases | Are invalid inputs and threads handled? |
| Testing & Correctness | Did tests run and pass? |
Each dimension receives a score with specific observations referencing your actual code and design choices. The report also includes an overall score, seniority level, strengths, and areas for improvement.
Detailed judge report with actionable suggestions, interview rationale, and architecture diagrams
- Multiple sessions β create and delete sessions, each with its own problem and code
- Auto-save β your work is saved automatically as you code, never lose progress
- Dark & light mode β full theme support, toggle from settings
- Configurable models β swap in any model from OpenRouter
- External libraries β opt-in packages per session
- Mermaid diagrams β design diagrams rendered inline in judge feedback
- Node.js 18+ and npm
- Python 3 and/or Java 17+ for local run and test
# Clone the repository
git clone https://github.com/ccd97/LowLevelDesign.ai.git
cd LowLevelDesign.ai
# Install dependencies
npm install
# Start the app
npm run dev|
Add your API key Open βοΈ Settings (gear icon in the top bar) β paste your OpenRouter key. β Step-by-step OpenRouter setup guide (free models available) |
|
|
Create a session Click New Session β pick a language, mode, and time budget. Add a topic if you want. |
|
|
Clarify the problem Use the π¬ Interviewer Chat to ask scope and edge-case questions before you code. |
|
|
Design and code Implement your classes in the editor. Click Run to execute, or Generate Tests for a runnable suite. |
|
|
Get scored Click Evaluate when you're done. The judge scores all 6 dimensions and lists improvements. |
|
|
Iterate Fix the feedback, re-run tests, and re-evaluate. Every session is saved locally. |
Configure settings anytime via the Settings dialog (βοΈ icon in the top-right header).
Theme, model selection, standard library IntelliSense, and runtime paths
LowLevelDesign.ai uses OpenRouter for question generation, interviewer chat, test generation, and evaluation scoring.
- API Key β follow the OpenRouter Setup Guide to get a free key and configure your model. Free models are supported out of the box.
Python 3 and Java 17+ are auto-detected from your system. Custom interpreter paths or virtual environments (venv) can be specified in Settings if needed.
- STL IntelliSense β built-in hover documentation and completions for Python and Java standard libraries.
- External Libraries β opt-in third-party packages (
pipdependencies / Java JARs) configurable per session.
npm run dev # Dev server + Electron
npm run build # TypeScript compile + Vite production build
npm run start # Launch built Electron app
npm run package:mac # macOS β release/*.dmg
npm run package:linux # Linux β release/*.AppImage
npm run package:win # Windows β release/*.exe- Electron β desktop shell
- React 19 + TypeScript (strict) β UI
- Vite β build tool
- Tailwind CSS β styling
- Lucide β icons
- Mermaid β diagrams in judge feedback
src/
βββ App.tsx # Root component, all app state lives here
βββ main.tsx # React entry point
βββ index.css # Tailwind + global styles
βββ components/ # Problem, editor, terminal, modals, viewers
βββ services/ # AI calls, starter templates, feedback
βββ types/ # Session, settings, evaluation, API types
βββ utils/ # Parsing, validation, file helpers
βββ vite-env.d.ts # Window API type declarations
electron/
βββ main.ts # Main process β window + IPC handlers
βββ preload.ts # Context bridge β exposes window.electronAPI
βββ storage.ts # Settings + session persistence
βββ runner.ts # Local code execution
βββ terminal.ts # Per-session workspace + shell
Contributions are welcome! Feel free to open issues, suggest features, or submit pull requests.
MIT β use it, modify it, ship it.