ctaio.dev Ask AI Subscribe free

← AI Interviews

The Pair Programming Interview: AI-Resistant Hiring's Gold Standard

What pair programming interviews actually test, why they survive the AI shock, and the operational details that separate good from bad implementations.

30-SECOND TAKEAWAY

  • What it tests: real-time judgement, ability to defend choices under pressure, recovery from interruption, and the meta-skill of working with another engineer in the moment.
  • Why it\'s AI-resistant: AI tools can generate code; they can\'t play your half of a live pairing session while a senior engineer is testing for specific failure modes.
  • How it fails: bias amplification when run by untrained interviewers, time-pressure errors with too-large problems, and the "I just want to watch them type" anti-pattern.

What good looks like

Minutes 0-5 — Context setting

Brief introductions, explain the format, and outline what you are looking for. "This is a collaborative session, not a quiz. We will both be coding. I want to see how you think, how you work with another engineer, and how you handle interruptions. You can ask clarifying questions, suggest a different approach, and disagree with me — that is all good signal." This calibrates the candidate and reduces the failure mode where a strong candidate freezes because they thought it was an audition.

Minutes 5-15 — Problem framing

Present the problem. Aim for something that resembles real work: a small refactor of unfamiliar code, a feature addition to a known-shape codebase, a debugging session on a failing test. Walk through the existing code together. The candidate should ask clarifying questions; if they do not, prompt them. A candidate who dives straight into code without asking questions is showing you something specific about how they work.

Minutes 15-75 — Collaborative work

Alternate driving. Start with the candidate driving for 20-30 minutes; you observe, ask occasional clarifying questions, but do not lead. Then switch — you drive for 10-15 minutes while the candidate navigates, looks for bugs, suggests refactors. Switch back. The pattern is "candidate drives mostly; interviewer drives at moments of trade-off discussion." The signal is how they collaborate in both modes, not just whether they can produce code.

Minutes 75-90 — Debrief and Q&A

Step out of the problem. "Walk me through what we did and what you would do differently if you had another hour." "What was hardest?" "What questions do you have for me about this work or the team?" The last fifteen minutes carry more signal than most interviewers expect — candidates show how they reflect, what they admit to, and how they evaluate the interviewer back.

The rubric

Score four dimensions on a 1-5 anchored scale: technical fluency (did they execute), collaboration quality (was working with them productive), trade-off articulation (did they discuss alternatives without being asked), and reflective depth (did the debrief land thoughtfully). Score within ten minutes of the session ending; the longer you wait, the more the score drifts toward your overall impression.

Common failure modes

Bias amplification

Live formats with high interviewer discretion can amplify bias rather than reduce it. The candidate who codes the way the interviewer codes feels "smart"; the candidate who codes differently feels "off." The cure is the structured rubric, two interviewers per gating session, and an explicit policy that gut feel is not sufficient evidence on its own.

Problem-scoping errors

Three failure modes. Too large: the candidate spends 60 minutes setting up scaffolding and you never see them work on anything interesting. Too algorithmic: the session becomes a LeetCode interview wearing different clothes. Too ambiguous: there is no clear "good" or "bad" path so you cannot score anything. The fix is to test the problem on three internal engineers before using it on candidates — if it does not produce useful signal on engineers you already know, it will not on ones you do not.

The silent-judge anti-pattern

Some interviewers default to silent observation, watching the candidate code without engaging. This destroys the format. The signal of a pair programming interview is the collaboration, not the code; if the interviewer is silent, the candidate is just doing a take-home test on camera. Train interviewers to engage actively: ask questions, propose alternatives, occasionally drive the keyboard.

Calibration drift

Three months into the rollout, interviewers will be scoring differently. Some will have got tougher; some will have got softer. The cure is a quarterly recalibration session where four to six interviewers watch a recording or roleplay the same candidate and reconcile their scores. The drift is invisible until you measure it.

The confirmation-bias trap

"We already knew this candidate was strong from their resume" — and now the live session confirms it because the interviewer was looking for confirmation. Same problem in reverse for weak signals. The cure is to score the live session blind to the resume, ideally with the rubric in front of you and the resume not on the table.

