If you work in tech, you know at least one person who you will never work with again
Z is one of the best software developers I’ve ever met. They know more than I’ve forgotten about data structures and algorithms, and they can ship features and deliver value without pause. They were a force in early CoverMyMeds, setting the tone and culture of our early development team. It’s safe to say that CMM wouldn’t be where it is today without their efforts.
That said, Z was kind of abrasive. They were always the type of person who held strong opinions — many software developers are, comes with the landscape — but over time it started to get worse. At first, it was an off-color joke here or a code review that was friendly but unyielding. Then it was a code review that was unyielding but now felt kind of like a harsh attack.
Eventually, it got bad. Maybe it was bad already and we were all just giving Z leniency because they were our friend and we were in a make-or-break phase of the startup together. But it became too much. Shouting in meetings at whoever was opposed to their ideas, up to and including Matt, the CEO, who was our friend. Actively berating other developers for writing what they deemed sub-par code. Being awful to anyone not in tech who was trying to work with them, such as our account managers. Z was incredibly valuable to the company as a developer and had tons of institutional knowledge baked into their head (not to mention their user id hardcoded in places in the system for debug/admin purposes), but we were all at our wits’ end.
We had the classic “toxic team member” problem on our hands. What did CoverMyMeds do?
First, we — and when I say “we” here I don’t mean me personally, I wasn’t management and therefore not a part of these decisions — remembered that Z was our friend and a human person. When you employ (or even manage) someone, you hold their livelihood and career future in your hands, a responsibility that you cannot take lightly.
Z’s manager made sure that they understood clearly that their behavior was unacceptable, and that if it didn’t improve there’d have to be action taken. Nobody at the company was irreplaceable. That’s always the first step.
Then we lightened their workload. Z was the type of person to work 18-hour days without being asked, and it helped ship a ton of stuff on time, but it had taken its toll. We made sure they weren’t put under harsh deadlines. We ensured their workload didn’t require them to work after-hours — although they continued to anyway because they didn’t know how not to.
Finally, we pulled out the big guns. We forced a multi-week vacation on them, ordering them not to VPN in to get anything done and to just chill themselves out. We offered to pay for therapy, help them work through some of their stuff. (Side note: probably everyone could stand to talk to a therapist every now and then.)
Nothing worked, and on what I remember being a grey and dreary day, after another bout of shouting at friends in a meeting on subjects that didn’t warrant that kind of passion, Z was fired.
We tried everything we could imagine, but Z’s original conversation with his manager was true. Matt reminded all of us of that at the all-hands that was called right after. Matt was torn up, clearly unhappy that things had come to this with someone we all liked, but he was clear: we’ll try our best with everyone, but nobody is irreplaceable.
So recently, when the CEO of a company I’m invested in and advise told me that they’d had to fire their lead developer that morning because of awful behavior, I asked what they tried prior to letting them go. The CEO said they’d talked, they’d tried to explain, there were meetings, but the company was small and nobody could stand it any longer.
And I told them they’d done the right thing.