The strange, conflicting feelings of building software with AI
I wanted to write this post to talk about some of the weird and often conflicting feelings I have when I use AI to write software.
There's this feeling of knowing that AI will write better code than I have and probably ever could.
I use Claude Code at work and on my personal projects and it genuinely impresses me nearly every time. It's architectural decisions and choice of patterns are usually better I could or would do. I still review everything it produces and, occasionally, make changes or ask it to improve something, but that's no different than reviewing another engineer's output and making comments. For the most part, though, I'm usually learning from it.
On the other hand, I feel like there's still a stigma around using fully generated code and a vague, "I'm responsible for this but I also feel like I cheated." Like, I think I can take credit?
At the same time, I'm certainly not going to stop. Not only is this exciting, it's genuinely a game-changer for how I work.
Don't get me wrong. I love code.
I work in code, I hobby in code, and I think in code. I love the process of writing code and building software.
Even so, I'm 100% onboard with AI.
I still take time to manually write code, but it's more surgical now and less tedious. I now use AI for nearly everything, from start to finish, and I still sometimes feel the urge to hide or obscure that fact; it feels icky. But I'm also building more, faster, and at higher quality; regularly and without burnout.
At work and at home, I've started using additional tools and workflows, such as using Superset with git worktrees to maintain multiple streams of work on multiple different projects, all at once. Some of my personal apps are written from the start with AI but there are many others that are in transition. During a recent transition, my first task was asking Claude to do a full review and audit and to develop a step-by-step plan to address every issue and suggestion. It found all of my bad patterns and tons of bugs - ones that I knew about and ones that I didn't - and I was able to implement everything in a couple evenings. My app is now objectively better because of adopting AI; that means a better user experience and a more stable app in just a couple hours and at a level beyond my capability.
I'm a huge AI enthusiast, to the chagrin of my wife and friends, and I don't like all the talk I hear about AI being terrible because it produces awful results that no one understands. In my experience, if you know what you're doing and what your goals are and you go in with a plan (even an AI-generated plan), you can have terrific results.
At the same time, I'm tired of the AI hype and marketing (so much marketing) and firmly believe that not everything needs AI and they should stop forcing it on us at every opportunity.
Like I said: conflicting feelings.
(P.S. I tried using Gemini to generate the cover photo for this post and this was the best I could get)