How to run one as the interviewer

Pre-interview prep

Re-read the problem the morning of the interview. Know it cold. Have one curveball question ready and the rubric printed. Block fifteen minutes after the session for your scoring; calibration drift starts within an hour.

Opening script

Use a consistent two-minute opener across every candidate so the calibration starts from the same place. "We are going to work together on a piece of code for the next ninety minutes. I want you to think out loud, ask questions when something is unclear, and tell me if you would do something differently than what I suggest. There is no one right answer here." Practiced openings remove a layer of candidate anxiety in the first five minutes.

Signals to watch for

How do they handle uncertainty? Do they articulate trade-offs without being prompted? Do they ask before assuming? Do they correct themselves cleanly when they realise a wrong turn? Do they push back when you propose something they think is worse? These are the high-signal behaviours. "Did they finish the problem" is much lower-signal than the conventional wisdom suggests.

When to interrupt

At natural breakpoints: when a function is finished, when they pause to think, when they propose a design choice. Avoid interrupting mid-thought; you will train them out of thinking aloud. Use interruptions to probe trade-offs: "Why did you pick X over Y?" "What would change if we needed this to handle 10x the input?"

When to step in vs. let them struggle

Productive struggle is the point. Step in when they are stuck on a knowledge gap that the role does not require (a specific library API, a syntax detail). Let them work when they are stuck on a thinking problem that the role does require. The distinction is the entire signal of the session.

Post-interview debrief discipline

Within fifteen minutes of the session ending, score the rubric and write three to five lines summarising what you saw. Within an hour, debrief with the second interviewer if there was one. The score and the summary together become the artefact that the hiring committee uses; everything else is noise.

Pair Programming Interview: FAQ

What is a pair programming interview?
A live, collaborative coding session — typically 60-90 minutes — in which the candidate and a senior engineer work together on a real-world problem. The interviewer is not silently judging; they're engaged as a working partner, asking clarifying questions, raising trade-offs, and observing how the candidate thinks under collaborative pressure. The signal is process and judgement, not just correctness.
Why is pair programming considered AI-resistant?
Because the things AI tools can't fake — real-time judgement, response to interruption, ability to defend choices when challenged, recovery from being pushed off course — are exactly what pair programming surfaces. A candidate can have AI write the code. They can't use AI to be a good pair partner while a senior engineer is in the room asking why they did what they did.
How long should a pair programming interview be?
60-90 minutes is the standard range. 45 minutes is too short to get past the warm-up; 2 hours is too long for sustained signal quality. Within 90 minutes you can establish context, work through a problem, hit a curveball, and have an honest conclusion conversation.
What's the right problem to pair on?
Problems that resemble actual work, not algorithmic puzzles. A small refactor of existing code. Adding a new feature to a familiar-looking codebase. Debugging a failing test. The signal you want is "can this person work the way we work" — not "have they memorised this LeetCode pattern." Aim for problems that have many reasonable approaches and where the trade-off discussion matters.
How do you avoid the failure mode where pair programming amplifies bias?
Live formats can amplify bias if not run carefully — interviewers gravitate toward candidates who think and talk like them. Mitigations: structured rubric scored immediately after the session, two interviewers from different backgrounds, scheduled "candidate drives" and "interviewer drives" segments. The pair format is more bias-prone than a take-home if run badly, less if run well. See AI hiring bias & law.
·
Thomas Prommer
Thomas Prommer Technology Executive — CTO/CIO/CTAIO

These salary reports are built on firsthand hiring experience across 20+ years of engineering leadership (adidas, $9B platform, 500+ engineers) and a proprietary network of 200+ executive recruiters and headhunters who share placement data with us directly. As a top-1% expert on institutional investor networks, I've conducted 200+ technical due diligence consultations for PE/VC firms including Blackstone, Bain Capital, and Berenberg — work that requires current, accurate compensation benchmarks across every seniority level. Our team cross-references recruiter data with BLS statistics, job board salary disclosures, and executive compensation surveys to produce ranges you can actually negotiate with.