{"course":{"slug":"ai-careers","title":"Working in AI","url":"https://addaly.com/learn/ai-careers","level":"beginner","track":"work"},"lesson":{"slug":"the-live-technical","title":"The live exercise, where silence is scored","url":"https://addaly.com/learn/ai-careers/the-live-technical","position":53,"of":85,"minutes":8,"answer":"In a live exercise the interviewer is grading your narration, so saying where you are stuck scores better than being quietly stuck.","keyIdea":"In a live exercise the interviewer is grading your narration, so saying where you are stuck scores better than being quietly stuck."},"body":{"format":"markdown","text":"## The setup\n\nForty-five to sixty minutes, a shared editor or a SQL sandbox, one or two problems, one or two interviewers watching. Sometimes on your own machine with your screen shared, which is better because you keep your own tools.\n\n## The four moves, in order\n\n**Restate the question.** \"So you want, for each customer, the date of their second order, and customers with only one order should still appear, with a null.\" Thirty seconds, and it catches half of all misunderstandings before they cost you twenty minutes.\n\n**State your assumptions out loud.** \"I am assuming order_id is unique and that cancelled orders should be excluded, is that right?\" Interviewers will usually tell you. Assumptions you keep to yourself become wrong answers.\n\n**Name the approach before typing.** \"I will use a window function to number each customer's orders by date, then filter to row number two.\" Now the interviewer can correct your direction before you spend fifteen minutes implementing it.\n\n**Check the answer against a case you can compute in your head.** Take one customer with three orders and verify by eye. Candidates who do this are rare and it is noticed every time.\n\n## Why narration decides the outcome\n\nThe interviewer cannot see your thinking. They see keystrokes and hear words. A candidate thinking brilliantly in silence for four minutes and a candidate who is completely lost look identical from the other side of the screen.\n\nSo a candidate who says *\"before I write this I want to check whether joining to order_items can duplicate rows\"* scores above one who silently writes the same correct query, because the first has demonstrated the reasoning, and the reasoning is what transfers to the job.\n\n## What to say when you are stuck\n\nBe precise about the boundary of what you know. This is a strong answer:\n\n> \"I know I need the second highest value per group. I am deciding between a window function and a correlated subquery. I would use `row_number()` over a partition, but I do not remember the exact syntax for the frame clause. May I check the documentation?\"\n\nThat tells the interviewer you understand the problem, know two approaches, and have a normal professional relationship with reference material. Almost every interviewer says yes to the documentation question, and a refusal tells you something about the job.\n\nThe only wrong response is freezing. If your mind empties, say so (*\"I have lost the thread, give me twenty seconds\"*) and then restate the question aloud. Restating restarts thinking more reliably than staring.\n\n## The exercises that actually come up\n\n- Aggregate with a join, then a group-level filter.\n- A cleaning question: \"this date column has five different formats: what do you do?\"\n- \"Explain what this query does\": reading, not writing.\n- \"What would you check before trusting this number?\": the reconciliation answer from the spreadsheet lesson.\n- Debugging somebody else's broken query or script. This one is increasingly common, because it is closest to the job.\n\n## The pitfalls that cost points\n\n- `count(*)` after a `left join`, which counts one for the null row too. Use `count(column_from_the_right_table)`.\n- A `where` clause on a left-joined table, which quietly turns it into an inner join: the null rows fail the predicate and disappear. Move the condition into the `on` clause.\n- Summing a left-table column after a one-to-many join. The fan-out again.\n- Money in floating point. `0.1 + 0.2` is not `0.3`, and financial totals drift. Use a decimal or integer minor units.\n- Assuming `null` behaves like zero or like an empty string. It behaves like neither.\n\n## Practising for free\n\nYou do not need a subscription. **DuckDB** with a downloaded CSV gives you a sandbox in one command. **SQLZoo**, **pgexercises** and **Kaggle**'s SQL courses are free and cover more than most interviews test. For live conditions, the thing that helps most is doing it with somebody watching: swap sessions with a peer, since the difficulty is the observation and not the SQL.\n\n## The limitation\n\nLive coding measures composure under observation at least as much as it measures skill. Competent working engineers fail these regularly, and people who have rehearsed pass while being no better at the job. That is a known weakness of the format, not a judgement about you.\n\nThe implication is practical: the fix for failing live exercises is rehearsal with an audience, not more study. If you can solve the problem alone in ten minutes and not in the room, another course will not help you. Ten mock sessions will."},"check":{"question":"Halfway through a live SQL exercise you realise you cannot remember the syntax for a window function you know you need. What is the best thing to do?","options":[{"text":"Say which approach you want, why, and exactly what you cannot recall, then ask whether you may check the documentation.","correct":true},{"text":"Work around it with a correlated subquery you are confident in, without mentioning the window function.","correct":false,"tempting":"Produces a working answer while hiding the reasoning, and the interviewer scores what you showed rather than what you knew."},{"text":"Stay quiet and reason it out; interrupting the flow to talk will slow you down.","correct":false,"tempting":"The most common instinct and the most costly, because silent thinking and being lost are indistinguishable from the other side of the screen."},{"text":"Say you are stuck and ask the interviewer for the answer so you can continue with the rest of the problem.","correct":false,"tempting":"Concedes the whole item instead of the one missing detail, and gives away the reasoning that was worth the most points."}]},"prev":{"slug":"the-take-home","title":"The take-home, and how not to lose on it","url":"https://addaly.com/learn/ai-careers/the-take-home"},"next":{"slug":"the-design-conversation","title":"\"How would you build this?\" answered well","url":"https://addaly.com/learn/ai-careers/the-design-conversation"},"authorship":"Founder and series editor: Dr Mustafa Mun. Written by AI models to a written standard. Exam keys checked blind by a second model: 3,665 of 3,666 agreed. Academic review invited.","review":{"status":"Draft, open for academic review"},"cite":"Addaly (2026) 'The live exercise, where silence is scored', in Working in AI. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/ai-careers/the-live-technical (Accessed: 13 October 2026).","licence":{"name":"CC BY-NC-SA 4.0","url":"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"reader":{"schema":1,"title":"The live exercise, where silence is scored","courseTitle":"Working in AI","module":{"index":6,"slug":"the-interview","title":"The interview, from first screen to signed offer"},"answer":null,"keyIdea":"In a live exercise the interviewer is grading your narration, so saying where you are stuck scores better than being quietly stuck.","hero":{"kind":"plate","image":null,"alt":null,"caption":null},"blocks":[{"t":"h2","id":"the-setup","runs":[{"text":"The setup"}]},{"t":"p","runs":[{"text":"Forty-five to sixty minutes, a shared editor or a SQL sandbox, one or two problems, one or two interviewers watching. Sometimes on your own machine with your screen shared, which is better because you keep your own tools."}]},{"t":"h2","id":"the-four-moves-in-order","runs":[{"text":"The four moves, in order"}]},{"t":"p","runs":[{"text":"Restate the question.","b":true},{"text":" “So you want, for each customer, the date of their second order, and customers with only one order should still appear, with a null.” Thirty seconds, and it catches half of all misunderstandings before they cost you twenty minutes."}]},{"t":"p","runs":[{"text":"State your assumptions out loud.","b":true},{"text":" “I am assuming order_id is unique and that cancelled orders should be excluded, is that right?” Interviewers will usually tell you. Assumptions you keep to yourself become wrong answers."}]},{"t":"p","runs":[{"text":"Name the approach before typing.","b":true},{"text":" “I will use a window function to number each customer’s orders by date, then filter to row number two.” Now the interviewer can correct your direction before you spend fifteen minutes implementing it."}]},{"t":"p","runs":[{"text":"Check the answer against a case you can compute in your head.","b":true},{"text":" Take one customer with three orders and verify by eye. Candidates who do this are rare and it is noticed every time."}]},{"t":"h2","id":"why-narration-decides-the-outcome","runs":[{"text":"Why narration decides the outcome"}]},{"t":"p","runs":[{"text":"The interviewer cannot see your thinking. They see keystrokes and hear words. A candidate thinking brilliantly in silence for four minutes and a candidate who is completely lost look identical from the other side of the screen."}]},{"t":"p","runs":[{"text":"So a candidate who says "},{"text":"”before I write this I want to check whether joining to order_items can duplicate rows”","i":true},{"text":" scores above one who silently writes the same correct query, because the first has demonstrated the reasoning, and the reasoning is what transfers to the job."}]},{"t":"h2","id":"what-to-say-when-you-are-stuck","runs":[{"text":"What to say when you are stuck"}]},{"t":"p","runs":[{"text":"Be precise about the boundary of what you know. This is a strong answer:"}]},{"t":"quote","runs":[{"text":"“I know I need the second highest value per group. I am deciding between a window function and a correlated subquery. I would use "},{"text":"row_number()","code":true},{"text":" over a partition, but I do not remember the exact syntax for the frame clause. May I check the documentation?”"}]},{"t":"p","runs":[{"text":"That tells the interviewer you understand the problem, know two approaches, and have a normal professional relationship with reference material. Almost every interviewer says yes to the documentation question, and a refusal tells you something about the job."}]},{"t":"p","runs":[{"text":"The only wrong response is freezing. If your mind empties, say so ("},{"text":"”I have lost the thread, give me twenty seconds”","i":true},{"text":") and then restate the question aloud. Restating restarts thinking more reliably than staring."}]},{"t":"h2","id":"the-exercises-that-actually-come-up","runs":[{"text":"The exercises that actually come up"}]},{"t":"ul","items":[[{"text":"Aggregate with a join, then a group-level filter."}],[{"text":"A cleaning question: “this date column has five different formats: what do you do?”"}],[{"text":"“Explain what this query does”: reading, not writing."}],[{"text":"“What would you check before trusting this number?”: the reconciliation answer from the spreadsheet lesson."}],[{"text":"Debugging somebody else’s broken query or script. This one is increasingly common, because it is closest to the job."}]]},{"t":"h2","id":"the-pitfalls-that-cost-points","runs":[{"text":"The pitfalls that cost points"}]},{"t":"ul","items":[[{"text":"count(*)","code":true},{"text":" after a "},{"text":"left join","code":true},{"text":", which counts one for the null row too. Use "},{"text":"count(column_from_the_right_table)","code":true},{"text":"."}],[{"text":"A "},{"text":"where","code":true},{"text":" clause on a left-joined table, which quietly turns it into an inner join: the null rows fail the predicate and disappear. Move the condition into the "},{"text":"on","code":true},{"text":" clause."}],[{"text":"Summing a left-table column after a one-to-many join. The fan-out again."}],[{"text":"Money in floating point. "},{"text":"0.1 + 0.2","code":true},{"text":" is not "},{"text":"0.3","code":true},{"text":", and financial totals drift. Use a decimal or integer minor units."}],[{"text":"Assuming "},{"text":"null","code":true},{"text":" behaves like zero or like an empty string. It behaves like neither."}]]},{"t":"h2","id":"practising-for-free","runs":[{"text":"Practising for free"}]},{"t":"p","runs":[{"text":"You do not need a subscription. "},{"text":"DuckDB","b":true},{"text":" with a downloaded CSV gives you a sandbox in one command. "},{"text":"SQLZoo","b":true},{"text":", "},{"text":"pgexercises","b":true},{"text":" and "},{"text":"Kaggle","b":true},{"text":"’s SQL courses are free and cover more than most interviews test. For live conditions, the thing that helps most is doing it with somebody watching: swap sessions with a peer, since the difficulty is the observation and not the SQL."}]},{"t":"h2","id":"the-limitation","runs":[{"text":"The limitation"}],"role":"limit"},{"t":"p","runs":[{"text":"Live coding measures composure under observation at least as much as it measures skill. Competent working engineers fail these regularly, and people who have rehearsed pass while being no better at the job. That is a known weakness of the format, not a judgement about you."}]},{"t":"p","runs":[{"text":"The implication is practical: the fix for failing live exercises is rehearsal with an audience, not more study. If you can solve the problem alone in ten minutes and not in the room, another course will not help you. Ten mock sessions will."}]}],"check":{"question":[{"text":"Halfway through a live SQL exercise you realise you cannot remember the syntax for a window function you know you need. What is the best thing to do?"}],"options":[{"text":[{"text":"Say which approach you want, why, and exactly what you cannot recall, then ask whether you may check the documentation."}],"correct":true,"tempting":null},{"text":[{"text":"Work around it with a correlated subquery you are confident in, without mentioning the window function."}],"correct":false,"tempting":[{"text":"Produces a working answer while hiding the reasoning, and the interviewer scores what you showed rather than what you knew."}]},{"text":[{"text":"Stay quiet and reason it out; interrupting the flow to talk will slow you down."}],"correct":false,"tempting":[{"text":"The most common instinct and the most costly, because silent thinking and being lost are indistinguishable from the other side of the screen."}]},{"text":[{"text":"Say you are stuck and ask the interviewer for the answer so you can continue with the rest of the problem."}],"correct":false,"tempting":[{"text":"Concedes the whole item instead of the one missing detail, and gives away the reasoning that was worth the most points."}]}],"order":[1,3,0,2],"why":null},"prev":{"slug":"the-take-home","title":"The take-home, and how not to lose on it","minutes":9},"next":{"slug":"the-design-conversation","title":"“How would you build this?” answered well","minutes":9}}}