Teams

Hire for Reading When Nobody Remembers Why the Code Works

An engineer joining a codebase that a model wrote and nobody can explain needs one capability above the rest: reading unfamiliar code and reconstructing what it was meant to do, with no author left to ask. Hiring for more generation speed adds to the code nobody can account for. Test the capability by reading rather than writing. Hand a candidate one real module from that repository and ask what it does, what it assumes, what breaks when an assumption changes, and what they would delete.

The takeThe reflex after a discovery like this is to raise the AI bar on the next req, which hires more of exactly what produced the condition. Generation was never the scarce thing. What is scarce is the patience to sit with four hundred lines nobody claims and come back with an account of them that survives contact with production. Slow, unglamorous, impossible to demo in a screen, and the skill that gets a team out of this rather than further into it.

Where Olive fits

Open a role and see what the work shows

Olive's session tests a neighbouring act rather than code reading itself: a role-grounded assignment done with an assistant that will overreach, read afterwards by a person who writes or edits findings on where the candidate demanded a source, refused an answer, and checked a claim against something outside the conversation. Olive reads those from a recorded session rather than from a self-assessment, and the candidate is granted the same report.

Assess your shortlist

What does an unexplained module cost the first time it breaks?

The cost is reading work nobody hired for, and it arrives the first time someone has to change one of those modules. Code nobody can account for runs fine until a dependency moves, a rate limit tightens, or a customer reports a number that is wrong by a little. At that point the team is reading rather than writing.

The next engineer walks into that.

Finding the model-written half is not the task, and the detectors built for it do not do it reliably anyway.

An ICSE 2025 study ran five general AI-content detectors, plus one built specifically for code, against output from four models across three code benchmarks. Accuracy sat mostly below 0.6, which the authors call ineffective 3. The tested code was benchmark functions in Java, C++ and Python rather than repositories, so the study says nothing yet about whole codebases like yours.

What is recoverable is intent. Not which lines a model produced, but which decisions nobody can reconstruct: why the retry loop backs off the way it does, why two services write the same table, why a threshold is 0.87 and not 0.9.

Write that inventory as a list of modules with no owner and no account, ordered by how much money moves through them.

The list is shorter than it feels, and it is the job description you are about to write.

If the person who could have explained it has already left, the requisition is their backfill. Writing the backfill req before the only person who knows leaves is the version of this you get to run early. You did not get that one.

Why does hiring for more AI fluency deepen the problem?

Because generation is what filled the repository, and another fast generator adds to the pile nobody can read. A req that asks for strong AI fluency and fast shipping selects for the half of the work that is already cheap. Nothing in it selects for the person who can open a file with no author, no ticket and no comment, then come back with a defensible account of what it does.

METR randomized 246 real tasks across 16 experienced open-source developers between February and June 2025, on repositories they had maintained for about five years. Allowing AI tools made them 19% slower 2.

The same developers had forecast a 24% speedup beforehand, and afterwards still estimated they had gained 20% 2.

Sixteen people, one setting, and the finding does not transfer to juniors or to unfamiliar code.

Belief and measurement came apart there, and the gap is the part that travels. So treat a candidate's account of how much AI speeds them up as a belief rather than a measurement, and your team's too.

Ask what they read, not what they generated.

The shortage has a supply side. Reading unfamiliar code beside someone senior used to be the standard first year, and it was assembled out of exactly the small tasks now handed to a model. Where juniors get their reps when AI takes the grunt work is the same shortage seen from the other end.

What is the capability called, and who has measured it?

Program comprehension, and it carries a research literature of its own. In 2018 IEEE Transactions on Software Engineering published a field study by Xin Xia, then at Zhejiang University, and five colleagues, who instrumented 78 professional developers across seven real projects and 3,148 working hours. The developers spent about 58% of that time on comprehension rather than on editing 1.

The same study found senior developers spending a smaller share of their time on comprehension than junior ones 1.

O*NET lists the work that depends on it. Among the core tasks for software developers sits "Modify existing software to correct errors, adapt it to new hardware, or upgrade interfaces and improve performance," rated 69 for importance on the page as it stood in August 2026 4.

So the requirement is not invented for the occasion. The occupation's own task list carries the work that needs it, researchers have measured it, and the repository is short of it.

The exercise sits under the same US federal rules as the rest of the loop whether or not it is written down, which is an argument for keeping the record rather than against running the exercise. The Uniform Guidelines, adopted in 1978, define a selection procedure as any measure used as a basis for any employment decision, and say the definition reaches "informal or casual interviews and unscored application forms" 5.

