Skip to lesson
Exit
The Interview Loop1 / 2

2 min lesson

Stage 2 - the technical/craft screen (AI allowed)

Use "Stage 2 - the technical/craft screen (AI allowed)" to explain each part and the role it plays.

Step 1 of 2

Here is the Cursor-specific twist and it's the opposite of most loops: AI tools are explicitly allowed and expected. You'll work a practical problem on a real codebase slice and what gets graded is your judgment over the model's output, not whether you can recall an API from memory.

Why they hand you the AI

Cursor builds the coding agent, so they want to see how you actually work with one - which is how you'll work the job every day. Pasting raw model output without reading it is the fastest rejection in this stage. The signal they're buying is judgment: where you accept the agent, where you reject it and where you correct it before it ships.

What to expect
Problem flavor
Practical work on a real codebase slice - e.g. duplicate-file detection over a tree, hashing.
Not this
Abstract leetcode for its own sake; the problem usually resembles real engineering.
Tools
Cursor and other AI tools openly allowed and expected.
Graded on
Judgment over the agent's output, correctness and how you verify.
DX pairing
Often a walk-through of a piece of your writing or a demo you've shipped.
Duplicate-file detection - the agent can draft this; your job is to catch the subtle bug and verify itts
import { readFileSync } from "node:fs";
import { createHash } from "node:crypto";

// Group files by content hash so true duplicates collapse together,
// not just files that happen to share a byte size.
function findDuplicates(paths: string[]): string[][] {
  const byHash = new Map<string, string[]>();
  for (const p of paths) {
    const hash = createHash("sha256").update(readFileSync(p)).digest("hex");
    const group = byHash.get(hash) ?? [];
    group.push(p);
    byHash.set(hash, group);
  }
  return [...byHash.values()].filter((g) => g.length > 1);
}
Learn more

Full explanation

Full explanation

Interview move

When the agent hands you a plausible-but-wrong solution, catch it out loud: “This compares file sizes, which is fast but would call two different files duplicates if they're the same length - I'll switch to a content hash.” Catching the model's mistake in real time is a stronger signal than a clean solution you typed yourself, because it's the exact skill the role runs on.