A I & C h i l l

A dev journal featuring me and my ever-loyal AI minions.
Exploring the limits of agent driven development aka vibe coding

Stop Looking for the Needle: Why Debugging Still Matters in the Age of AI Coding

Published 08 Jun 25 by vasileioskk5 min read

"Most people are looking for the thing that's going wrong. They're looking to find the needle instead of removing half of the hay, I guess. If you just keep removing half of the hay, that's how you actually get there."
— Vish Abrams, Software Engineering Daily Episode 1835

In a world where AI tools like GitHub Copilot, ChatGPT, and Cursor are transforming how we write code, there's a new breed of software development taking shape: vibe coding. You're less of a line-by-line coder and more of a systems orchestrator, prompting and guiding an AI assistant that drafts the scaffolding, fills in the functions, and even writes your unit tests.

But despite the automation, one thing hasn’t changed: debugging is still a core engineering skill.

The Needle and the Haystack

Vish Abrams, Chief Architect at Heroku, dropped a gem in a recent Software Engineering Daily episode. He likened debugging to removing halves of a haystack, not hunting for a needle. It's a mindset shift: instead of obsessing over the one thing that’s broken, systematically eliminate what’s not the problem.

It’s classic divide-and-conquer thinking — and in the age of AI, it’s more important than ever.

AI Accelerates Creation, Not Comprehension

AI can write code faster than ever, but it doesn’t deeply understand what it's writing. It can hallucinate, generate flawed logic, or miss context-specific edge cases. As engineers, our job now includes:

  • Verifying AI output.

  • Interpreting test failures.

  • Tracing bugs through unfamiliar, often auto-generated code.

Debugging is how we keep the machine honest.

Debugging as a Thinking Tool

Debugging is not just about fixing bugs — it’s a structured way to think through problems. Good debugging habits also:

  • Reveal hidden assumptions in the code (or the AI’s logic).

  • Help you understand unfamiliar systems faster.

  • Force clarity when things don’t make sense.

These skills are foundational when vibe coding. You’re not writing everything yourself, but you are accountable for how it behaves.

Practice the Haystack Strategy

Here’s how to apply the "remove half the hay" approach:

  • Binary Isolation: Can you cut the system in half logically? Narrow it down.

  • Assumption Surfacing: What are you assuming is working that might not be?

  • Logging + Telemetry: Instrument your code for visibility. AI doesn’t do that well (yet).

  • Small Repro Steps: Shrink the problem space until it’s obvious.

Wrapping Up

AI won’t eliminate bugs. If anything, it will increase the volume of generated code, making bugs harder to trace. That’s why debugging isn’t going out of fashion. It’s becoming a differentiator.

You might be the developer who doesn't write every line — but you'll still be the one who fixes it when it breaks.

So next time you're knee-deep in some mysterious failure, channel Vish Abrams. Stop looking for the needle. Just keep removing hay.


Vasilis K