A hallway conversation about the codebase that feeds the decision already sits inside that definition. The written exercise at least leaves a record of what was asked, and of who was asked it.

Test comprehension on a module from the repository itself

Use a real module from the unowned list, one whose logic a stranger to the domain can follow. Copy it into a clean repository with its tests and nothing else, then give the candidate ninety minutes and an AI assistant. Ask four questions in writing: what does this do, what does it assume, what breaks when one of those assumptions changes, and what would you delete.

The assumption questions are where to look hardest.

Someone who has done this work names a specific assumption and the specific thing outside the code that would falsify it: a currency, a time zone, an ordering the upstream service never promised. Someone who has not describes the code back to you at a higher level of abstraction.

Before anyone sits down, write the answer key. Two reviewers should be able to fill the same four columns separately and agree. "Understood the code" cannot be scored twice the same way; "named the retry loop's assumption that the operation is idempotent" is a yes or a no.

One study points the same way. In a 2026 paper on open-book exams, engineering students were allowed to use ChatGPT and required to submit their interaction transcripts alongside their solutions. The author reports some of the strongest evidence of reasoning appearing where students evaluated incorrect or incomplete model responses, and concludes that correctness of final answers alone "may no longer provide sufficient evidence of comprehension" 6.

The paper covers one course, with no control group and no comparison of grades. Read it as a direction, not as a method anyone has scored for reliability.

A review round is the near neighbour of this exercise and a different test. In a review round that tests what to check, the candidate reviews a diff you wrote with problems planted in it, against a key you already hold. The comprehension exercise hands the candidate a module you did not write and cannot fully explain, which is the condition the hire is walking into.

What has to be explainable before the next merge?

Whatever a person on the team can defend without the model that wrote it. Pair the hire with one standing rule, because a single hire does not stop the repository regenerating the condition: nothing merges unless a named human can say what the change does, what it assumes, and what would make it wrong. Put that in the pull request template rather than in a wiki nobody opens.

The rule needs a name on it or it decays into a checkbox. Naming the human who checks it, or nobody did is the general form, and here it is one line asking who read this and what they checked it against.

Generation genuinely produces more, and that is the argument against everything above. Pooled across three company-run randomized trials at Microsoft, Accenture and an anonymous Fortune 100 firm, covering 4,867 developers, use of an AI coding assistant raised completed tasks by 26.08% 7.

The standard error is 10.3%, so the honest range runs from roughly 6% to 46%, and the outcome counted was weekly completed pull requests. Volume, not defect rate and not review burden.

Less experienced developers adopted it more and gained more 7.

None of that changes the module. It still runs, it still moves money, and somebody will open it under time pressure inside the year.

What the requisition can change is whether that person can read it. Put the four questions in front of your finalists this round. The next module lands with a name on it.

See the benchmarks

Common questions

How do you find out which parts of the codebase a model wrote?

Mostly you cannot, and trying to sort model-written code from human-written code is a detour. An ICSE 2025 study measured five general AI-content detectors plus one built for code, across four models and three benchmarks, and accuracy sat mostly below 0.6. The useful inventory is a different one: the modules where nobody can reconstruct a decision, ordered by how much money moves through them. Authorship does not change what has to be read. A file a person wrote three years ago and cannot explain today is the same problem as a file a model wrote last spring.

What should the job posting ask for instead of AI fluency?

Ask for the reading. A line naming maintenance of unfamiliar code, reconstruction of intent from source and tests, and judgment about what is safe to change describes the work the hire will actually do. O*NET's core task list for software developers already carries "Modify existing software to correct errors, adapt it to new hardware, or upgrade interfaces and improve performance" at an importance of 69, so the requirement is not one you invented under pressure. Keep an AI line if the team uses the tools daily, and rank it below the reading.

Is a comprehension exercise fair when the candidate does not know the domain?

Fair, if you pick the module for a stranger to the domain. Choose one whose logic is mostly mechanical rather than one encoding three years of pricing rules, give three sentences of context about what the system does, and say plainly that questions are allowed. Then grade the questions as evidence, because asking what happens on a retry is itself the behavior you are hiring for. A candidate who cannot name an assumption after being told what the system does has told you something about reading, not about the domain.

How long should the exercise run, and do you pay for it?

Ninety minutes, and pay for anything longer. The four questions are answerable in that window by someone who can do the work, and stretching it measures stamina and availability instead of comprehension. Run it live where you can, because watching where a candidate goes first is worth more than the written answer. If it has to be asynchronous, ask for the answers in writing plus a short note on what they could not settle in the time, and keep the same module and the same four questions for every finalist.

Does this mean a junior hire is the wrong answer?

