I Started Using AI to Code Faster, Then I Lost Control of My Own Project

A

Adil Sher

Author

Oct 30, 2026
4 min read
3 views
I Started Using AI to Code Faster, Then I Lost Control of My Own Project

Last month, I spent two hours debugging a feature in a client's dashboard that I'd generated entirely through Claude. The irony hit me hard: I was staring at my own code, code I'd "written"-and I couldn't immediately explain why a filter wasn't working. I had to ask the AI to explain the AI's own code back to me. That's when I realized I wasn't being more productive. I was just deferring my problems into the future.

I'm not anti-AI. I use it every day. But there's a difference between using AI as a tool and using it as a crutch, and I've been dangerously close to crossing that line without noticing. The speed is intoxicating. You describe a feature, hit enter, and suddenly you have working code. But that speed comes with a hidden cost that the industry isn't talking about enough.

The Problem Isn't AI, It's the Gap Between Writing and Understanding

When I started my career in Islamabad working on backend systems, I learned through pain. I'd write database queries that worked but weren't optimized. I'd spend hours understanding why a recursive function was slow. That struggle taught me something. I learned how systems actually worked, not just how to make them work.

AI collapses that learning curve artificially. You can generate a fully functional API endpoint without ever understanding what a middleware does or why your route ordering matters. The code works. Your tests pass. Your client is happy. But you've accumulated what that original article calls "understanding debt"-and I think that term is genuinely useful.

Here's what understanding debt looks like in practice: I inherit a codebase full of AI-generated patterns. Something breaks in production. I ask the AI what's wrong. It fixes it. A month later, the same issue resurfaces differently. I'm stuck in a loop where I'm completely dependent on the AI to understand the system that the AI created. That's not progress. That's outsourcing your judgment.

My Take: AI Should Make You Smarter, Not Lazy

I'm keeping AI in my workflow, but I'm being intentional about how. Here's what I've changed:

I don't accept generated code without reading it. If Claude generates a 50-line component, I read every line. I don't run it immediately. I ask myself: Do I understand what this is doing? Could I explain this to a junior developer? If the answer is no, I don't use it, not because it's probably wrong, but because I've just created a liability.

I use AI for boilerplate, not logic. There's a massive difference. Generating a Redux reducer structure? Fine. I'll review it and understand the pattern. Generating the complex state management logic for a real-time collaboration feature? No. That's where I need to think. That's where I need to own the implementation.

I treat "can you explain this code?" as a red flag. If I'm asking the AI to explain code it just wrote, something went wrong in the process. It means I've lost the thread. I've become a passenger in my own codebase.

The original article makes a point I kept thinking about: there's useful struggle and wasteful struggle. You don't need to spend three hours hunting for a semicolon. But you do need to understand why your async operations might fail under network latency. AI can help with the first. You need to own the second.

What This Means for Production Code

In my experience, this matters most when requirements change. When a client calls and says "actually, we need to store this calculation differently," the developer who truly understands the system can adapt. The developer who just knows "the AI made this work" has to start from scratch or risk introducing subtle bugs.

I've started treating AI-generated code like code reviews from someone I don't know well. I'm skeptical. I validate. I understand before I merge. It slows me down compared to just accepting everything AI produces, but it's faster than debugging production failures caused by code I never understood.

What I'm Still Figuring Out

I don't have a perfect framework yet. Where's the line between healthy skepticism and paranoia? How much of a generated API's error handling do I need to understand versus trust? And honestly, as AI gets better, does this even matter?

I think it will always matter. Because software is built and maintained by humans, and humans need to understand what they're responsible for.

Are you using AI in your projects? What's been your honest experience, is it made you better at your actual job, or just faster at shipping things you don't fully own?

Source: This post was inspired by "AI Can Write Your Code, But Can You Still Understand It? The Developer's Guide to Avoiding AI Dependency" by Dev.to. Read the original article

Share this article

Written by Adil Sher

Full stack developer building high-traffic platforms, AI services, and custom web applications. Explore my portfolio, learn about my background, or get in touch.

Related Articles

Stop Pretending Your RAG System Knows What It Doesn't
Web Development Oct 31

Stop Pretending Your RAG System Knows What It Doesn't

Last month, a client asked me to build a "smart document search" for their internal knowledge base. I nodded, quoted them a timeline, and started architecting the usual suspects: vector embeddings, semantic search, a language model API call. Two weeks into development, during a d...

Stop Blaming Your Content When Search Console Numbers Don't Add Up
Web Development Oct 29

Stop Blaming Your Content When Search Console Numbers Don't Add Up

I spent three hours last week staring at a Search Console report for a client's Portuguese marketplace page. Fifty-three impressions reported, but when I drilled into the query data, the numbers only accounted for twelve. My first instinct? The page must be broken. The content mu...

The Token Tax: Why I'm Finally Counting What I Send to LLMs in Production
Web Development Oct 28

The Token Tax: Why I'm Finally Counting What I Send to LLMs in Production

Last month, a client's CRM integration started costing us three times what we quoted. I spent an afternoon digging through API bills only to realize we were sending entire sales call transcripts, complete with dead air, tangents, and repeated greetings, to an LLM endpoint *on every...