I think working in the software industry really, really sucks. I find this quite odd because I also really like writing software and working with computers.
Recently, I came across a very satisfying reddit thread:
Having just quit a miserable job, this question resonated deep within my bones. One of the things I hated most was that navigating bureaucracy and corporate politics was far more important than technical work. It felt like playing a chess match, but having to rely on someone else to move the pieces. And unfortunately, this person would rather place them anywhere other than where you intend for them to move. Then, halfway through the game, upper management throws the entire board on the ground, and you get to start all over again. 😐
What happened to the agency of software engineers to solve technical problems and avoid getting caught up in bureaucracy? And why does it feel like networking and navigating office politics is more important than actually writing software?
I think the answers to both questions are related to the rise in big tech and a concerted effort to devalue software engineering professionals by management.
The enshittification of the tech industry
The software industry is really hitting the fan right now. If you’ve been paying any modicum of attention to tech, you might have noticed that things suck right now, but, like, way worse than even a few years ago. Here are some articles talking about this phenomenon:
- Big tech engineering culture has gotten significantly worse
- Tech CEOs: Who’s the Meanest of Them All
Lemme tell you things are not okay. This is the culmination of a decades long trend to see how poorly we can treat workers and most companies are colluding, intentionally or not, to make the whole field a living hell for rank-and-file employees. I wouldn’t personally ascribe so much credit to Elon Musk for the latest push of “performative cruelty”, as stated in the second article I linked, but this is definitely happening. And only recently has it become extremely pronounced.

Cory Doctorow invented the term enshittification to describe how businesses attract a large customer base by providing a valuable product and then gradually worsen it with advertisements and monetization until they drive their users away and the service collapses in on itself. In the context of this blog post, I am using this term to describe the phenomenon of tech employers who are (not-so) quietly turning the screws on their skilled laborers to maximize profits above all else.
A slowly boiled frog
I had a realization one day that, as recently as 5 years ago, everything used to be much better. Work was chill. The office felt laid back, with no dress code, and the perks were nice. There was plenty of interesting and novel work to do. Going to work felt like learning and playing with new technology.
Fast forward to 2024. There is now a constant undertone of anxiety associated with the job. Everything has been optimized to death. Perks are gone because “inflation has made everything too expensive” and even morale boosting things like team building activities have been cut. Waves of layoffs from tech companies big and small have become the new norm. Your coworkers have become competitors for avoiding layoffs instead of friendly collaborators. Interviewing has become even more ridiculous. The situation seems bleak.
How the fuck did we get here?

Doctorow’s recent article, The enshittification of tech jobs, is an interesting bird’s eye view of what is happening. He argues essentially that this is the age-old class struggle between management and labor. Previously employers used “vocational awe” to market software development as a prestigious job to attract laborers, but now the gloves are off, and companies are trying their hardest to beat workers into the ground for the sake of profits now that times are tough.
What does this mean for the individual worker (i.e. you and me)?
If we zoom back in to ground level, we can see how the broader macro scale trends have affected the subjective workplace experience. I don’t think it’s a coincidence to see that the things I hate most about working in the tech industry line up pretty closely to what is described by Doctorow in the enshittification of tech jobs.
Lack of agency and job stability
Most engineers have very little agency over the type of work they get to do and the trajectory of their career. Employers rarely care about who exactly writes the code, just that it works well enough to make money. The faceless nature of the job makes it very difficult to get any leverage in one’s software career. For engineering, there is a disconnect between one’s work output and their personal brand. This is in contrast to more visible professions, like artist, musician, and actor. For example, an illustrator may have a unique personal style apparent in every picture they draw. When people commission art from them, the customer is paying for unique work that only that specific artist can produce.
Because of this dynamic, the company can easily push their employees around. The software engineer is the 21st century factory worker. (Shout out to my friend for coming up with this analogy). Software developers are interchangeable to management, who are currently trying very hard to outsource as many jobs as they can.
Big tech companies have teams of lawyers and HR ghouls backed by billions of dollars to make sure each and every employee is beat back into line. No concession is too petty to spare disciplinary action. Need to take time off? Are you going to have children? Good luck not getting dinged through some technicality while on parental leave or preventing a jilted manager wielding a negative performance review against you (ultimately ending in a termination of some sort). If you aren’t okay with it then you can leave and have your spot taken by a horde of others more desperate than you. It feels like modern indentured servitude.
Increasing emphasis on soft skills and office politics
Things have overwhelmingly become less about writing code and building software tools, and more about self promotion, networking, and managing upwards. To live the Silicon Valley lifestyle is to try and conform to the tech bro stereotype by chasing buzzwords so you can fool hiring managers into thinking that you know what you’re doing. Gone are the nostalgic days of the computer club, where tech was a quirky hobby that passionate people could have fun playing with circuit boards. Tech money attracted a lot of outsiders and people coming into the field, morphing it into a business primarily concerned with financials and “efficiency”.
The meaninglessness of work
In big tech, each employee is but a small cog in a large machine. For every one person spearheading a cool, exciting project are thousands stuck doing maintenance or doomed busy-work projects. I, personally, cannot summon the motivation to work on throw-away, uninteresting work for the sake of appearing busy. Especially given that the completion of said work benefits nobody.
Add on top of this already soul sucking monotony, the pressure of management squeezing time and budget constraints while simultaneously fending off hostile coworkers and you have a recipe for burn out. Working on something that is boring and sucks was supposed to be a compromise. So if the benefits, like compensation, working hours, perks, engineering culture, also suck, then what the hell am I even doing here?
We collectively need to get our shit together

