B Builderlog
Builderlog ·Shipping Mini-Apps ⑦ ·Jun 23, 2026 ·2 min read

Why I Couldn't Read My Own AI-Written Code Six Months Later

#AI coding#maintenance#tech debt#mini-apps#solo dev

About six months after I shipped my convenience-store BOGO deals app, a bug report came in. I opened the code to fix it and — I couldn’t read it. My own app.

It looked perfect at the time

When I shipped, the code was in a “works” state. The functions the AI wrote slotted together cleanly, and I stitched them up piece by piece. I knew what I was gluing together, but honestly I didn’t really know why it looked the way it did.

That’s exactly where the problem was. Code you paste without understanding has no context. The variables were named data2, tempResult, finalFinal, and there wasn’t a single line of comment. In that moment the AI gave me an answer optimized for my question, and I just confirmed it ran and moved on.

The AI doesn’t know the me of six months from now. That part was on me.

The day the bill came due

The bug was simple. Under a certain condition, the list rendered twice. But just tracking down which file it lived in and which function triggered it took two hours. Everything I’d piled up back when I figured “if it works, it works” got billed all at once inside those two hours.

The cost hadn’t disappeared. It had just been deferred. With interest, no less.

I borrowed time from fast coding. When I paid it back later, I paid more than the principal.

The deferred bill

01 Ship fast AI writes it, you paste
02 Looks done works = done
03 6 months pass no context, no comments
04 Bug report can't read your own code
05 Pay it back 2 hrs to find 1 bug — with interest
The maintenance cost doesn't vanish — it's borrowed from fast coding and repaid with interest.

I do it a little differently now

When I get code from the AI now, before I paste it I ask one thing first. “Explain what this function does in a single sentence.” If that explanation makes sense in my own words, I use it. If not, I ask again.

It’s a hassle. It definitely slows me down. But this turned out to be exactly where it gets decided whether I can read the code when I open it six months later.

I make the AI write the comments too. I tell it, “Comment on why you wrote it this way.” Not what it does — why I did it this way turned out to be the information I actually need later.

A good comment doesn’t explain the code. It explains the decision.

In the end, only what I understood stays

The faster the AI writes, the faster my understanding has to keep up. The wider that gap gets, the more interest piles up to pay back later. A faster tool didn’t earn me the right to skip understanding.

I learned this one a little late.

TL;DR

The maintenance cost of AI code doesn’t disappear — it gets pushed back.

In the next one, I’ll talk about how I cut scope on my own when a feature request comes in.