Being Let Go (Abridged Version)

This is the shorter, simpler, sooner version of a very long post I’ve been working on. Ever since the NLRB ruling which effectively nullifies severance agreements that prevent workers from speaking out about their working conditions, I’ve wanted to formally comment on how I was fired from my last job. The long version of the post goes into a lot of detail about other experiences I’ve had, recontextualises being fired from a job as actual trauma, and overall comments on a lot of the problems I have with the status quo of “at-will employment.”

I was originally going to post this on LinkedIn only, just to my “professional network,” but since LinkedIn apparently has a character limit that prevented me from sharing the abridged version of this post, I’ve decided to share it to a larger audience on my personal blog.

It’s not going to be too difficult to get the broad details about my former job, and for people who know more about the situation I was in, it’ll be practically trivial to name everyone who was involved. That said, since the goal of this post is mostly to comment about the larger structural issues without blaming people, I won't state the names of any people or even the company I worked at. If you want to figure it out, be my guest, but that’s not the goal here.

It’s also worth noting that I was fired in November, the ruling was in March, and now it’s April. So, my memory will be a little fuzzy on specifics that hopefully don’t matter too much. This is another reason why I don’t want to name anyone by name, since I don’t want to misrepresent anyone specifically because I misremembered something. What matters most now is how the event affected me and my relationship with my former employer.

Until I had the option to be candid about this due to the NLRB ruling, even interviewing for new jobs was mildly triggering. I was legally obliged to not speak negatively of my employer, but to do so would be to speak negatively of myself instead; only one of us can be the reason I was fired. I deeply despise lying, and I hate being diplomatic about something that I feel is so obviously one-sided. Hopefully you’ll agree with me that I’m not at fault.

Systemic issues

At my last company, I was fired after changes I deployed broke some things. I fully admit that there were issues that were my fault, but I don't think that these issues were entirely my fault; the code base had issues that made things very difficult to test, and although I tried to test everything, it wasn’t surprising that I missed something. Every change I deployed, I increased the amount of testing to avoid issues, but there still ended up being problems. Although I have no firm details, it was clearly stated to me that breaking things and “not testing enough” was why I was fired.

I think that firing me was an easy solution to the problem where I could be assigned all the blame for the problem, when the reality is that it was much more complicated. I also saw multiple people who were fired during my time at the company who I believe were fired for a similar reason, where systemic issues were actually to blame but they received the blame (in the form of their livelihood) anyway. Either way, I have no evidence to properly confirm this, nor do I think it matters whether others received the same treatment. The point is that, rather than properly discussing the situation with me and setting realistic expectations and boundaries, I was just fired.

Confusing management

While I was hired on one of the development teams, during the first week or so of my employment, things were hectic and I didn’t actually have any specific tasks to work on. So, as part of learning the project I was set to work on, I decided to clean up a lot of the “developer environment” stuff— linting, various build commands, etc. Since a lot of these things were difficult to test, prone to breaking, and otherwise unreliable, it was decided that an impromptu team should be formed to help handle the “developer experience,” and because I had already proven myself to be both interested and good at doing that, I was offered to start as the first member of the team.

However, this ended up putting me in a very weird situation. In terms of organisational structure, my manager was still for my original development team, even though most of my work was on the new team. So, I was still having all the regular meetings for my old team, and basically none on my new team, until we eventually decided to have a biweekly “sprint planning” meeting. Ultimately, I found this insufficient, but because the dev-ex team lead was already juggling a bunch of other commitments, I didn’t want to bother them.

Traumatic memories

In addition to my unwillingness to bother my new team lead, some of the ways they interacted with me also inadvertently reminded me of a very toxic person from my past, and ended up being partially triggering. Because of this connection, I essentially ended up in a situation where I didn’t want to talk to them out of fear that literally anything I said would be used against me in some way. This isn’t necessarily their fault, and any relationship has a two-way obligation to communication, although it meant that we just ended up communicating way too little about goals for the team and the things I should do.

Ultimately, things got to a climax when we had our planning meeting at the beginning of a biweekly sprint, and I mentioned that I’d want to take some time off soon because I hadn’t had a proper break since I had moved into my new apartment. About a month prior, I took around a week off to move out of my old apartment and into a new one, and since I have a condition which leaves me chronically exhausted after basic physical activity, it was very exhausting. To avoid burnout, I felt it was a good idea to actually take advantage of the time off I was afforded and, well, take time off.

