In a couple weeks I start a new job at Red Hat and could not be more excited. I think I'm also ready to say why.
You might wonder why hash this all out publicly, and the answer is a few reasons:
- So if you are stuck somewhere miserable, you have hope that you can escape
- To mentally process a year's worth of awfulness and purge it before starting something new
- To expose the a "worst case scenario" from taking a chance on a job with the wrong culture fit
Note - personal info has been anonymized and names have been changed
If I'm being honest, I have no one to blame but myself for being in this job. Last year I also had an offer from Red Hat, and I turned it down to come to my current, miserable workplace.
TL:DR I was offered a jaw dropping salary at my current job, Company X, and after talking it over with friends, family, etc they all encouraged me to take it. I swallowed some unease over one interviewer trying to see if I had kids during the interview process even though that's super gross. I second guessed the much more warm/fuzzy feeling I had about joining Red Hat in the Ansible tower in Durham. If you are ever in this position, please do not be me! Listen to your gut.
I accepted and started in September. Things started off on a kind of weird foot from almost day one.
- I started during a company wide conference in a gigantic empty airplane hangar of an office, with almost no one else there
- In between me accepting the job and starting, they'd moved me under a different boss, Mark
- For the whole first week I had nothing to do except do what had to have been thousands of hours of sales training that I'd been assigned in our corporate training app for unclear reasons
- The few people left in the office, to a t, all seemed incredibly cynical and unhappy
My boss Mark was at
<the huge corporate event everyone was gone to> so that first week, I barely spoke to him.
The following week, on his return, we got to the good stuff. I was introduced to the architecture of our applications. My closest colleague John was a friend of a friend and we immediately got along well. I was able to pick up context clues about what seemed like a very politically charged work group from snippets he would drop at lunch..
But aside from having a friend, things almost immediately started on very rocky footing. For the first month I took care of behind the scenes VM tasks, and uncovered more and more that concerned me. My boss wasn't consistently keeping his code under version control. He had random code hidden away on VMs that only he had access to. He'd give me "latest" in giant tarballed directories. He had built out a new application (circa 2019) in Python2, even though Python2 was set to be sunsetted 2020 with the promise that even were a security bug discovered, it would not be dealt with by maintainers. I immediately let my boss know that changing our apps to python3 needed to be a priority for security reasons, and was brushed off like I was being hysterical.
Almost immediately it also became clear that my boss, Mark, was extremely moody and image conscious. The best way I can explain it is that his mood would swing wildly, whether it was a good or bad week for my app. If I caught him in a bad mood, he would berate me for forgetting to add a certain label to Trello cards. (He was constantly changing Trello templates and labels, and would get extremely upset if anything didn't immediately follow whatever new system he landed on.)
I also noticed some different treatment between John and myself from Mark. IE, if I ever accidentally had two Trello cards in "Work in Progress", I would get dragged publicly in scrum. Same if I forgot to add story points, or other tiny things. John, on the other hand, could have three or four cards in WIP and my boss wouldn't say boo. It was disappointing to realize, but not the first time I've been treated differently than guy colleagues. Another example would be if John got through all his work quickly, my boss would say stuff like "Wow, almost nothing left in backlog! You're having a great week", where if I did he'd say stuff like "You aren't prioritizing your time right, you should have more."
John noticed it on his own, and brought it up to me. John said, "I asked Mark the other day why he gives you such a hard time, since you get so much done. All he had to say was that yeah you do a great job. No explanation of why he's so brutal to you."
Within about a month, the team dynamics had me so miserable that I popped into the trusty career channel of the Women In Tech slack and asked people whether it was too late to beg for my position I'd passed up at Red Hat back. People offered advice and ways to phrase it, but ultimately I was too embarrassed at my poor decision making to reach back out to them.
In extreme irony, my boss appeared to not know that my degree was unfinished, and I never corrected him. He'd often say things like "People who learn to code on their own can get code out but they'll never understand algorithms or real computer science." Meanwhile, he frequently would write things than ran at O(n)^3, and all the queries I inherited from him in our API were cartesian products (basically a cross join where all values between tables are joined, which is hugely inefficient, and then
JOIN conditions are specified in the
WHERE clause. If that doesn't mean much to you the gist is that its a hugely rookie move in working with SQL).
When I tried bringing up Python2 problems or concatenated APIs to my boss he'd treat me worse, so I quickly learned to just fix his mistakes on my own without pointing them out. Because that's healthy /s.
Even with a rocky start, my moody boss Mark, and overall horrible opinion of this place, I'm like a weed growing through the pavement no matter what. In the first two months I hit several large new feature deliverable dates on time and it got my team considerable attention and praise. Before my involvement, our backend had only supported "read" operations for this new product we were building. I introduced the first write/update capabilities for the app, and with the training wheels off we finally started getting significant users.
I had worked myself in such an over-the-top way those first few months that I knew the app inside out, the database inside out. I was able to take over all Mark's work and John's work with the Vue SPA so that he could transition to another project.
To my horror, every rock I turned over I found some new horrific design decision Mark had made. For instance, after a scare that I had destroyed prod data after seeing a suspiciously empty table, I realized that an ETL service he'd made was deleting all our user data and rebuilding it from scratch on a daily basis. It had never occurred to him to redesign the process to run non-destructively. Within a day or two I was able to come up with a solution that let the ETL only perform augment operations without any data blipping in or out for users. Since it was non disruptive, we could also run it back to back 4x as often as we had been previously, and solve numerous user complaints about their application data not being totally current that we'd had before my changes.
The only way to control whether or not Mark would treat me like s@#$ any given day seemed to be just to work all the time and avoid speaking to him as much as possible outside of that. I told myself, "For what they're paying me, I can do this for a year or two."
Things settled down for several months. I worked around the clock, responsible for the ETL, database, API, and Vue frontend. So long as I worked like a serf, Mark generally treated me ok. If powers above him weren't happy with us for whatever reason, it would trickle down to him being moody and demanding with me. C'est la vie.
In December 2019, we added a new guy to the team. Sam outranked me in his previous job (Senior SW Eng), he'd even worked with Python2 specifically (yup, into December 2019 and I still hadn't been allowed to change that). Mark, John, and I all interviewed him. He seemed really technically competent and just like a nice reasonable guy.
We weren't able to monitor his progress closely his first few weeks because I took a vacation to Mexico, and then John was off, and then Mark was off for holiday related PTO. We all figured a slow start would be a nice way to ease someone in.
John first alerted me that something was off with the new teammate in his second or third month, so Feb/March 2020. "He's not getting anything done" John would say under his breath before Sam came in, usually after lunch to the office. Sam would stay for maybe an hour then take off again.
Its hard to pinpoint implicit bias but I'll take a stab at it. Those first few months Mark looooooved Sam. I would go into my own 1:1s and just hear about Sam and how good he was "going to be" at some indeterminable future point in time. Meanwhile, I'd stuck my head above water enough to notice that John was correct. Any task Sam was given, even if it didn't involve knowing our apps very well, dragged on to 2x or 3x the (conservative) time estimate we'd given it. While Mark would have singled me out for criticism in scrum if I'd done the same, Sam got deadline after deadline pushed back without a word. At least...for a while...
At least one part of implicit bias is who is always given the benefit of the doubt vs who never is.
It is frustrating for me to even remember this whole experience. After several months, Sam did manage to wear out his welcome with my starstruck boss. The straw that broke the camel's back seemed to be a project that was slotted to be two weeks. All in all, it took Sam three months. That's not an exaggeration. Me and John laughed about it to ourselves.
My job had been supposed to be remote. That was one huge reason I took it over the Red Hat opportunity. But since I lived in Durham I wound up coming in in-person pretty often. Sam's attendance and performance in his first few months was so bad that Mark changed the rules and said EVERYONE had to be in office every day. With no warning my "remote" job turned into mandatory in person every day. I seethed behind the scenes.
Other unbelievable but true faux pas: Wrapping up scrum one morning Mark asked Sam to get on video chat with him later in the day to pair on some issue, and Sam replied "I'm actually flying back from Puerto Rico then." He'd taken a mini vacay out of the continental US and not bothered to tell anyone on the team, lmao.
I'll admit, I used to shake my head and wonder when Sam's magic armor would wear off, but I never intended or supported how bad things would ultimately get for him once it did.
May was the first time Mark told me he wanted to put Sam on a PIP - Performance Improvement Plan. To the uninitiated, that's usually a cover-your-ass move for corporations to later fire someone. I have no idea why my boss told me. I had been promoted from SW Eng to Lead SW Eng, but I had no management or personnel responsibilities. Worse than the breach of confidence talking about his intent to PIP another employee, in the same breath Mark said 'I think he's autistic or bipolar or something.'
My jaw hit the floor. I can only assume Mark was trying to start a smear campaign and assume I'd go along with it. And if anyone gave him a hard time about firing Sam, there would be this innuendo/perception that Sam had some kind of mental condition. I wish I could say I responded well in the moment, I think all I said was 'I don't see that at all from him. I have bipolar and autistic people in my life that I love, and nothing about Sam makes me think he is either.' I also have mental health conditions of my own, and hearing it brought up in the same breath as a PIP was absolutely stunning and horrifying to me. The baldfaced ableism is still unbelievable. This was not an isolated incident, either. Mark would repeat it to me multiple more times.
I continued to feel a mix of exasperation and sympathy for Sam. He would leave tasks until the last minute that he needed my expertise on, then bogart my time to the point my own tasks were delayed. The tide turned enough that Mark recognized this, and so Sam got torched in scrum instead of me.
One more jaw dropping incident occurred during my org's big annual global conference cycle. Sam and I had planned to attend the event in Vietnam, but it was also held at a Europe and America location. When coronavirus caused the Asia event to be cancelled, Mark emailed us on a Sunday night to attend the one in America instead, with one day notice to fly out. "Book it yourself and the company will reimburse you later", his email read.
Sam brought up at our daily meeting that he was having a hard time finding accommodation in Vegas, where the event was held - that all the hotel rooms were $250/night and above. Mark laughed in his face in scrum, about how "cheap" that was for Vegas. I wanted to scream at him that not everyone can front 250/night with zero notice.
I was so disillusioned at this point I opted out entirely, claiming I couldn't find a dogsitter. I didn't care about sucking up to Mark to avoid mistreatment anymore, after months of his ridiculous behavior. Sam had been doing so little that at this point Mark was treating me like the proverbial golden child. Even as "golden child", as reward/retaliation for me staying behind, my boss called me until midnight to troubleshoot and run our ETL process because of his "spotty wifi" in Vegas.
Upon return, one more eye-opening thing happened. The company, hit by COVID related downturn, decided to put us on unpaid furloughs. That was crappy enough, but we were told in no uncertain terms that no one was supposed to work during furlough. Mark reached out to us all soliciting work during it, describing a minor bug as URGENT in all caps in the email subject. We ran an internal app for employees, all who were also furloughed - so no one should have even been using our app that week. It was the epitome of non urgent and I couldn't believe he was trying to get us to work while unpaid.
I really thought I could just shut my mouth and make my money but apparently I'm not wired that way. I complained to HR about the work during furlough. A few weeks later Mark repeated his PIP/autism/bipolar train of thought about Sam in my 1:1 meeting with him and I snapped, I reported him again.
Up until this point, I had thought my team was the one rotten unit of this company but that the rest was good. But after talking to HR, they did nothing. I pushed back, I asked them "Saying an employee seems autistic or bipolar and that you want to put them on a PIP in the same breath seems like illegal discrimination. If my boss isn't happy with me one day, he can just go around saying I have random mental health conditions?" HR Response? "We took appropriate action based on the context - there are two sides to every story." I basically made up my mind in that moment to get out. I didn't care anymore, the money, nothing could make it worth it to stay where I was. Meanwhile, Sam was subjected to getting dragged over every little thing in scrum, the way I had previously.
I feel like I should point out, if anyone reading this is tempted to think my complaints are based on me not being good enough for this team, or anything like that, I'd like to point out that as badly as I was treated, I was PROMOTED during this time. I was on point with everything I did. And this is how bad it was as someone "doing well" in this group.
I had no idea how easy or hard it would be to job hunt in a pandemic. I was scared of losing my current job, never finding a new job, and after a year of working like a maniac to avoid being treated like garbage, nearing burnout. I completely lost my appetite for several months and just felt like overall s@#$.
All in all, I did about...four or five serious interviews to get out. In the middle of a mother-f#$%ing pandemic. I'm sure some of that is luck, but can't help but feeling like a boss anyway. I have no idea how its possible that it was that easy to get a new job and one I'm so thrilled about.
I interviewed with four companies seriously: two startups, Red Hat, and Auth0. I started doing algorithms every night between work and sleep.
We had a second furlough week and I scheduled as many interviews as possible for that week long window...relatively early into it, I had my final Red Hat interview and did something super foolish.
After it ended, and guided far too much by my spider sense, I cancelled all my other interviews. I liked the people I talked to so much, I had such a good feeling about it. I felt some kind of internal gravity like a laser beam between me and the Red Hat opportunity. For an entire year, Red Hat for me had been "the one that got away." The new role I interviewed for had a better salary, was more backend, and all remote. It had everything I wanted.
Despondent, a day after not hearing expected feedback from Red Hat, I was in such a foul mood I cancelled all my other interviews for the week, even without another offer lined up. My bold, stupid decision worked: two days later they called me with an offer I accepted.
I honestly will need to deprogram myself from a super nasty dysfunctional workplace. Looking back, I can scarcely believe it has only been A YEAR since I worked with a team I was actually friends with, who had fun together. I've been walking on eggshells so hard this past year that it seems like a distant, impossible memory.
EVERY part of it sucked. Mark being so mean and unreasonable. Sam doing nothing while I worked like a dog. Sam getting treated like that by my boss. (No matter what I think of Sam, NO ONE deserves their boss telling random people they have various health conditions. SMH.)
I don't know that I have any regrets, just lessons learned. I should have taken my gut way more seriously making my decision last time. It is pure dumb luck that Red Hat reentered my life with an even cooler/better paying/remote job.
If there is anything I can say to anyone reading this, life is too short to stay in a s@#$ty job. It just is. So follow your own compass and go somewhere that makes you happy and treats you right.