Skip to content
All posts

Your AI Coding Assistant Is a Pair Programmer, Not an Autopilot

The framing that gets people the most value out of Claude or GPT-based coding tools isn't 'autocomplete' or 'autonomous developer' — it's pair programming.

Nathan Levine

3 min read

Your AI Coding Assistant Is a Pair Programmer, Not an Autopilot

Most of the confusion about how much to trust an AI coding tool comes from picking the wrong mental model for it. "Autocomplete" undersells what current models can do — they can hold a plan across dozens of steps, not just finish your current line. "Autonomous developer" oversells it — hand one a vague goal and walk away, and you'll come back to something confidently wrong. The model that actually matches how these tools behave, and how they should be used, is pair programming.

Why the pairing frame fits

In a good pairing session, neither person just executes silently and neither person just directs silently — there's a back-and-forth where the driver proposes and the navigator catches what the driver missed, in both directions. That's a closer description of working with a capable coding model than either "typing assistant" or "hands-off agent."

  • It's fast at generation, you're responsible for direction. The model can produce a first pass of a function or a migration quickly; deciding whether that's the right function or the right migration is still your job.
  • It catches things you miss, and misses things you'd catch. A model reviewing your diff will flag an edge case you overlooked. It'll also confidently miss a business-logic requirement that was never written down anywhere it could read. Neither of you is the sole safety net.
  • The quality of the session depends on how you talk to it, the same way pairing quality depends on how clearly you communicate intent to a human partner. Vague asks get vague, generic output. Specific asks — with constraints, with the "why," with what's already been tried — get sharper output.

What this means in practice

  • Stay in the loop on decisions, not just review. Waiting until the end to review a large chunk of AI-generated work is the equivalent of not talking to your pair for an hour and then reviewing everything at once — technically still pairing, but you've given up most of the benefit.
  • Say why, not just what. "Add caching here" gets a generic cache. "Add caching here because this endpoint gets hit by a polling client every 2 seconds and the data only changes hourly" gets a cache that actually fits the problem.
  • Let it push back. Asking a model to flag risks in its own suggestion, or to argue the other side of a decision, uses it the way you'd use a second engineer — not just as a generator, but as a check.

Treating the tool as an autopilot leads to the failure mode everyone's heard a version of — a big, unreviewed change that broke something in a way nobody caught. Treating it as pure autocomplete leaves most of its actual capability on the table. Pair programming is the frame that gets the balance right, and it's not a coincidence that it's also the oldest, most tested collaboration model in software.

Thanks for reading. If this was useful, the newsletter below is the best way to catch the next one.

Keep reading

More essays