I liked the squeeze

A lot of AI coding discussion seems to assume the code was the boring part.

I’m not sure it was.

I mean the part where you start with a vague idea, write a type, change the shape of it, delete half of it, chase an awkward edge case, rename something three times, and eventually realise what the problem actually is.

That isn’t just implementation. That’s where a lot of the design happens.

And I like that part.

I like the small loop of trying something, watching it fail, learning a little, trying again. I like the moment a messy bit of code suddenly gets smaller because the shape of the problem has finally clicked. I like leaving a file simpler than I found it.

That’s a lot of why I enjoy the work.

Lately something feels off when I review or work with AI-generated code. The diff might be fine. The tests might pass. The approach might even be better than what I’d have reached first.

But I feel slightly outside of it.

Like I got the result without the intermediate state that would normally make it mine.

And that intermediate state matters.

It’s where you build the mental model.

It’s where you notice the abstraction is wrong.

It’s where you learn which parts of the system are load-bearing.

It’s where you pick up the small, annoying, useful bits of context that make you better at changing it next time.

I’m not anti-AI. I use it every day.

But I’m becoming wary of using it to skip the exact parts of programming that made me good at programming.

There’s a lot of focus right now on the juice.

I’m trying not to forget that I liked the squeeze.

~/blog/i-liked-the-squeeze