However, the team lead was noticeably upset when I told them this, since it’s best to ask these things before the sprint starts since that’s when all of the obligations are set. Since I mentioned this on the Monday that the sprint started, and that’s the only time we had to meet anyway, I thought that was fine. It turns out that they actually were okay with this, and were just having a rough day or I was reading too far into their emotions, but I took this as an indication that my request was declined, even though this wasn’t explicitly communicated.

Limited throughput

There was a general vibe that the dev-ex team wasn’t getting much done, to which I responded that I had been meeting the expectations I set upfront on how long it’d take to do things. I never got any other feedback when I provided estimations on things, so, I had assumed it was okay. I had expressed before the team was formed that it would be ideal to have more than one person on the team, but this was ultimately ignored, and I was by myself. In hindsight, I feel like I was “set up to fail” by this decision, since I was simultaneously told I was not outputting enough and not testing enough, even as I approached burning myself out by increasing both.

Another big issue is that a lot of my tasks were waiting in code review, since… it takes two to merge a change, and I cannot review my own changes. Since no one else was allocated on the team to help out, I was subsisting off the free time of everyone else who had their own obligations. At one point, I vented about this in a personal Slack channel (that’s an entire thing I don’t want to have to discuss, but, I had one), where I felt that being a one-person team was not okay since it meant that no time was allocated for code review. After I made that comment, the team lead privately messaged me saying that it was extremely unprofessional to say that, that I should watch what I say, and that it felt like I was blaming others for not reviewing my code sooner, which… I didn’t think I was doing, but, I didn’t question it, and I already knew that I had trouble communicating with people.

I ended up “subposting” in Slack about issues I had with management, since I simultaneously felt like I couldn’t talk to the team lead due to past trauma, and also knew that starting a discussion was necessary. It was… bad, and I regret doing this. Honestly, it’s the biggest actual mistake I made when working there, although it wasn’t explicitly listed as a reason for firing me.

Week off

Ultimately, the entire situation abruptly changed on the Friday two weeks before I was fired. I had finally drafted a long message to the team lead explaining the connections to trauma, apologising for not communicating sooner, and wanting to be more open about things. I also mentioned that I had not actually asked for time off yet, even though my plan was to take the next week off (since my other manager was off for another week), and was going to offer to continue working through the next week instead.

They responded with… essentially saying “you should take the week off,” which… I’ll be honest, I didn’t want to. Since people were upset with my throughput, I felt I could finish the project I was working on, given another week. And after that, I could take my week off, switch gears completely to something else, and have that settled. But, given the terseness of the reply, and the fact that they didn’t respond at all to the stuff I mentioned about trauma… I obliged, and took a week off. It was relaxing, but I returned nervously after a week of comparatively chill vibes.

Status quo

On Monday, I showed up to the meeting to be told that the team lead had made the decision to remove me from the team and restore me back to my old team. Honestly… I hated that they didn’t address any of the stuff I mentioned about being unable to communicate, or how I felt the team structure should improve, but… it felt like an amenable situation. I was worried how things would turn out after I came back from break, but it felt like it was the best outcome for the least effort.

Of course, this was the week I was going to be fired. At that meeting, I asked if the team lead wanted me to tidy up anything before fully switching back to my other position, and they asked if I could try and deploy my outstanding changes so that the next person could take over. I obliged and did so. Of course, as you could probably expect, despite testing for literal hours (which some might say is an unreasonable amount for the size of the actual change), I missed one small thing which caused a small subset of people to have an issue which they resolved within a half hour.

Because I’m an honest person, I went into detail on what happened, how it happened, and how I fixed it, and got a coworker to approve the changes. Honestly, if I hadn’t mentioned this explicitly, I don’t think many people would have even noticed the problem existed, or remembered it. After talking about it, the team lead asked me a few questions about it, then posted a message to all of engineering stating what was effectively, be sure to do (laundry list of things, including the thing I said I missed) before any dev-ex changes. This felt like I was being subposted, and I doubt that’s the intent, but… it almost validated some of the trauma I had been experiencing, which just puts a sour taste in my mouth. I was being chastised for not directly communicating my issues, and even after I had made an explicit attempt to directly communicate things, it was met with the same behaviour.