Ok, so I’ve said plenty about why working in tech sucks, but what can be done about it? Well, I’m not sure… The most popular solution would be to form…*gasp* the dreaded U-word (–> union <–). I think it’s more complicated than that, but whatever the solution(s) may be, it is easier said then done. This feels like one of those societal problems, like climate change, homelessness, or world hunger. The difficulty isn’t in figuring out what to do, but how to get humans to cooperate with each other en masse.
In my short career, I’ve already seen some shit and met eccentric personalities that make me question my sanity. I have enough work experience to be cynical over whether or not two engineers can even agree on any single thing. If you want to know more about what I’m talking about, just log into Blind and read a couple threads. It’s mostly people goofing around, but that stuff leaks into the real world. It’s less satire than you would think.
I’ve compiled a somewhat facetious, tongue-in-cheek taxonomy of coworkers that should illustrate some of the major obstacles to establishing a software engineering collective.
The arrogant douche bag
The “brilliant” asshole. The “rock star”. This is the most visible engineering stereotype. I have to say, with utter sadness and dismay, that the stereotype is alive and well.
This engineer has terrible social skills and is emotionally stuck in middle school. They don’t work well with others, sometimes bullying their teammates and generally making life at work miserable. This Dunning-Kruger headcase believes that they are not, in fact, in any danger of being exploited by the C suite because their superior skills and virtuous work ethic mean that they are highly valuable and would never be discarded like trash the minute it becomes cost effective.

This type of engineer, or should I say mentality, is more widespread than you would think. Not all people are Silicon Valley cast members incarnate. Lots of people harbor just a tiny bit of this tendency. If you spend enough time at the water cooler, you might overhear an offhand comment that betrays the speaker’s belief that work is a competition to see who is smartest or most productive, and not a team sport with a goal of finishing projects and earning your paycheck.
Good luck getting any of these employees to cooperate with the rest of the labor force. Their unmet need for validation from their parents leads them to act against their own interests, thinking that they only need to run faster than the person next to them, instead of banding together to deal with the bear, metaphorically speaking.
People who don’t give a shit (the apathetic masses)
This is most people, and I think it is actually a pretty reasonable stance. At the end of the day, it’s just a job. Clock in, get your work done, and clock out. There’s people who are too busy taking care of their families or dealing with life to focus on their career.

