Clean code, green tests, times out at 500 rows.
You cleared the ticket. You never built the map. You find out on call.
- The track
- Writes code
- The rep
- About thirty seconds
- Published
- September 2, 2026
The Exhibit
The ticket is closed, the PR is merged, and the map of the system you were supposed to build never got drawn. Peer-reviewed work named the pattern: "metacognitive laziness," leaning on AI to produce correct-looking output while skipping the deeper processing that learning requires. The study.
It hits hardest early. The thing that used to force you to learn a codebase was that you could not ship until you understood enough to write the code. When the model writes it, you can clear the ticket without ever building the map, and you will not notice the map is missing until something you shipped breaks and there is no model to reach for.
The study
Comprehension Debt
Comprehension debt: the gap between what gets shipped and what the team can still reason about.
The fix is cheap and it is on you: before you merge, close the AI's explanation and try to say why the code is shaped the way it is, out loud, as if onboarding the next person. If you cannot, you shipped recognition, not understanding.
The idea
The Rep
Thirty seconds:
An endpoint reads cleanly: for each item in a list, fetch its author by id. Fine on 10 items, times out on 500. Name the pattern and the fix.
The answer
The N+1 query problem. One query fetches the N items, then the loop fires one more query per item to get its author, so a 500-item response makes 501 round trips, each with its own latency, and the total time grows linearly with the list. The code looks clean because the cost is invisible in the source; it lives in the round trips, not the lines. Fixes: fetch all the authors in one query with a `WHERE author_id IN (...)` and join them in memory, or use a real join, or batch the per-item lookups into a single round trip (a batching layer that collects the ids, fetches once, and hands each caller its result). The tell is a loop body that touches the database or network once per iteration. Readable code with a query hiding in the loop is the most common thing that passes review and falls over at scale.
About thirty seconds
