My company is strongly pushing AI. There are lot of experiments, demos, and effort from decently smart people about integrating it into our workflows. There are some impressive victories that have been made with AI tooling producing some things fast. I am not in denial about this. And the SE department is tracking improved productivity (as measured by # of tickets being done, I guess?)
The problem is I hate AI. I hate every fucking thing about it. Its primary purpose, regardless of what utility is gained, is spam. I think it’s obvious how google search results are spam, how spam songs and videos are being produced, etc. But even bad results from AI that have to be discarded, IMO, are spam.
And that isn’t even getting into all massive amounts of theft to train the data, or the immense amounts of electricity it takes to do training and inference, as well as run, all this crap. Nor the psychosis being inflicted onto people who emplace their trust into these systems. Nor the fact that these tools are being used to empower authoritarian regimes to track vulnerable populations, both here (in the USA) and abroad. And all this AI shit serves to enrich the worst tech moguls and to displace people like artists and people like myself, a programmer.
I’m literally being told at my job that I should view myself basically as an AI babysitter, and that AI has been unambiguously proven in the industry, so the time for wondering about it, experimenting with it, or opposing it is over. The only fault and flaw is my (i.e. any given SE’s) unwillingness to adapt and onboard.
Looking for advice from people who have had to navigate similar crap. Because I feel like I’m at a point where I must adapt or eventually get fired.

Sure, but the current LLMs have inherent flaws in the concept of them being, well, supercharged autocorrect.
It’s impressive that we can basically brute force language concepts and distill knowledge into a model of knowledge. To really advance in AI you’d have to come up with a different class of algorithms than deep learning and LLMs. You’d probably need to combine this with adversarial networks, algorithmic (deterministic!) decisions and so on.
A teacher once told me “a computer is only as intelligent as the people programming it” and that sentence holds true even 30 years later.
LLMs are already “true” AI in a sense that they’re a subclass of models produced by a subclass of machine learning algorithms. I’d argue that there will be many different kinds of AI cobbled together into a more potent chatbot or agentic system.
And code definitely needs to be artistic to work well in some cases. You need to really understand the subject matter to write proper tests, for example. There will always be an issue of man-machine interfaces.
You’re dead right in them being able to produce better code than the average software dev. The skill floor to work as a dev will be raised.
These LLMs can take your job as a software dev. They can already translate instructions into code. But wait! They only work when the user knows what they want. I think your job is safe after all.
There’s a difference between programming and software development, after all.
All good points and well argued. Thank you.
Yes, absolutely, but only because we’re the customers.
The art is software design (imo) comes in understanding the problem and creating a clever, efficient and cost effective solution that is durable and secure. (This hardly ever happens in practice which is why we’re constantly rewriting stuff). This is good and useful and in this case Art is Good. The artist has ascended to seeing the whole problem from the beginning and a short path from A to B, not just starting to code and seeing where it goes, as so many of us do.
A human programmer writing “artistic code” is often someone showing off by doing something in an unusual or clever way. In that case, I think boring, non-artistic code is better since it’s easier to maintain. Once smarty-pants has gone elsewhere, someone else has to pick up their “art” and try to figure it out. In this case, Art is Bad. Boring is Good. LLMs are good at boring.
So the customer thing - by that I mean, we set the targets. We tell coders (AI or human) what we want, so it’s us that judge what’s good and if it meets our spec. The difficulty for the coders is not so much writing the code, but understanding the target, and that barrier is one that’s mostly our fault. We struggle to tell other humans what we want, let alone machines, which is why development meetings can go on for hours and a lot of time is wasted showing progress for approval. Once the computers are defining the targets, they’ll be fixing them before we’re even aware. This means a change from the LLM prompt -> answer methodology, and a number of guardrails being removed, but that’s going to happen sometime.
At the moment it’s all new and we’re watching changes carefully. But we’ll tire of doing that and get complacent, after all we’re only human. Our focus is limited and we’re sometimes lazy. We’ll relax those guardrails. We’ll get AIs to tell other AIs what to do to save ourselves even the work of prompting. We’ll let them work in our codebase without checking every line. It’ll go wrong, probably spectacularly. But we won’t stop using it.
Good points aswell. I agree with most, but one: AI writes good code because it’s boring.
There’s fancy code which is too artful to maintain and artful code which is easy and beautiful and good to maintain. Artful code doesn’t have to be fancy and hard to read. Artful code can be boring and stupidly simple.
LLMs tend to write stuff a skilled programmer can write in 10 lines in 50 lines instead. Think about it unwrapping loops into sequential statements [++var;++var;++var… instead of while(++var)] or case statements and nested ifs into if… if… if… chains.
Sure, such code works, but it’s hard to maintain and the alternative is more beautiful, less lines of code, easier to read and to understand. That’s what artful code is to me.
Most code in companies tends to be less than optimal. Most companies employ mostly workers who aren’t skillful. If you compare regular business code with super clean code of Open Source programming frameworks (e.g. Spring), you tend to hit your head against the wall.
LLM code is way harder to maintain than human code, even worse than lifeless, artless, “boring” business code. I doubt it’ll get better because it copies shit code from the average and less-than-average programmers doing a busy-ness.
I mean, you could easily throw lots and lots of already solved and documented problems against an LLM and they’ll be better than humans, because they’re essentially autocorrect with context from stackoverflow and interview question books.
Over time, LLMs will get better input data and produce better output, which will lead to better code and better code quality. You still need to know how to prompt and it still won’t solve any new problems you encounter, only problems others encountered and solved thousands of times.
In that regard, the shit programmers in companies usually churn out can and will be replaced with LLM generated output, which, on average, is better than the median business programmer. I’ll give you that. I guess it will make bad programmers less obvious and harmful, which might be good. Or bad, if your company only employs prompt monkeys and not a single sane developer.
I’d argue that most people in companies can’t even judge what’s good and meets the specs 🤓