It’s been a rough few weeks at work. This is largely because I’m feeling depressed. One of the reasons for that is that I’ve been feeling increasingly disconnected from the profession of Software Engineering. Yesterday in a meeting a co-worker, some hipster UX designer, decided to toss some nitro into the mix fueling my depression engine by making a cute little comment after I pointed out yet another possible downside to what he was proposing we do. This conversation has been paraphrased in a futile effort to protect both the innocent and the guilty (you decide which party is which):

UX Designer: You are a catastrophist!

Me: Huh?

UX Designer: You are always thinking in terms of the worst possible outcomes

Me: …

Me: What exactly do you think good engineering is?

He didn’t respond to my follow up question and the conversation moved onto other things. I ceased participating in the meeting at that point. However since that moment I’ve been replaying the conversation in my head over and over again. My ape like brain has been oscillating between the following conclusions that could be drawn:

  1. He’s right. I should really try to stop looking for all of the downsides, be more positive and do what I can to make things work like they want.

  2. He’s right. He’s also a fucking idiot because this is precisely what engineering is. Defining the problem. Understanding the circumstances (both in the happy path and extreme edge case sense). Building a robust solution.

Yeah he’s not wrong. I am a catastrophist. Of course this is not an actual word. But in spite of that I immediately understood what he meant. If you go and look it up, like I did to prepare for this post just a few minutes ago, you’ll discover that it refers to somebody who believes in the theory of catastrophism which is defined as follows:

a geologic doctrine that changes in the earth’s crust have in the past been brought about suddenly by physical forces operating in ways that cannot be observed today

So yeah, not really applicable here.

In this specific case, the core problem is that this project is being poorly managed. It’s probably the most important thing my team will work on for years to come as it involves us replacing a core part of system functionality which is currently mired in nasty old ASP.NET webforms code and ugly stored procedures. When I say core, I’m not kidding. Nearly every client uses it and if it fails, it can result in very negative financial consequences both for our clients, their employees and for us.

So getting it right isn’t an optional part of the process. We can’t afford to break a few eggs and see how it goes. Because I’m the guy writing the primary API endpoints that drive this feature, I’ve been very involved in trying to tweak and redefine the vision for what it is we are building. That’s because insane features require insane API endpoints. The Product and the UX people don’t care for this. They see their Figmas as being an immutable blueprint of what we are building rather than a basis for a discussion around what we can and should be building.

This of course has been going on for many months now (side note: like so many other companies we only pretend to be agile). It definitely feels like the people on the receiving end are getting more and more tired of me pushing back on things as time goes on. This past week I think represents an effective breaking point, at least for my career at my current employer, as it also marks the moment that I began to realize that virtually nobody gives a single fuck what I have to say about anything at this point. That is a very hard realization, but it is the truth. I wield no effective influence. My professional opinion carries no weight. Thus I can feel the walls of obsolescence closing in on me.

When I check back in with people I used to work with just a few short years ago, I feel very disconnected from most of them as well. A huge part of this revolves around my continued rejection of AIs and LLMs which most of my ex-coworkers seem to have embraced with a level of enthusiasm that rivals that of only the most strung out junkie in need of a fix that you could possibly imagine.

But it’s not just them, it’s me too. Software is deeply depressing to me now. There has always been terrible software, but I used to feel like I could write good software and build a little oasis for myself within the sea of shit. That was decades ago. Nowadays the surrounding software has gotten worse and my willpower to push back against that has diminished significantly. But I’m still trying. I want to write stuff that works. I don’t want to be paged in the middle of the night because something of ours failed. I want our clients to be happy with their experience.

But the discipline required to get us there has been collectively waning for years now. Not to beat a dead horse, but I believe the inclusion of AI and LLMs into most of our workflows hasn’t helped this either. Even though I refuse to use the shit in an interactive context, it doesn’t change the fact that all of my PRs get reviewed by Co-Pilot on Github now. Most of what it finds is nonsensical crap, like what you would expect from one of those PR reviewers who absolutely has to find something to complain about every time. However it does find some decent things from time to time.

Over time, this has made me realize that I’m not as good a coder as I once thought I was. The harsh truth is that I don’t really care either. I miss stuff. We all do. Co-Pilot misses things too because its limited context window ensures that will always be the case.

So that brings us to the real question: Am I going to go gentle into that good night or am I going to rage, rage against the dying of the light?

The truth is that I’m torn. I am a Catastrophist. I am proud of that. But perhaps the time has come to stop pretending like it actually matters. Most everybody else isn’t listening and they don’t care. They just want me to finish speaking my piece so they can skip their way back to the primrose lined happy path they prefer to casually stroll along.

What do I want? To build working and reliable software and to be happy. But as of right now, neither one is possible. Something has to change. They won’t.

So maybe I will.