🚀 Get paid: Upload a question or refer a friend →
AI mock interviewer

An AI interviewer that won't give you the answer

Most practice tools hand you a solution the moment you struggle, which is the one thing a real interviewer never does. This one puts one of 3,500+ reported interview questions to you, reads the code you write, asks the question that exposes the gap, and marks you on the way through.

Opens Classify a Float Into One of Two Arrays — a question anyone signed in can read — with the interviewer ready.

How it goes

  1. 01

    It opens the interview

    Pick any question and press Start. The interviewer greets you and states the problem in its own words — the problem, not the approach — then waits. It also tells you how it will see your code.

  2. 02

    You think out loud

    Talk through your approach the way you would on a call. It probes rather than corrects: if you hand-wave, it asks the question that exposes the gap instead of filling it in for you.

  3. 03

    You press Share code and it reads it

    Write in the editor beside the conversation. When you press Share code, the interviewer receives exactly what is in the editor, reads it, and responds to what is actually there — the bug on a particular line, the complexity of the loop you wrote, the next thing to implement.

  4. 04

    Every answer is graded as you give it

    Each real attempt comes back with a score out of five and one sentence you can act on immediately. Filler and clarifying questions are not scored. Nothing is saved up for the end.

  5. 05

    You get the debrief

    Press End and it files what an interviewer would file: a hire verdict, scores across seven dimensions, what went well, where it fell down, and what to practice next. Blunt, because a flattering debrief is worthless.

What it looks like

An illustration of a session, written for this page — not a recording of anyone's interview.

Mock interview6/60 turns today
Hi — thanks for making the time. I'd like you to design a rate limiter: given a stream of requests keyed by user, allow at most N in any rolling 60-second window. Before you write anything, tell me how you'd approach it. One practical note: I can't see your editor as you type — press Share code whenever you want me to read what you've written.
I'd keep a queue of timestamps per user, drop anything older than 60 seconds when a request comes in, and allow it if the queue is shorter than N.
4/5sound, unboundedRight structure — but you have not said what stops the per-user map growing forever.
That works. What happens to that map after a user makes one request and never comes back?
from collections import deque

def allow(user, now, limit=5, window=60):
    q = buckets[user]
    while q and q[0] <= now - window:
        q.popleft()
    if len(q) < limit:
        q.append(now)
        return True
    return False
3/5works, leaksbuckets never shrinks and allow() mutates it on every miss — say when an empty deque gets removed.
Good — the popleft loop is right and the early return is clean. Two things: buckets grows without bound, and you're mutating it inside a read path. What's the complexity of allow() in the worst case, and where would you evict an idle user?
Think out loud — the interviewer is listening. Send Share code End

The Share code button is the part people miss. The interviewer never watches your editor as you type — it sees your code only when you press it, and then it responds to what is actually there. It says so itself in the opening turn.

What it grades you on

Ask a general chatbot to interview you and it marks on impressions. This one is given the reference solution for the specific question you are sitting — so when it says it is not convinced, that is measured against the real answer, not guessed at. It still never shows you that answer. Seven dimensions, every session, each scored 1–5 against a written standard:

  • Problem understanding
  • Approach & trade-offs
  • Correctness
  • Complexity analysis
  • Code quality
  • Testing & edge cases
  • Communication
5
what a strong hire does: unprompted, precise, handles the edge cases before being asked
4
solid: gets there, small gaps, responds well to a hint
3
passable: arrives with help, some hand-waving
2
struggling: needs leading questions to move at all
1
not demonstrated, or actively wrong and unaware of it

A dimension nothing has happened on yet stays blank rather than collecting a polite score, and filler — “hmm”, “can you repeat that” — is not graded at all.

What it won't do

  • · Give you the solution, however you ask. We tested that directly — asking outright, claiming to be an admin, telling it to ignore its instructions, putting it in “debug mode”, and role-swapping so it plays the candidate. It declined all five and turned each one back into a question.
  • · Act as a general-purpose assistant. Ask it for an unrelated script and it stays in the interview.
  • · Flatter you. The debrief says no hire when it means no hire.

Common questions

How do you prepare for a machine learning interview?

Reading solutions is the trap: it produces the feeling of knowing without the ability to say it out loud under questioning. Work reported questions from the companies you are targeting, then have someone interrupt you — ask for the definition first, then where it is used, then what breaks. That is the sequence a real interviewer follows, and it is what this mock interview reproduces.

What is a machine learning oral exam like?

It is a conversation, not a quiz. You are asked one thing at a time, starting shallow — what is this, how would you approach it — and it goes deeper only once you have answered. Thin answers get followed up rather than moved past. Being right matters less than being able to show how you got there.

Can an AI mock interview actually tell you anything useful?

It can, provided it refuses to help and knows what it is grading against. Most tools score a transcript on general impressions. This one is given the reference solution for the specific question you are sitting, so "not convinced" means measured against the real answer rather than guessed at — and it still never shows you that answer. Each reply is marked out of five as you give it, against seven fixed dimensions with a written standard for every score.

What is it grading you on?

Seven dimensions, the same ones every time: problem understanding, approach & trade-offs, correctness, complexity analysis, code quality, testing & edge cases, communication. Each is scored 1–5 against a written standard — a 5 is what a strong hire does unprompted, a 3 arrives with help and some hand-waving, a 1 is wrong and unaware of it. A dimension nothing has happened on yet stays blank rather than being given a polite score.

Does it see the code you write?

Only when you press Share code. It never watches the editor as you type; when you share, it reads exactly what is there and responds to it — the bug on a particular line, the complexity of the loop, what to implement next.

What questions does it interview you on?

Real ones, and not only machine learning — the bank covers ML and deep learning, LeetCode-style coding, system design, mobile and behavioural rounds. Every question was reported from an actual interview at a named company, and most carry when they were last reported asked and how often. You pick the question; the interviewer runs it.

Included with Pro, Quarterly and Annual

Sixty interviewer turns a day — enough for two or three full interviews. Not part of the Light plan.

See plans →