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.
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.
- 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.
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
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.