Running a 3-person startup means every engineering hire is high-stakes. Here's the assessment framework we landed on after several failed attempts. What didn't work Live coding in a video call — candidates froze up, output didn't reflect their actual ability. Senior devs especially hated being watched. Full take-home projects (3–5 hours) — good candidates dropped out because their time is valuable and they had options. Just asking about past projects in an interview — too easy to embellish, no signal on actual implementation thinking. What worked: a focused 90-minute async task The format we converged on: A real, scoped problem from our actual codebase context (not a LeetCode puzzle) 90-minute time limit , explicitly communicated upfront Asynchronous — they pick a 2-hour window, we review async Evaluated on reasoning, not perfection We send a single file: a TypeScript module with a bug, a missing feature, and some intentionally messy code.…