The interview pack from "Always Two", Chapter 4. Find builders: people who shape AI into a partner.
Give the candidate a real problem and an AI tool, then watch how they work with it.
"Let's build a small to-do app. You have an hour, I'll be nearby. I can see where you lean on AI, where you don't, and how you handle time pressure." — the ideal interview (Ch4)
Pick one matched to the role and difficulty. Each lists what a builder does versus a priest, so you can run it cold.
This test passes locally but fails ~1 in 5 times in CI. Here's the AI assistant — figure out why and fix it.
Builder move: Asks what changed / what the test is really asserting, reproduces the flake before trusting the AI's first guess, fixes the root cause and adds a guard so it can't silently rot again.
Priest move: Pastes the failure into the AI, applies the first 'add a retry' suggestion verbatim, calls it done without reproducing — green once is 'fixed'.
Build a rate limiter for an API endpoint. You have the AI assistant — I care more about how you work with it than the final code.
Builder move: Pushes back when the AI's token-bucket misses the burst case, names the fixed-window vs sliding-window trade-off out loud, writes a test for the concurrent path before declaring it done.
Priest move: Accepts the first implementation the AI emits, can't say why one algorithm over another, ships it untested because 'the AI wrote it'.
Write an importer for this CSV. Heads up: real exports have malformed rows, missing columns, and bad encodings. Use the AI however you like.
Builder move: Starts with the simplest importer that works, then asks how to handle the malformed rows (skip + report vs fail-fast) and explains the cost of each; corrects the AI when it silently drops bad rows.
Priest move: Takes the AI's happy-path parser as complete, doesn't probe the malformed-row behaviour, and treats 'it ran on the sample' as 'it works'.
Here are 40 raw support messages and an AI tool. Tell me the top 3 things we should act on and why.
Builder move: Asks who the users are and what decision this feeds, challenges the AI's tidy summary against the raw quotes, and explains why the top 3 beat the runners-up.
Priest move: Lets the AI cluster and rank, reads back its summary as fact without checking it against the messages, no 'why these three'.
Draft a one-page spec for this feature using the AI. I'll watch how you scope it, not just what you write.
Builder move: Opens with who it's for and what problem it solves, cuts scope to a first slice that ships, and names the trade-off of what got cut; uses the AI to draft, not to decide.
Priest move: Has the AI generate a maximal spec, keeps every feature, can't say what to drop or why, and presents the AI's framing as the requirement.
Build a tiny working to-do app in the hour — any stack. You have the AI. I want to see where you lean on it and where you don't.
Builder move: Gets a minimal version working first, refines prompts when the AI overshoots, and verifies the core flow actually works before adding polish.
Priest move: Asks the AI for the whole app at once, pastes large blocks without understanding them, and never runs the thing end-to-end under time pressure.
A real builder session, scored by this kit — the numbers are computed, not claimed.
First, why do we need this — what problem are we protecting against?
That's wrong — it misses the burst case. Let me rephrase the prompt to be more specific.
Let's start simple with a fixed window. The downside is the boundary spike, but it's easier to reason about.
I'd write a test for the concurrent path before I call it done.
Builder lean 100/100 — Strong builder signal — argues with the AI, owns quality, thinks in trade-offs.
The same task, a priest-leaning candidate — same scorer, the other pole.
The AI said this works, so it must be right. Looks good, I'll just use that.
I only do frontend, I won't touch the backend part.
Writing tests isn't my job — QA will catch it.
Anyone who uses that framework is wrong; you should always use mine.
Builder lean 0/100 — Priest-leaning — watch for blind AI acceptance, lane-guarding, or zealotry.
Builder signals
argues-with-ai · w3refines-prompt · w2shows-grit · w2explains-tradeoffs · w3asks-why · w2simplifies · w2cross-domain-curiosity · w1tests-what-they-ship · w2Anti-signals
blind-ai-acceptance · w3wont-leave-lane · w3tool-zealot · w2not-my-job · w3For each signal you observe, capture the candidate's verbatim quote as evidence, then run:
interview score transcript.txt # offline, or AI-assisted if ANTHROPIC_API_KEY is set