I believe this issue was the “final straw” that caused me to be ultimately fired, but again, I have no way of confirming this, and the actual event was months ago anyway.

Snail’s pace

At one point, I made the mistake of asking people in a larger engineering chat whether we think it’s acceptable to deploy on Fridays. Ultimately, I agree that this was honestly a mistake, since that chat is visible beyond just folks in engineering. While it’s true that we shouldn’t do broad, disrupting things on Fridays, the team lead was concerned that bringing up this topic could lead to a large number of bureaucratic changes that would slow down the pace of deployments, making it difficult to both add features and deploy fixes.

This same team lead was the one telling me that I need to run 30+ minutes of local tests before every change I make to the project, in case it breaks any one of several flows. And that’s not just 30 minutes, that’s practically 30 minutes in between every minor change I make, after code reviews, et cetera. Due to the lack of people available for code reviews, I was already spending a majority of my time rebasing changes I had already finished, having had a backlog of changes that depended on each other, but this was asking to add hours upon hours of extra time to each change being deployed, at a time when I was being told that my throughput was disappointing.

I obliged, of course. I tested more and more on each change. I spent almost half a day on the final tiny changes I had left to merge before switching back to my original team. But of course, I failed to cover all cases, and my fate was sealed.

Let go

On my final week, my manager (not the newer team lead) rescheduled our usual 1-1 to be on Friday morning. I had assumed that this was because I was feeling ill on Thursday evening, when we were originally planning to meet, and had even thanked them for rescheduling it so I had time to rest. In hindsight, it’s obvious why they felt uncomfortable when I said this.

I believe fairly confidently that it was not my usual manager who made the decision to fire me, but because they were on the books as being my manager, they did it. During the 1-hour meeting we had scheduled, they sternly told me the reasons why I was being fired, that I was fired, and that the head of HR was on the call and could then give me the rest of the details. They left immediately after that, and that was the last I ever spoke to them. I was honestly shocked… since I had been moved back to my original team, I thought that everything had been over, and that things were going back to normal for the better. I even, earlier that morning, promised to a coworker to review their code later that afternoon. I was made into a liar for that.

Worker’s rights

Quite frankly, I believe that the situation was the result of very bad management decisions, a strong power imbalance between managers and employees, and an abuse of the “hire-at-will” environment in the US. This is further strengthened by the fact that a severance payment was gated behind a non-disparagement clause which prevented me from being candid about this. The fact that the NLRB has proven such contracts unenforceable is the only reason why I feel comfortable stating this now, and I still feel a bit uncomfortable doing it. If you see this post deleted, you'll probably know why.

The culture at companies in the US suppressing any attempts of workers to talk about their rights is... disappointing, to say the least. And I know for a fact that me simply saying this is enough of a reason for many companies to not want to hire me, because even though suppressing worker discussion on their rights is literally illegal, plausible deniability is all you need to just never respond to applications.

Anyway, I don't believe I'll be comfortable recommending anyone to my former workplace, at least for engineering, unless I receive reasonable confidence that this situation has changed, and people will actually engage in the difficult conversations about problems, instead of cutting people off of their source of income and health care.

In my initial post about being fired, I mentioned not holding grudges as a way of “staying positive,” and… I honestly still mean it. If people actually apologised for the decision to fire me without seriously discussing the situation first, I would 100% be comfortable working there again. But I don’t expect this to happen, since US work culture is a toxic mess, and it’d go against every unwritten rule there is.

Employees have to act diplomatic and apologetic when they want to leave a company, give adequate notice, and shut up to avoid tarnishing the reputations of their precious employers. Companies can kick anyone out the door and ruin their livelihood with literally no warning, for virtually no reason. Even now, I'm being diplomatic by not directly naming the company in this post, even though I probably should. I should be calling people out directly so that they feel obliged to respond, but maybe I’m just being greedy.

There's something I've heard that can really help situations like this. Sadly, despite being a mathematician, I'll have to learn more about class operations to find out.