This is going to be a quick read. As someone who enjoys his job, I have a love-hate relationship with AI. I have a hard time letting Claude do things for me: I want to be proud of the fruit of my labour, and I don't feel I can be if Claude's the one who did most of the grunt work. Even at work, I've expressed multiple times to my manager that I feel conflicted about how much AI is being pushed on us, because I want to keep sharpening my own skills and not let them quietly rust.
Yes, I see the irony in what you're about to read. This post was written in a file Claude helped me finish.
The new site
For a long time this website was a single HTML page. It did the job, but it was never going to grow into what I wanted: a proper home for my projects, my resume and, well, posts like this one.
So I rebuilt it in Next.js. You can see the result on the projects page or browse the source on GitHub. The plan was drawn up with Opus, using my input and the initial setup I had put together. From there, the brunt of the work was done by Claude: the pages, the components, the blog setup and the SEO fixes. I reviewed, steered and corrected, but I won't pretend I typed most of it.
And here's the honest part: I wouldn't have been able to do all of this myself in the same day. Not even close.
We've been here before
When I think about it, this isn't the first time the ground has shifted under software engineers. There was a time when writing assembly was simply what programming was. Moving to higher-level languages must have felt like cheating to some people. You no longer knew exactly what the machine was doing, and you were trusting a compiler to do the part you used to be proud of getting right.
Today, almost nobody writes assembly for everyday work, and nobody considers a C, Java or Python developer less of an engineer for it. The abstraction moved up, and the craft moved with it. The job was never about the instructions. It was about solving the problem.
I can't say for sure that AI is the same kind of shift, but it rhymes.
Still conflicted
That doesn't make the discomfort go away. I still worry about:
- Understanding. If I don't write it, do I really know how it works? I try to read everything Claude produces, because the code ships under my name.
- Pride. It feels different to look at something and think "I built that" versus "I directed that".
- Skills. Muscles you don't use get weaker. I'd like to keep mine.
I don't think those worries are silly, and I don't think they should be dismissed. But I also don't think they're a good reason to refuse the best tools available to me, especially when the people and companies around me are already using them.
Where I've landed (for now)
Software engineering has always been an ever-changing discipline, and keeping up starts with yourself. Using every tool at our disposal is part of the job in today's day and age. The trick, I think, is to stay in the driver's seat: have opinions, review the output, understand what ships, and keep doing the hard thinking myself. Let the tools take on the grunt work, not the judgment.
I'm not fully at peace with it, and I'm not sure I ever will be. But this site exists, today, because I leaned on these tools, and I'm happy with where it ended up.
If you're in the same boat, struggling with how things are now, I hope you find your way through it. It's okay to be conflicted. Just don't let the conflict keep you standing still while everything else moves.