Friday, 25 June 2021

2020 - Three Jobs In a Year (Part 2/3)

As another couple weeks went by, my CTO became increasingly vocal about his dissatisfaction towards my performance. At times it almost felt like he was trying really hard to get a reaction out of me, other than a distant and dispassionate "OK", or "cool". This was deliberate - amid all the drama, I figured that one of us in the conversation needed to be the adult. The fact that I was the one who had to be the adult, was pretty disconcerting. Sure, I was older than him by ten years or so... but I wasn't the one in charge of the Tech Department.

For the record, I'm not holding myself entirely blameless. In many cases, my performance did fall short. But his reaction was to berate, express disappointment, and accuse. In short, not entirely productive. All it did was make me distance myself, because every time he sent me a message on Slack, it was mainly for one of these things. I grew to dread hearing the Slack notification message.

A habitual
finger-pointer.

One case in particular was for the user logout feature I had created in my second week on the job. It was working fine as it was, but he wanted to add another moving part to it. To be fair, it sounded like a good idea to me at the time, as well. However, it soon became apparent that by its very nature, the add-on cancelled out the first feature, causing the entire thing to be useless. When we had a conversation on this, he made it clear that he held me responsible for this, and remarked on the fact that very little of what I had implemented so far, was a hundred percent satisfactory. In retrospect, this was probably the point where the respect I had for him began to slowly bleed away. He was the one who had screwed this feature up by adding to it, but had shamelessly decided to blame me for a mistake I considered both of us equally responsible for.

A leader accepts his share of responsibility. This guy was no leader.

However, my disgust towards him did not truly solidify until one incident took place. You can read about it here - it's number five on the list. I'm a big boy and can handle jibes about the quality of my code. But he had called my professional integrity into question, on very little evidence and a lot of impulse. Such allegations should never be made lightly, especially in front of witnesses. (Another colleague was present at the time.) And when his allegations were proven wrong, he wasn't even man enough to offer an apology.

A conversation between developers

At this time, one of the developers left the company, citing a better offer from a new company. While he was around, I took everything he said with a pinch of salt, but once he had officially left, I called him up for some real talk.

Real talk.

True enough - my suspicions were confirmed. Now that he was officially out, he spoke a lot more candidly about my CTO. And it wasn't me simply being oversensitive. I was informed that my CTO was high-strung, anal-retentive and liked to blame people for things (I'm paraphrasing here). My ex-colleague had basically been biding his time and learning everything he could in preparation to leave one day, as part of his career plan.

However, my CTO was not without some redeeming qualities. During the pandemic, I was pretty stressed out over the fact that my wife was still in China, where it had all started. On her way back, she was stuck in Singapore's quarantine facilities and every day I was receiving the brunt of her frustration as cabin fever set in. Adding to that was my uncertainty as to how I could renew her Long-term Social Visit Pass, which was expiring that very same month. Pandemic restrictions were making it devilishly hard to make any appointments, or even contact the authorities. During a private talk where my CTO expressed concern at my declining performance and asked if I was encountering any personal problems, he proved surprisingly sympathetic towards what I was going through, and assured me that taking urgent leave to settle these issues would not be a problem.

I was grateful for the understanding, and still am. This doesn't change the fact that his behavior after that was really poor. But I don't want to paint a picture that says my CTO was a complete jackass. He wasn't. Human beings are complicated like that.

My probationary period gets extended

Three months were almost up. I was expecting either to be let go or have my probation extended when the CTO set up a meeting between him, HR and me. He informed me that I had not met his expectations, and my code wasn't what he expected from someone of my experience. I took the criticism with the same amount of grace I'd exhibited during all the other numerous times, but I was also brutally frank.

His criticism of my code was valid. I was unambiguous on that score. But I had noticed that his entire code base did not live up to his purported standards. There were obvious cut-and-paste errors, things that didn't make sense, and the code was nowhere as clean as he claimed he wanted it to be, with or without my input. Yet, the way he talked about my code, it was as though I came into his company and took a massive shit all over his beautiful, perfect code base. Yes, those were pretty much my exact words. Frustration might have caused me to get a little sarcastic there, but for the most part, I kept it professional. This actually seemed to put him on the back foot a bit, though it's hard to tell over a voice call.

HR said that it wasn't part of the company culture to simply fire people for not meeting expectations, and as such I would be given another chance. I was pretty amused by this (though I took pains to hide it). She made it sound like the company was doing me such a huge fucking favor. In retrospect, it might have been kinder to just put me out of my misery right then.

Extended by three months.

The end result was that probation would be extended by another three months, and I was expected to show marked improvement by then.

