Inspiration
We built Interviewlenz out of a frustration we both know: you can spend hours preparing for an interview and still have no idea how you’ll sound when someone asks, “Why did you choose that approach?”
Coding problems are easy to practice on your own. The conversation is harder. You need someone who can listen, notice where your explanation gets fuzzy, and ask a follow-up you didn’t see coming. Finding that person every time you want to practice is tough. We wanted a student to be able to open a browser, turn on their mic, and get that practice whenever they have time, even if it’s just fifteen minutes the night before an interview.
What it does
Interviewlenz lets students practice coding interviews, behavioral interviews, or both in a full mock. In a coding round, you write and run Python while explaining your thinking out loud. The interviewer receives the code you ran and the results, so it can ask why your solution works or what happens when the input gets larger.
In a behavioral round, you can use your resume and a job listing to practice a story that matters for the role. If you say, “We fixed the database,” the interviewer can follow up with, “What did you personally investigate?” Afterward, you can open a piece of feedback, see the exact words or code behind it, and try again.
How we built it
There were two of us at Hack the Nest. Hamza built the interview room and practice flow in Next.js and TypeScript. Ismail built the Python runner, Gemini Live voice integration, and feedback system. We used Monaco for the editor and Pyodide to run Python directly in the browser. We gave each code version, test run, and transcript turn an identifier so the final report could point back to a specific moment in the interview.
Challenges we ran into
Getting the AI to speak was only the beginning. In one test, the interviewer correctly described a solution that passed all four cases. After we changed the code, it didn’t reliably acknowledge the newer result. We had to trace which version reached the live session and keep the last tested code separate from whatever the student was still typing. We also had to give people room to pause mid-sentence without the interviewer jumping in.
Accomplishments that we're proud of
One detail we’re especially proud of happens when a student edits their answer and clicks Finish before running it again. The report preserves that final draft and shows which earlier version earned the test score. It’s a small detail, but it means a student can trust what they’re looking at when they review an attempt.
What we learned
A useful interviewer has to listen closely enough to ask the next question. “Tell me more” and “How did you check that your fix worked?” can lead to very different practice sessions. We learned the most by taking turns in the student’s seat and hearing where a question helped us think, where it interrupted us, and where we needed another chance to explain.
What's next for Interviewlenz
We want students to try Interviewlenz before real interviews and tell us which follow-ups helped them feel more prepared. From there, we want to add more coding problems, more role-specific behavioral rounds, and a way to compare attempts over time so students can hear how their explanations improve.
Built With
- gemini
- github
- monaco-editor
- next.js
- pyodide
- react
- typescript
- vercel