My current thoughts on AI coding, the good and the ugly

My thoughts on using LLMs in coding boil down pretty simply to a couple points.

First, the way it’s been genuinely useful for me. These are the things I’ve actually done with LLMs in engineering work that left me feeling like it has made a difference. I’ve learned stuff and become a better engineer because of these facets of the tools:

  • Copilot autocomplete is great. Definite time saver. If I understand correctly, Cursor has this as well. Nice.
  • Claude Code with Haiku is great for understanding what a piece of code (not a whole system) is doing or how it works. It’s the staff engineer who can help out when you’re learning something new. (Haiku because you get a longer session before running out of Pro usage)
  • Claude Code with Opus (or often Sonnet) helps with auditing tasks and writing little helper scripts for data processing. Can also be helpful understanding the system, it just uses more tokens than Haiku to do the same thing.

Now the stuff that isn’t so great. This will likely read that I am anti-AI in software engineering, which I’m not, hence putting the things that have gone well first.

  • On the technical tools themselves, all the LLM tooling runs on rails during a session. It will get stuck on doing things a particular way and does not have the ability to think out of the box or discover alternate solutions. It never even asks if a different path is worth exploring. I think this is why so many tend to describe it as a junior engineer you have to coach. Not a perfect analogy because LLMs can write some really complex stuff I wouldn’t expect from a junior, but it does have that junior tendency to “stick to the ticket”.
  • In order to use these tools effectively you have to understand how to set them up properly. Have you tried to look up how to use AI tooling effectively recently? Once you have it installed, you are now faced with a wall of AI hype men telling you why the latest ClaudeCursorGeminiOpenCode feature is a GAME CHANGER. It’s incredibly difficult to find clear, measured, grounded, well-presented information and instructions. This makes learning how to use and keep up with truly revolutionary changes to how we’re working an overwhelming obstacle instead of an inspiring possibility.
  • To further build on that, it’s all moving too fast to keep up with. Unless you do make it your full time job, it’s incredibly difficult to figure out a workflow, prompting methodology and tooling setup that you can gain any mastery over in order to acquire that 10x vibe coding euphoria I keep hearing about. Engineers, at least all the ones I’ve known, love a shiny new thing but at some point have to pick a tool and get back to work. There is a reason you would have to pry Vim out of some engineers cold hands. We need stability to make adoption sustainable.

The final not so great thing isn’t a technology or learning problem. It’s a people problem. There is a message being propagated that if you’re not using AI tooling to vibe code ALL THE THINGS, then you’re NGMI (not gonna make it, for those of us not jacked in 24/7). That your career is doomed, loser, so you better pony up for those millions of tokens and get on board. This isn’t true. Has AI coding changed the tech industry? Yes, permanently and definitively. But it hasn’t reached its final form yet. I look at where we were this time last year and how much has changed even in the last month and I say there’s no way to really predict what will happen. Fear-mongering isn’t going to make these tools any more stable.

We just don’t have enough information yet to know what our industry will look like a year from now. That’s scary enough without bold claims that we’re all going to be replaced. Of course, in the case where AI really does replace software engineers, that means everyone who thinks running a youtube channel teaching engineers how to vibe code and how much of a game changer each iteration of Claude Code is will also be out of work. Glass houses and all.

What being a software engineer means is never set in stone, but right now it is still a vibrant, thriving industry and having a career as a software engineer is still a worthwhile thing to pursue. I am curious to see what this year of “practical adoption” looks like and if we can somehow sort through the hype machines to find a wiser, sustainable way of using these tools to genuinely build something that makes the world a better place.