Skip to lesson
Exit
The Interview Loop, Stage by Stage1 / 2

2 min lesson

Train both modes deliberately

Match each case in "Train both modes deliberately" to the signal and response that fit it.

Step 1 of 2

Train both modes deliberately

Restricted-tool practice

Rebuild editor primitives with only the tools the confirmed round permits: a gap buffer, a simple rope, a line index.

Apply a diff to a buffer without corrupting it on messy input.

AI-permitted practice

Generate a draft, then read every line aloud before trusting it.

Name what you'd test, run it and reject suggestions that miss an edge case.

  1. 1Clarify first. Ask two to four sharp questions about inputs, edge cases and what “done” means before you type.
  2. 2Narrate as you go. Say what you're trying and why so another person can follow the reasoning.
  3. 3When AI is allowed, interrogate it. Treat a completion as a draft from a fast junior engineer whose work you own.
  4. 4Prove it works. A quick test or a manual check on a deliberately ugly input beats “it should be fine.”
  5. 5Fix your own bug openly. State what was wrong, correct it and rerun the relevant check so the reasoning stays inspectable.
A by-hand practice example when the confirmed round restricts AI assistancets
// Apply a single replace edit to a text buffer by character offset.
// Edge cases I'm watching: start > end, offsets past EOF, empty replacement.
function applyEdit(text: string, start: number, end: number, replacement: string): string {
  if (start < 0 || end < start || end > text.length) {
    throw new RangeError(`bad edit range [${start}, ${end}] for len ${text.length}`);
  }
  return text.slice(0, start) + replacement + text.slice(end);
}
// Quick check before I trust it: applyEdit("hello", 1, 4, "i") === "hio"
Interview move

If a screen allows AI and the model hands you something that looks right, narrate the review: “this is close, but it doesn't guard against an end offset past the buffer length - let me fix that before I trust it.”