No. In one field study of professional developers, juniors spent a larger share of their time on comprehension than seniors did, so this is work they already do. Scale the exercise by what you expect them to name rather than by handing them an easier module: a senior should reach the assumption that breaks, a junior should reach the question that finds it. What the codebase cannot absorb is a hire at any level whose whole record is speed of generation, because the repository already holds more of that than anyone can account for.

What if nobody on the team can write the answer key?

Then you have found something more useful than a hiring bar. A module no current employee can explain well enough to grade an answer about is a module with no owner, and the requisition just changed from a backfill into a first reader. Write the key anyway, in the open, as the best account two engineers can assemble in an afternoon, and mark the parts that are guesses. A candidate who corrects one of the guesses has answered the question you were trying to ask.

References

  1. 1. Measuring Program Comprehension: A Large-Scale Field Study with Professionals ✓ IEEE Transactions on Software Engineering (Xia, Bao, Lo, Xing, Hassan and Li), 2018. soarsmu.github.io Supports the field study of 78 professional developers across seven real projects and 3,148 working hours, the finding that developers spend about 58% of their time on program comprehension activities, and the finding that senior developers spend a smaller percentage of their time on comprehension than junior developers. The paper's abstract states: "on average developers spend ∼58% of their time on program comprehension activities" and "we find senior developers spend significantly less percentages of time on program comprehension than junior developers."
  2. 2. Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity (arXiv:2507.09089) ✓ METR / arXiv, 2025. arxiv.org Supports the 16 experienced developers, 246 real tasks on mature repositories they had worked on for about five years, the measured 19% slowdown, the 24% forecast speedup and the 20% after-the-fact estimate. Cited for the gap between belief and measurement, not as a general productivity result and not as evidence about juniors or unfamiliar code.
  3. 3. An Empirical Study on Automatically Detecting AI-Generated Source Code: How Far Are We? ✓ arXiv (published at ICSE 2025), 2025. arxiv.org Supports the claim that AI-authorship detection on source code does not work: five general detectors plus the code-specific GPTSniffer, over code from four models across three benchmarks, with accuracy "mostly less than 0.6". Benchmark functions in Java, C++ and Python, not repositories.
  4. 4. Software Developers (15-1252.00), Tasks ✓ O*NET OnLine, U.S. Department of Labor Employment and Training Administration, 2026. onetonline.org Supports the quoted core task, printed on the page as "Modify existing software to correct errors, adapt it to new hardware, or upgrade interfaces and improve performance." and listed at an importance of 69 among the core tasks. Page fetched 2026-09-01; the site reports itself updated August 25, 2026.
  5. 5. 29 CFR Part 1607 - Uniform Guidelines on Employee Selection Procedures (1978), sections 1607.16(Q) and 1607.3(A) ✓ U.S. Government Publishing Office, Code of Federal Regulations (Title 29, Vol. 4, 2023 edition), 1978. govinfo.gov Supports the definition of a selection procedure as any measure, combination of measures, or procedure used as a basis for any employment decision, reaching "informal or casual interviews and unscored application forms", which is why a comprehension exercise and a conversation about the codebase sit in the same category.
  6. 6. Reimagining Assessment in the Age of Generative AI: Lessons from Open-Book Exams with ChatGPT ✓ arXiv:2605.12363 (Mahmoud, single author), 2026. arxiv.org Supports the open-book study in which engineering students used ChatGPT and submitted interaction transcripts with their solutions, the report that some of the strongest evidence of reasoning appeared where students evaluated incorrect or incomplete AI responses, and the conclusion that "correctness of final answers alone may no longer provide sufficient evidence of comprehension". Cited as a design direction from one qualitative course study with no control group.
  7. 7. The Effects of Generative AI on High-Skilled Work: Evidence from Three Field Experiments with Software Developers ✓ MIT Department of Economics (working paper; later Management Science), 2025. economics.mit.edu Supports the pooled 26.08% increase in completed tasks with a standard error of 10.3% across 4,867 developers at Microsoft, Accenture and an anonymous Fortune 100 firm, the concentration of adoption and gains among less experienced developers, and the weekly-completed-pull-request outcome measure.

7 sources, numbered by first appearance. Every one was opened and checked against the claim it carries. How Olive sources claims

General guidance for hiring teams. What works at one company and one volume may not transfer to yours.

Olive assesses how a person works with AI. It does not detect AI-written documents, and it never produces a score, a ranking, or a match percentage for a person. Candidates read the same report the employer reads.

Back to answers

Open your first role Ten attempts a month against a live item bank, with a human-reviewed report on every one.