For the longest time I've been against AI. It produces slop. Leaves behind a mess. It's difficult to control properly or you could let go of the wheel completely. People burn out because of it. The joy that we get from engineering solutions with code is gone.
I on the other hand, found joy again.
I worked at consultancies for the past five years. Saw organizations in different industries, with their different ways of working. It was definitely fun, but in the end I got tired. Tired of writing the same pieces of code, solving the same boring problems, sometimes with a different piece of tech, and only to make money for someone else.
There were little to no hard problems to solve. Just simple problems that had more steps to get to where we wanted. And those steps were always something I'd already walked on.
Write this service that stores this information and have this React/Vite/Angular/Svelte component fetch that data and store it there as well and watch out for effects and..
It. Was. Boring!
Then the "AI" (just an LLM behind it all, no matter how many loops people invent around it) came along.
F the hype

Photo by rosario janza on Unsplash
I hate hype and trends. I really do. People with no proof just shouting from rooftops how this is the end-all-be-all solution, so that we can be lazy again, or others who wanted to kick every developer out the door so they could pocket all the profits.
Of course I turned against it.
I didn't have opportunities to use it properly. Too busy making money for other people with the code I had to produce. Eventually we got access to Copilot or some managers asked to find ways to make money with it, but nobody actually gave you any guides on how to get started properly and I didn't have time or energy at this point to invest in figuring that stuff out.
Some other person who had no project to work on at the time had all the time in the world to fiddle with Claude and came back shouting from the rooftops how this brand new vibe coding/prompt engineering/harness engineering/vision driven development/spec driven development/newly invented way of working was the best thing ever to grace this field.
I just saw it as an absolute mess. Then I left the consultancy business and joined a product house.
People with reason
My job wasn't just to produce code anymore. It's something I still want to do, but in the current role as a principal engineer my job is more about influencing people and communicating across multiple projects and teams.
Now I had the time to actually learn how to use AI. I got access to a Copilot subscription, I could try out Claude, we had people who had done research into coding agents and provided you with guidance there. I jumped on a project to code with it and it turns out, I found joy again.
I don't write lines of code anymore at my full time job. I use the skills and knowledge I've accumulated over 20 years to steer an LLM into making the right decisions in this codebase and let it write those lines of code.
I'm not letting go of the steering wheel. I want to guide it with my experience, and verify it's work. The team still needs to discuss what we should work on next, and what types of small packages we should deliver to production.
We can use an LLM to help us slice the work in the way we want to, and then let it do it one bit at a time. To me just YOLOing everything is insanity. You're going about it the wrong way. Learn about how a context window works to understand you still need to apply those software development fundamentals, such as slicing work, for it to produce better quality code for you.
You still need to know how things are supposed to be done so you can keep quality high.
Don't believe people who have a vested interest
Photo by benjamin lehman on Unsplash
I guess what I'm trying to say is, software engineering as a profession isn't going anywhere. We need to figure out how we can still train people with experience to control the machine that produces code for us. Junior developers can't be forgotten.
There are things that do bother me in this era. The one main thing is the obsession with speed. Everyone thinks that now that we have access to this tech we can go 100x faster in every area, but we can't. We still need to plan, discuss, produce and verify things in order. Even though code production is faster, nothing else around it is any faster. If we forget he rest, then we can toss quality goodbye as well and let's see how long we can keep it running until something blows up massively.
Some people burn out with LLMs and I get that. If the joy for your work comes from solving those problems with lines of code, then taking that away leaves you with very little. We also need to take this into consideration with this era.
I was bored of just writing the same lines of code to solve the same problems, and this technology solved it. To me it's a force multiplier.
This is what I think people like DHH and really experienced engineers are also trying to say. They have such a wealth of experience that they can just act as a supervisor to this machine to let it do the grunt work, but somehow they end up saying "Coding by hand is dead!". Sure it is. FOR YOU! But not for the majority.
It's really short sighted to say that. What happens when you and the rest of us with that experience are gone? Nobody can steer this machine anymore and it's not as smart as some people claim it to be. I see top Claude models write unit tests for constants in the code. What type of engineer would unit test to see if a constant defined as value 8, actually be 8? An inexperienced one!
