This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
What I Built
An offline mock DSA interviewer. You pick a problem, think out loud while you code in the browser, and it behaves like a real interviewer: it asks for your approach before you code, gives graduated hints when you're stuck, runs your solution against hidden tests, asks for complexity, then throws edge cases at you.
I built it for *, who *[one honest sentence: what they're preparing for and what's been hard for them, e.g. nobody to practice with, can't afford paid mock interviews, or doesn't want their voice and half-formed code sent to someone's server]. It gives them unlimited practice, free, with nothing leaving their laptop.
Demo
It's local-first, so the demo is a screen recording of a full interview: clarify, approach, a failing run, a hint, a passing run, complexity, edge cases, report.
How I Built It
- Qwen3-8B via Ollama (open weights) is the interviewer's voice. It returns schema-constrained JSON: one action from the list the current state allows, plus a short message.
- A Go state machine owns the flow: clarify → approach → code → complexity → follow-up. The model can't skip phases, and the code phase only ends when every test passes.
- Correctness comes from a sandboxed test runner, not the LLM. Small local models are unreliable judges. Hints and edge cases come from a curated question bank, and the final report contains only facts (tests passed, runs, hints used).
- Graceful degradation: if the model is unavailable, a deterministic fallback keeps the interview running.
- Known limits: the subprocess sandbox isn't a security boundary, it's Python-only, and input is text-only for now. Next up: tree-sitter code hints, whisper.cpp voice, Monaco vendored offline, and scripted fake-candidate regression tests.
Why Does Open Innovation Matter?
A practice interview exposes your half-formed thinking, your mistakes and your voice. With open weights running locally, all of that stays on the machine. It works without internet, costs nothing per session, and anyone can swap the model or edit the interviewer's rules. A closed API would mean per-call costs, rate limits, and sending someone's struggle to a third party. For a friend practicing under pressure, that trade matters.
Top comments (0)