What the author describes is also the feeling when you shift from being a developer all day to being a team lead or manager. When you become a lead you have to let go and get comfortable with the idea that the code is not going to be how you would do it. You can look at code produced by your team and attempt to replace it all with your craftsmanship but you're just setting yourself up to fail. The right approach is use your wisdom to make the team better, not the code. I think a lot of that applies to using AI when coding.
I'm turning 50 in April and am pretty excited about AI coding assistants. They make a lot of personal projects I've wanted to do but never had the time feasible.
A lot of us resist the pressure to move to management or technical leadership for just these reasons. Programming people isn't the same as programming computers.
But the LLMs outnumber us. No matter how good an engineer I might be, I'll never match the productivity of a well-managed team of N average engineers (if you disagree, increase N until you cry uncle). Sure, there will be mythical man-month problems. But the optimal N is surely greater than 1, and I'll never be more than 1.
Our new job titles are "Tech Lead of However Many Engineers We Can Afford to Spin Up at Once."
It's fun managing a bunch of inexperienced juniors when there are no consequences (aka the infamous personal projects). It's a lot more stressful when it matters.
It's also that when you move to being a leader, you suddenly have to learn to quantify and measure your productivity in a different way, which for a while can really do a number on your self-image.
What does it mean to be a productive developer in an AI tooling age? We don't quite know yet and it's also shifting all the time, so it becomes difficult to sort yourself into the range stably. For a lot of accomplished folks this is the first time they've felt that level of insecurity in a while, and it takes some getting used to.
> What the author describes is also the feeling when you shift from being a developer all day to being a team lead or manager.
I think that's very true. But... there's a reason I'm not a team lead or manager. I've done it in the past and I hate it. I enjoy doing the work, not tasking others with doing work.
Most of my career has been as an individual engineer, but the past few years I have been a project manager. I find this to be very much like using AI for coding.
Which also makes me refute the idea that AI coding is just another rung up on the programming abstraction ladder. Depending on how much you delegate to AI, I don't think it's really programming at all. It's project management. That's not a bad thing! But it's not really still programming.
Even just in the context of my human team, I feel less mentally engaged with the code. I don't know what everything does. (In principle, I could know, but I don't.) I see some code written in a way that differs from how I would have done it. But I'm not the one working day-in, day-out with the code. I'll ask questions, make suggestions, but I'm not going to force something unless I think it's really super important.
That said, I don't 100% like this. I enjoy programming. I enjoy computer science. I especially enjoy things more down the paths of algorithm design, Lisp, and the intersection of programming with mathematics. On my team, I do still do some programming. I could delegate it entirely, but I indulge myself and do a little bit.
I personally think that's a good path with AI too. I think we're at the point where, for many software application tasks, the programming could be entirely hands-off. Let AI do it all. But if I wish to, why not indulge in doing some myself also? Yeah, I know, I know, I'll get "left behind in the dust" and all of that. I'm not sure that I'm in that much of a hurry to churn out 50,000 lines of code a day; I'm cool with 45,100.