Opinion

Using AI Tools as a Developer: Honest Thoughts

December 2025 5 min read
AI Tools

I use AI tools in my workflow. I'm not going to pretend otherwise or frame it as some badge of shame. They help me move faster, and moving faster means I ship more and learn more. That's the honest starting position.

But I've crossed the line in both directions — used AI as proper leverage, and used it as a crutch that cost me more time than it saved. The difference is worth writing about.

Where It Actually Helps

Boilerplate. Any time I'm writing code that is structurally identical to something I've written a dozen times — setting up an Express route, writing a React component skeleton, configuring a TypeScript project — AI is faster than I am and the output is correct. There's no value in hand-typing what I already know perfectly well how to write.

Documentation. I describe what a function does and AI writes the JSDoc. I describe an algorithm and it writes the inline comments. This is not intellectual laziness — it's separating the thinking (which I do) from the typing (which AI does).

Exploring unfamiliar APIs. When I'm working with a library I haven't used before, AI gives me a working starting point faster than reading docs cold. I still read the docs — but starting from a working example and modifying it is faster than building from the API reference up.

The rule I use: if AI produces code I don't understand, I don't ship it. I ask it to explain, or I rewrite it myself. Code you can't explain is a liability you'll pay for later.

Where It Burned Me

While building the NLP engine for MindSync, I asked AI to write a regex pattern for extracting food quantities from natural language input. The pattern it gave me looked completely reasonable. It compiled. It passed my initial test cases. It failed silently on edge cases I hadn't thought to test — specifically any quantity phrasing that involved fractions ("half a cup", "a quarter of"). The failure wasn't obvious; it just dropped those quantities without any error.

I caught it during a real usage session, not during testing. The fix took twenty minutes. The debugging took two hours — tracing backwards through a system where I had accepted code I hadn't deeply read.

That's the crutch scenario. Not that the AI was wrong — it often is, and that's fine. The problem was I didn't read the code carefully enough to know what assumptions it was making.

The Actual Line

Leverage: AI accelerates execution of things you understand. You review its output, you own it, you could rewrite it if you had to.

Crutch: AI fills in gaps in your understanding. You ship code you can't explain and hope it keeps working.

One of those compounds into skill. The other compounds into fragility. The tool is the same in both cases.

All Posts View My Projects