What LLMs Have to Do With Marx

, by Taner Aydın

I think it is pretty obvious that the willingness to adopt LLM-based tooling is the biggest in the software development community in general. It is absurd how fast we’ve gone from “Oohh, this smart auto-complete is nice and saves a lot of typing work” to companies starting to expect their software developers to not code anymore but instead do “concepting” and “architecting” only.

I worked as a freelance contractor for the last 9 years. So this expectation in workflow shift did not hit me the same way as it did for many working a 9-5 job as an employee.

Still, at the beginning of this year, I started trying out LLM-based tooling for refactoring assistance on a bunch of private projects that had been sitting dusty in a corner, waiting to be revived and modernized for a long time now. It’s been pretty successful for a while, until I saw the cracks starting to form.

There were two things I started noticing 2 months in.

Who Wrote This?

I roughly knew what was going on, as I had back-and-forth architecture conversations with LLMs about how to refactor and modernize my projects. I admit, I was really impressed by the capabilities of the models here. Even with my perfectionist tendencies, scrutinizing over its suggestions, the output was often great. And it felt really productive for me having an assistant analyze a codebase with me together. Especially as a freelancer, you are often completely on your own, without the opportunity to ask a co-worker to pair on something for a bit or ask the silly questions.

But then I was trying to find a bug in one of those codebases where I let an LLM do a bigger refactoring. Then a sad realization hit: I had no clue where a certain thing was done in the codebase and also didn’t quite know how to search for it quickly. So my instinct then was, well… let’s just let the LLM find it for me because that would be quicker, right?

Right?

I’ve become dependent on a tool while at the same time being alienated from my own project, work, and labor. In just 2 months. Alienating workers from their labor… Where did I know that from?

No Bugging About Bugs

As I wrote before, as a freelancer, your work mode often feels pretty isolated. You often don’t get to bug your colleagues, team, or boss about things you get stuck with. In the beginning, it felt very promising to have this assistant at my side. But then I realized that my conversations with other humans about software development I previously had online automatically became fewer and fewer. If I had something to talk about, I could just ask an LLM and not have to bother someone.

I recognized similar patterns around me with friends and family, a lot of whom are also working in tech. Instead of sharing knowledge and having a common understanding about the topics, it seemed that now everyone is more isolated than ever before. “I’ll just ask AI; that’s quicker and gets the job done.”

So workers are becoming alienated not only from their own labor but also from each other.

Marx and AI

If you are not familiar with socialist thought and theory, let me spell this out: It is, was, and always will be in the interest of capitalists to keep workers alienated from each other and from their own labor. This is how you keep everyone docile, unorganized, and exploitable. This is Marx’s theory of alienation in practice. It has always been happening everywhere. And in software development we have been in the middle of it for a long time. Just now it is getting turbo-accelerated with the help of a tool that itself is based in large part on theft and exploitation, specifically of people in the global south (Artificial Intelligence Colonialism: Environmental Damage, Labor Exploitation, and Human Rights Crises in the Global South).

I am not anti-LLM-tooling in software dev per se, but I have lots of problems with where it came from and where this is all going. It’s going to get worse for accessible software too. Already managers seem to be declaring that AI will solve accessibility and that subject matter experts and testing with actually disabled people are not needed anymore. I’ve seen companies fire their one and only designer because the CEO thought that their user interfaces could be vibe-designed.

At the same time people feel a lot of shame about using LLM-based tools (for obvious reasons). But to have human conversations again, also means to be able to talk about LLMs openly and critically.

What I take from this short period of diving deep into using LLMs myself is that I am going to focus more again on a human-centered approach to software development. Meeting people, talking about things, finding a shared understanding of the craft of our work.