riding the wave
I remember when coding interviews happened at a whiteboard, no computer, no internet, just a marker and whatever you could hold in your head. When AI tools arrived, using one in an interview was the red flag. Now the red flag is the candidate who doesn't use AI enough. In about two years, the same tool went from forbidden to expected.
And it only gets faster. Every few months another wave rolls in, a model out of some lab, a tool that does something it couldn't last year, and it resets what counts as normal. You ride it, or you let it break over you. Plenty of people imagine a third option, waiting on the beach with their arms crossed until the water goes calm, but the water never goes calm, and it was never going to wait for them.
all in
I've decided to ride it, in the most literal way I have. All of my code is written by AI now (is it mine at this point?), and somewhere along the way I stopped treating that as a threat to be managed and started treating it as leverage to be spent. I know the engineers who went the other way, who made a personality out of dismissing the tools, and the tools got better anyway while they just fell further behind.
Going all in wasn't one decision; it's one I make again every few weeks. A better model ships, and I rebuild a working agent on top of it instead of staying on the old version, because the result comes out better and cheaper. Relying on older models would have been easier, and most people do. Riding means doing that over and over, long after the novelty wears off.
I get why people stop trying to keep up. The volume is genuinely insane, more launches in a week than you could try in a month, and it isn't only engineers feeling it now, it's anyone whose work runs on a keyboard. People are overwhelmed and often giving up. But you don't have to keep up with everything; you just can't ignore it all.
keep the thinking
It means handing a lot of work to AI, and I hand over more every month. It writes code, drafts the first version of almost everything, reads what I don't have time to read. That part I'm glad to give away.
The part I won't give away is the thinking. The moment you let the model do your reasoning, make your calls, decide for you what's good, you stop being the one person in the loop who can tell whether it's right. You end up accepting whatever it decides.
Take the writing. You can write with AI for AI: text that fills the page, looks finished, yet no actual human would want to read it. Or you can use it to write something a person understands, which only works if you understood it yourself first. So optimize for human understanding, both yours and the reader.
the catch
Keeping the thinking is the easy part for me, because I already did the work that builds it. I know good from merely plausible because I spent years getting it wrong and seeing why. When the model hands me something confident and wrong, I can challenge it. That knowledge was expensive, and it's the only reason any of this works for me.
But the work that built that knowledge, the slow and repetitive part, doing it badly until you can tell the difference, is exactly the work the tool now does for people starting out. They get the output without the years of effort. They ship things that look right and feel nothing when they aren't, and it has nothing to do with how smart they are. The same wave that compounds for me, because I bring judgment to it, may quietly keep them from ever building their own.
The wave is working for me now. I know it will eventually steal my job, not just the parts I hand it. I ride it anyway, while it still needs me, because betting against it is the worse bet.
The code stopped being mine a while ago, but the thinking hasn't. I keep doing that part myself even when the tools would let me skip it, the way Mario Zechner argued in slowing the fuck down. I'll keep riding because I learned how to slow down.