A self-verifying, multi-stage coding interview harness that reproduces the full shape of a real senior-eng interview — staged progression, realistic edge cases, discussion follow-ups — not just LeetCode-style "did the function return the right value."
practice/, solution/, test/ triples with a single-line toggle to run tests against either implementation.Solo learner
Primary
"I have an onsite in 3 weeks. LeetCode trains me for the wrong shape — I keep failing the optimization stage and the follow-up discussion."
Wants: ~5 high-quality problems with the full arc, realistic edge cases, and a way to verify correctness without spoiling the answer.
Coach / mentor
Secondary
"I run mock interviews for friends. I keep recreating the same problems from scratch in a Google Doc with my own test cases."
Wants: a curated catalog they can hand to a candidate, with the discussion prompts already written down.
Hiring team
Tertiary / later
"We want to standardize what we ask, but maintaining a private problem bank is a lot of overhead."
Wants: a way to fork the harness, add private problems with the same structure, and trust the test suite.
| Tier | Requirement | Status (v0.1) |
|---|---|---|
| P0 | Each problem ships as a triple: practice/, solution/, test/. | Done for 3 problems. |
| P0 | Single-line toggle at the top of the test file flips between practice and solution targets. | Done. |
| P0 | Each test suite passes 100% against its solution/ impl. | Done. LRU, crawler, image processor all green. |
| P0 | Each problem has a Stage 1 (correctness) and Stage 2 (optimization or extension). | Done. |
| P0 | Stage 3 (discussion-only) follow-ups embedded as comments in the practice file. | Done for crawler and image processor; LRU partial. |
| P1 | Library-agnostic tests for problems where the candidate picks tools. | Done for image processor; N/A for LRU and crawler (pure Python). |
| P1 | Per-problem INTERVIEW_QUESTIONS.md with the interviewer's probe questions in order. | Done for crawler only. |
| P1 | Tests generate fixtures programmatically; no checked-in binary assets. | Done. |
| P1 | Tests run in < 1 second per problem on a laptop. | Done. ~0.4s for image processor, <0.1s for LRU. |
| P1 | Each practice file's docstring states the stages, time budgets, and the exported names the tests will import. | Done. |
| P2 | CLI to scaffold a new problem (creates the practice/solution/test triple from a template). | Not started. |
| P2 | Progress tracking: per-problem pass count, time-to-first-green, attempts. | Not started. |
| P2 | Catalog index page listing all problems with stage / difficulty / topic tags. | Not started. |
| P2 | Coach mode: hide solution module entirely until a pass-count threshold is reached. | Not started. |
assertEqual(..., msg="...") aggressively.| Capability | This harness | LeetCode | NeetCode | Pair-mocks (e.g. interviewing.io) |
|---|---|---|---|---|
| Multi-stage problem arc | Yes | No | No | Sometimes |
| Library-agnostic tests | Yes | No | No | N/A (human-graded) |
| Solution hidden by default | Yes | No | N/A | |
| Edge cases an interviewer would probe | Yes | Sometimes | Sometimes | Yes (live) |
| Discussion follow-up prompts | Yes | No | Video only | Yes (live) |
| Local, free, offline | Yes | No | No | No |
FOLLOWUPS.md the candidate is told to open after their code passes?