The first version worked. It could listen to a candidate, generate a response, ask the next question, and keep the interview moving. But it did not yet feel like an interview.
A technical interview is highly sensitive to delay. If the interviewer pauses too long after every answer, the conversation feels artificial. If the system cannot understand what the candidate is coding in real time, it loses the ability to ask meaningful follow-ups. And if the final recommendation cannot be traced back to evidence from the conversation, the result is difficult for a recruiter to trust.
Latency became the first product constraint
The early implementation used a conventional sequential voice flow. Speech was transcribed, interpreted, sent through the language model, converted back to speech, and played to the candidate.
Functionally it worked, conversationally it felt sluggish. We shifted to an interleaved streaming WebRTC pipeline with speculative token generation, pushing conversational turn latency under 300 milliseconds.
Live coding execution sandbox
Technical interviews are not just conversations. Candidates need to write code, execute test cases, debug memory allocations, and explain complexity trade-offs.
We integrated a gVisor-isolated container sandbox supporting Python, TypeScript, and Go. The interviewer continuously observes AST mutations and unit test executions, enabling adaptive follow-up questions tailored to the candidate's actual implementation.
“Code execution grounds conversational intelligence.”
Evidence-backed evaluation vs opaque scoring
Recruiters and hiring managers distrust black-box numeric scores. We replaced arbitrary rankings with an evidence ledger linking every assessment finding directly to timestamped audio clips and executed test runs.
System performance benchmarks
| Dimension | Metric |
|---|---|
| Conversational latency | < 300ms round-trip audio streaming |
| Sandbox execution | Isolated gVisor container (Python, TS, Go) |
| Engineering effort | 150+ engineer-days across 4 workstreams |
| Recruiter time saved | 150+ hours saved per month |
| Defensibility | 100% of rubric scores linked to conversation timestamps |
What we learned
The biggest improvements came from measuring latency instead of assuming it, grounding interviews in candidate and role context, integrating code execution into the conversation, and making final evaluations evidence-backed rather than opaque.
Engineering Principle in Production
How we built an AI-led technical interview system with live voice, adaptive questioning, sandboxed code execution, and explainable scoring across 150+ engineer-days.