Unfortunately, when it comes time to push back against some unreasonable demand from management, the apathetic majority can easily be used to peer pressure people into compliance. An individual who’s taken it upon themselves to advocate not turning the workplace into a sweatshop now faces the challenge of avoiding the “difficult” label and being accused of rocking the boat by management.
The NPC worker drone (A.k.a. the Scab)
This one is strange. Occasionally you will encounter a coworker that has absolutely no life. I had an old roommate who would work late into the night on weekends at work. He neither liked nor disliked his job. He was also extremely wealthy from employee stock going IPO, so he didn’t have to waste a single minute working. So I asked him, why would he lose sleep over his job, especially on a Saturday night, working at 3 AM? His response: “eh, I dunno. I don’t have anything else to do”. If you told me that after work he sits on his bed and stares at the wall until it is time to log back into work, I’d believe you.
Me being a judgey asshole aside, this pattern of behavior is still quite harmful. It leads management to expect this standard of output and availability from everyone on the team. This is once again an instance of someone devaluing the labor of software engineers, unintentionally on the employees’ parts. I’d be pretty resentful of being forced into the no-lifer 24/7 work lifestyle just because someone on my team is bored. Let’s not make this a race to the bottom.
And this doesn’t mean that you need to stop if you truly love working and coding. Clock out of work and go home and code some more! But at the very least work on side projects that you retain ownership of. Coding can be your work and hobby.
The H1B slave
I mentioned indentured servitude before, but this is actual modern indentured servitude. The H1B program was designed to help encourage skilled workers to move to the US and have a nice job lined up when they get here. But, like many well meaning government programs, it’s turned into a system that large companies can use to exploit people.
If an employee on an H1B visa loses their job, they have 60 days to find new, full time employment by a participating employer, or they must leave the country. You can imagine how many ways a company can take advantage of this to force people scared of having to uproot their lives into working harder and longer hours for less pay than a “free” citizen.
Let’s be clear, I am not angry at anyone who claims to be an H1B or any people, whatever nationality it is. What I am disgusted by is the way this system is exploited to hurt visa workers and citizens alike, while benefiting big companies instead.
The lizard people. (A.k.a. “management material”)
Fuck this type of person. Silicon Valley is lousy with them. I call them lizard people because they are missing the parts of the brain that make you feel emotions and give you an innate tendency to avoid harming your fellow human beings. There’s nothing behind those eyes. Just a miserable shell of evil.
This type of employee is more commonly non-technical, but if they are an engineer (if you can really call them that) more often then not they end up being a ladder-climbing weasel. These “bootlickers” will side with management on all issues, because they aspire to be the one in charge at some point.
Lizard people believe fully in the company Kool-Aid and thus will be a complicit force in keeping their fellow workers in line. For example, complaining to HR when people step out in the afternoon for a 15 minute walk. Or complaining to management about coworkers who aren’t working hard enough. This will be the person to tell you, with a slight smile and a peppy demeanor, that regrettably, the company isn’t making enough profit and thus some of you must be downsized.

These people can be identified by their unironic and constant usage of corporate lingo when they speak. Most of what they say has no substance or point. Listening to them talk feels like being in a cult. Their over-enthusiastic fake personalities make me want to fucking vomit.
The chaos monkey
Like a drowning person that flails around and pulls their rescuers underwater, these types of coworkers have a tendency to throw code around, randomly breaking things. Tolerate enough of this from someone on a project and suddenly everything grinds to a halt as you spend more and more time fighting fires and trying to figure out why stuff is breaking all the time. These agents of discord erode trust in the competency of software developers as a whole, making it harder to keep promises and scheduled milestones. Credit for classifying this type of coworker goes again to my aforementioned friend!
Who knows why chaos monkeys do what they do, or think what they think. I speculate that sometimes this is a PTSD-like reaction of learned behaviors that worked in an incredibly toxic environment. Sometimes the chaos gives that person an appearance of productivity, letting them solve their own problems and swoop in to save the day. Alternatively, this may be a play at job security, since no one can figure out what they wrote.
What can we do to fix all of this?
I’m not going to pretend like I have any answers. But I can at least identify several key hurdles standing in the way of any comprehensive solution. These are fuckin’ big hurdles though. I’ll admit that much.
Foster Worker Solidarity
Workers need to shed their bullshit competitive attitude. This is a job, not an identity. Get your work done, get paid fairly for it, and then go home to your family and/or get on with your life. If you like coding, then do more of it in your spare time for yourself.
I have honestly never seen engineers work well with each other mostly due to at least one person on every team having a huge ego or being miserable to work with, or in the best case, one or more people simply having a complete failure to communicate properly. But I’ve covered this extensively already, no need to beat a dead honse.