This was looking increasingly like the same situation back in 2011 - faced with a boss I had no hope in hell of pleasing and almost certain to be let go at the end of the extension. I almost certainly should have said "fuck it" and just given up, but that was the easy way out and my pride wouldn't allow me to throw in the towel just yet. My CTO had said that I could do better, and I really wanted to rise to that challenge.

Also, I was pretty tired of the job-hunting process.

The situation goes further south

I tried, I really did. I examined my own code, was more cautious about what I committed, double - triple - checked everything. Got more on the ball about reporting errors, providing possible solutions, and generally got less sloppy. And in the process, I discovered a few more disturbing things about the codebase (aside from the CTO's childish comments written here and there) in the form of missing validation, lack of basic security checks and sloppy unit tests. For all the big song and dance he kept making about clean, well-organized code, my CTO's code base was a spectacular mess.

At the back of my mind, I knew my time was pretty much up and started looking out for new opportunities anyway. All the while holding out hope that things would get better.

They didn't. If anything, they got worse. My CTO started expressing his dissatisfaction with me publicly during meetings in front of the team, and singling me out for admonishment. It was as though my lack of rising to the bait was bringing out the worst in him. What was more cause for concern, however, was that when we all got together in the office twice a week, he was nice and friendly. The put-downs, the criticisms, the berating, all came via online chat or video calls. Was he the kind of bitch that automatically self-censored when there was an actual possibility of getting his ass kicked for being an asshole? I was getting the distinct impression that my CTO was a Grade A pussy.

More vulgarities.

And then the UI guy (whom I got along with pretty well) reported even more vulgarities he had found in the code - and this time, they were embedded in the front-end. Again, the culprit was my CTO. I was dismayed, but no longer surprised. He'd thoroughly smashed all expectations I had regarding his emotional maturity at this point. Sure, this was in the Superadmin module where only Superadmins would ever see that code, but those Superadmins also happened to be our company's Sales & Marketing Department. He had already shown a lack of respect towards his own department's members, and now this had been extended to other colleagues in the same company. What was next - customers?

Whatever. I brought it to his attention and requested nicely that, from this point going forward, could we not have any more instances of this sort of thing in the code base? His reply was an "lol", but I most definitely was not amused.

However, he would soon discover that there was a limit to my patience.

One Friday, he called for an online meeting just after 6 PM. I'd gotten out of the office (where I was working that day) and was in the MRT. Over the Slack call, he heard the train announcement over the intercom and demanded to know why I was out of the office. At first, I couldn't believe he was actually asking this question, so I asked him to clarify.

He did.
"I said - why are you outside?"


Boy, this pissed me off. Did this clown actually expect us to be hanging about our workstations all fucking day on the off-chance that he might want to call for a meeting? A hint of a challenge crept into my voice as I replied.
"It's after hours. What's your question again?"


He might have detected the thinly-veiled hostility there. This was met with a second of stunned silence, both from him and my other colleague present in the call. But then he changed the subject, and I felt a momentary stab of triumph, petty though it was.

That's right, bitch. Back the fuck off.

A talk with my ex-boss

A week later, I had the occasion to have a chat with an ex-boss, and spent the evening bitching about the job. I griped about what a childish remarks my CTO had left in the code base, what a mess the code base was in and how I kept discovering elementary bugs in the system that did not seem to have been discovered in the past seven (yes, seven!) years, basic security and validation not taken care of, and so on. And somewhere near the end, my ex-boss made an astute observation.

"You can't work with them any more because you no longer respect them."


That hit home. Like a thunderbolt. I had, indeed, lost whatever respect I'd had for my CTO. Not just as a professional, but as a person. There was no coming back from that one. I needed to get out, pronto.

People who know me naturally also know that I'm not a big fan of rage-quitting in glorious dramatic fashion. No, this kind of thing has to be planned. Deliberate. Not with white-hot fury but with cold, calculated precision. To that end, I checked out my bank balance, intending to project just how much longer, financially, I needed to put up with my CTO's bullshit.

Holy shit. I'm rich.

The answer staggered me. I had never needed to take any of that shit. I had never even needed this job. Somewhere along the way, I'd amassed a small fortune without realizing it. But I've already told that story and, not being a big fan of repeating myself, I'll skip on ahead.

So here was my plan. I would see out my extended probation. If I didn't make it, problem solved. If I did, I was going to leave anyway. So I needed to start the job hunting and application process now. That stint with Red Airship was one of the things my search stirred up. Again, that story has already been told; moving on.

There's drama ahead, and this is a good stopping point. Stay tuned!

Next

How I got out, and landed my final job of 2020.

No comments:

Post a Comment