Look, I have no idea how to get people to play nice. Maybe it’s possible in groups of 2 or 3, which makes things much easier. So smaller teams I guess, and have people go to therapy.
Normalize software freelance/independent business and (true) contracting
I like this, but I also think it is a lot to ask of people to completely change their way of existence. I think we could learn from people in art and in the trades. Some freelancers already do this, but it requires you to be more of a business oriented person and set up a personal brand. Getting visibility and associating your unique presence with the technical output you have is extremely valuable and will give you more leverage than just being a good little worker bee for your manager.
Some difficulties here is that big tech has lobbied the US government hard to get regulation and laws in their favor. Lots of people might also not have the aptitude or willingness to invest in their own portfolio style career. Individuals are at a disadvantage when it comes to economies of scale–even in software! Companies can invest resources into hosting or buying hardware wholesale or having support teams that individuals can’t.
Unionize
Gasp! I fucking said that word again. Hope you aren’t reading this at work.

With the previous two points as prerequisites, it would be great to see some union activity or software guilds or collectives so that people don’t have to struggle alone by themselves. Between the complete and utter suppression of unions by big tech and having this word be verboten to everyone in the United States by reflex, I think this is a tall ask.
You could try to find some kinship by joining a hacker/maker space or computer club, but my personal experience is that it is quite hard to form relationships, because most people are quite anti-social. Nothing wrong with that, but it does make working together more difficult.
Foster a culture of software quality and educational communication
When people lay brick badly, everyone can tell. Everyone knows what a good brick wall should look like, and barely anything equivalent exists in software. Badly designed software looks and performs 80% as good as well designed software. If you don’t respect craftsmanship and care about user experience and reliability, the shoddy low-cost job will win every time. A bad program is not ugly and visible like a bad brick wall. The average person has no idea how to recognize good software. And this is a big problem.
We need to care about the little things. The difference between a good piece of software and a bad piece of software, is the “book appointment” button not working every so often, screwing up your appointment booking. Or having your computer crash late at night a few times a week, taking your essay along with it. Or having your phone flicker when you’re trying to watch a video. Those are the effects of bad software; death by a thousand cuts. People aren’t even aware of the toll it is taking on them.
We need a culture of caring about engineering quality and awareness that these things aren’t acceptable. I’m not exactly sure how to do this, but maybe with trusted benchmarks and wider media coverage this can eventually become a reality. Benchmarks for graphics cards are an example of “normal” people learning to try and discern software quality. I think when people have some intuition about what a good piece of software should be, it will be easier for practitioners to break out into independent businesses and seek informed customers willing to pay good money for quality software.
Governmental interventions to restore individual rights and bust trusts/monopolies
Something needs to be done about governmental lobbying. Laws and regulations sorely need a correction to restore employee and individual rights and put big tech back in its place. This is getting ridiculous. Is there anything normal people can do? There’s billionaires like Mark Cuban who are working on solutions in their own way in the pharma space with CostPlusDrugs. I think this is brilliant. We need something like this in tech. Someone with money and resources who is willing to invest in people and quality with no bullshit.
No one cares about the little guy… (but they should)
Even at the micro level, on a person-to-person basis, the effects of larger companies’ influence on individuals’ rights can be felt. If you have a conversation with engineers, off the record people will give lip service to the anti-establishment ethos all day, empathizing deeply with stories of employees being grossly mistreated by company policy. But they will rarely follow through when stakes are high.
Nobody pays close attention to the suffering of their fellow colleagues. But sooner or later, something will go wrong. Maybe you get injured. Or burnt out. Thrown under the bus because you happened to have something someone else wanted. Maybe your job becomes redundant because of some random market shift. And when that times comes, you’ll get beaten down and forced to submit by “the company” and everyone will look the other way and pretend that nothing is wrong. Because it’s not their problem and they won’t do anything to help. Because it’s too much trouble and they’re glad they don’t have to deal with this problem and they’re not you.
But guess what? The little guy is you. And me. And everyone, every individual person, sitting around the office, getting their hands dirty in the trenches, making the world turn. Each person has a shared responsibility not to make everyone else’s life a living hell, and we are failing miserably.
The topic of this post is important to me, because I wanted to be in tech and because lots of people are in tech. I think a career in tech should be intellectually rewarding for people who have an interest in it. It is still the best way for people to rise up out of poverty and into middle class. Technology was supposed to improve the lives of everyone by making things more convenient and less painful. Instead we have a prison of our own making, an occupation designed to burn out its practitioners. We are stuck fighting ourselves, like a bucket of crabs, while the ones in charge have turned into monsters that have a stranglehold on our government.