Showing posts with label Slack. Show all posts
Showing posts with label Slack. Show all posts

Monday, 7 April 2025

Fare Thee Well, Skype!

It was with a fair bit of wistfulness when I read the news that Skype would be officially decommissioned by Microsoft on the 5th of May, right next month. Hard to believe that just a few short years ago, I was between jobs and on Skype speaking to interviewers during the COVID-19 pandemic.

Skype is dead soon.

Skype first appeared in 2003 as a telecommunications software application, when I was still at my Desktop Support job. Back then, my Indian boss amusingly referred to it as "Sky Pee". The setup was smooth and easy, and with this software we could talk to people all over the world instead of paying some hideously expensive phone charges. The user experience just seemed to be one of the smoothest around. The installation process was simple, a joy to embark on. I remember thinking that even just the chat feature was a lot more pleasant to use than Microsoft Messenger's.

Somewhere along the way, in 2011, Skype was acquired by Microsoft. Fourteen years later, Microsoft has decided that it is no longer tenable to continue maintaining Skype.

Why did Skype fail?

Most people have heard of the Microsoft BSOD - the Blue Screen of Death. Well, it appears what we have here is the Microsoft Kiss of Death. It may seem a little unfair to Microsoft. After all, all they really did was acquire Skype. And yes, perhaps they tinkered with Skype's inner workings just a little. And... you know what, you're right, this is all on Microsoft.

I think COVID-19 provided an even greater environment for Skype to shine. In those dark days, due to the need to avoid close physical proximity, video calls became a necessity. However, COVID-19 ironically was also one of the factors hastening Skype's downfall, because it provided that very same environment for Skype's competitors to shine.

Left behind in the race.

And shine they did.

Google Hangouts, Oracle Zoom, Slack, Microsoft Teams. WhatsApp. Instagram. Even TikTok. All of them provided video conference features (Instagram and TikTok to a limited degree) and it was clear that Skype was being quickly outpaced. And since Microsoft was understandably more concerned with supporting Teams, Slack had become an afterthought. 

And like most afterthoughts, Skype eventually faded into obscurity. Software has to be relevant in order to survive. And in order to be relevant, software has to evolve. Under Microsoft, Skype was dead in the water. 

Goodbye, Skype!

We had great memories together. Countless memorable conversations were had in your pale blue-and-white interface. There should be a special placed reserved for Skype in the annals of software history - arguably the first of its kind.

The Skype's the limit,
T___T

Monday, 28 June 2021

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

The day of my next performance review arrived. However, in the morning, the was a bit of a hullabaloo over something I can't quite remember, and I asked a question. His reply was public, and scathing.

"Stop asking stupid questions, it doesn't help."

This raised an eyebrow. This guy wasn't even pretending to be nice anymore. He sure wasn't holding back. Fine. He wanted to play this game? Confidence bolstered by knowledge of my finances and my eventual plan to leave, I was more than willing to oblige. I held my peace, biding my time till the time for the performance review came.

HR was in the call, and before my CTO arrived, she told me that he could be a little high strung and come across as curt at times, leading me to suspect that this wasn't the first time he had rubbed someone the wrong way. However, she assured me that my CTO was "not a malicious person". I don't think the lady actually understood the problem. It wasn't malice. I had never considered my CTO to be a malicious person. My problem with him was that for a dude in his mid-thirties, he had the emotional control of a teenager.

Then my CTO arrived in the call. He started off by saying that while he had noted some improvement in my performance, he still wasn't confident in my ability to work in the company and he would continue to keep monitoring. He brought up certain concerns such as my perceived slowness in replying in the Slack chat, and actively encouraged me to "defend" myself against his accusations. I was amused at this. This guy wanted a fight? He had no idea what was coming.

It was my turn to talk. Here, I applied the Sandwich Method that I had learned during my ACTA days - start with something nice before saying something negative. I led with how much fun I'd had in these six months compared to the last three years at the previous, much larger company, which was the truth. The variety of tasks assigned to me had made things a lot more interesting. He seemed to be tickled pink by this.

Time for the stick.

And then it was time to give him the stick. The guy never suspected what he was walking into.

I began voicing my concerns, like how the things like code cleanliness and organization that he kept saying he valued and were missing in my work, just weren't present in the existing code base either. It was a huge mess, with me having to fix problems that had existed for years. Like the recent Cross-site Scripting vulnerability issues, that I'd already brought up in my first few weeks at work. I had thought it was bad; now that I stepped up my game (as he had wanted me to do) and actually started proactively looking for ways to improve the code base, it was worse than I initially thought. I stopped short of saying his code base was garbage, but the implication was clear: I blamed the tech leadership. Honestly, I figured that since this guy enjoyed pointing fingers so much, he wouldn't mind receiving some of the same. Seems fair, right?

Nope!

In a nutshell, he blew the fuck up. Accused me of trying to turn this performance review around on him, and questioning why I chose to bring it up now rather than during Tech meetings. He told me I should be more careful with my words (rich coming from him, really) and yes he was doing a bad job which was precisely why he needed people like me to step up. As he raged, HR had to step in and try to smooth things over.

On my part, as I calmly sat there and smoked a cigarette, listening to his raving through the computer screen and HR trying to stop him before he went too far, I couldn't help feeling unbelievably smug. This had turned out better than I had anticipated. My original intention had been to gently point out that the existing code base was every bit as crappy as his opinion of my work, and that he should maybe assume some responsibility being the CTO and all. Instead, he had chomped down on the bait like an idiot, and his little meltdown in front of HR was showing exactly what I thought: this guy was a loose cannon.

Aw, poor baby. I think I hurt his feelings.

Some of you may be asking; what did I hope to gain from this? Well, nothing at all. I understood that he had all the power in this contest of wills. But I had absolutely nothing to lose here; mentally I had already checked out and was prepared to be fired on the spot.

More importantly, my point had been made, and I hope it wasn't lost on him. All those times he had been putting me down in front of the entire team, he had forgotten one thing: I was a no-name web developer with no reputation to hurt. He, on the other hand, was the CTO and co-founder of the company. Should I ever decide to actually stop holding back, I could do a lot more damage to him than he could ever do to me. This was merely a scaled-down demonstration on my part; I had humiliated him in front of HR rather than the entire Tech Department. Actually, scratch that - I had exploited his weakness and caused him to humiliate himself. After all, regardless of the critical content of my message, I had unfailingly been polite and professional.

He had been punching down constantly. But once I started punching back after six months of taking his shit, I made sure it fucking hurt.

I was smiling the rest of the day, after the review ended. It later struck me that I hadn't had the opportunity to apply the last piece of the Sandwich Method as originally planned. HR had ended the meeting in a hurry.

In hindsight, though, I recognize that what I did to my own CTO is nothing to be proud of. No matter what a childish asshole he had been, I had allowed myself to be dragged down to that level.

Shit, I was supposed to be better than that. What had I become?

I'm not sorry it happened to him, because he pretty much had it coming. But I'm sorry it had to be me who did it. I've always prided myself on being above this sort of thing. This incident had shown me that when push comes to shove, I'm as capable of petty cruelty as anyone else. Hopefully, going forward, this does not become a pattern. It would make me a truly frightening employee to hire. Most people think that the revenge of a disgruntled tech geek is to hack databases and destroy code bases. No, what I had done was far more insidious... and legal to boot.

Getting the axe

And then it happened. One Thursday evening, he messaged me on Slack to berate me about yet another mistake I'd made, and admittedly it was a sizeable one. He told me to fix it by morning, and I actually made an honest attempt to do so.

In the morning, out of the blue, the DevOps Engineer sent me a message on Slack. As I no longer have access to that conversation, I can only recreate it from memory.

Him: I'm so sorry to hear what happened, and I just want you to know I had nothing to do with his decision and hope you find something soon.
Me: Oh, am I getting fired?
Him: Oh fuck, you didn't get the email?


Well, there you go. I wasn't sure I could look down on my CTO even more at this point, but kudos to him, he certainly was making a case for it. Not only had he fired me via email (what a spineless move - even the last guy to do it back in 2011 had extended me the professional courtesy of doing it face-to-face), he'd screwed even that up by sending it to multiple people... except me.

The charitable interpretation is that the CTO had finally had enough of me making mistakes and decided to just put me out of my misery instead of dragging out the probation process any longer than he already had. The cynical interpretation is, well, I'd finally given him a plausible excuse to do what he was itching to do.

I received the email in question, after the CTO re-sent it. The first two lines went along the lines of "your contract has been terminated as of September 11, 2020" and I didn't really bother to read the rest. I mean, I did scan the contents of the following paragraphs, all pertaining to how I failed as an employee, in cringey broken English to boot. But it was ultimately unimportant. The most relevant lines were the first two. There was only one thought running through my mind.

Saved by the axe.

I was free. Free of this douchebag and his appalling behavior.

The first thing I did was to inform my family, and my soon-to-be ex-colleagues. And then I took a nice long coffee break. Rather than mull over the fact that I had effectively just been fired, I was actually more tickled by the fact that it had happened on September 11th.

Aftermath

Sure, this was a stressful six months. But I have really very little to complain about. Swear to God, I've had worse.

After all, however unpleasant I found my experience with the CTO to be, I did absorb whatever lessons I could. I picked up new tools, new techniques, and got to apply some stuff that, up to this point, had been little more than a hobby. I collected yet another interesting war story to add to my ever-growing collection. And I got paid for it.

On the CTO's side, if my work was really as useless as he claimed it to be; well then, I guess some poor sucker just paid me six months to deliver jackshit, didn't he? It could just be me being a hopeless optimist and overly determined to seek out that silver lining, but I honestly don't see myself as the loser in all this.

The silver lining

I may have failed to hold on to the job, but my failure was professional. I had merely failed to meet my CTO's technical expectations. His failure was far more spectacular - he had failed to meet my expectations of emotional maturity. He had failed as a person. The company had gotten rid of an underperforming dev, but it had retained a far larger problem - someone in a position of authority who simply did not have the correct temperament.

Landing that next job

The next two weeks were pure bliss. I swam every day. I wrote code, practised on my new MacBook Air and played games on my phone, all the while applying to jobs and attending Skype interviews. I wasn't worried despite the COVID-19 situation. From experience, getting a job took months. But I had already checked my financial reserves. I was good for a few years, especially since my parents and wife were being very understanding about the entire situation.

All the while, I kept in contact with my ex-colleagues from that company, and their daily complaints about taking on my workload was like music to my ears. Hey, I no longer had to deal with that shit.

And then one evening, my ex-boss took me out to dinner and introduced to me the Director of an F&B company, the guy who would soon be my next boss. We talked about career goals and business plans over dinner and a cigarette. And next day, he messaged me to tell me to get up to speed on WordPress, while he got HR to prepare my application.

Shit, that had escalated quickly. But I liked the dude. And while my nice break was a lot shorter than I had originally envisioned, I was perfectly willing to work for him despite the fact that the office was at the other end of the island.


YouTube tutorials

I got to work, watching YouTube videos on how to code in WordPress, and one day before I was due to start work, I was already being drafted to attend meetings.

There was some consternation the next day with HR when I discovered that my probationary period would be six months. And that my job title was "Manager" of the newly-created InfoComm Department. I was slightly mollified at my generous pay package, which was far more than I'd ever been paid. But still... Manager? Christ!

The first two weeks were a bit of a struggle as we sussed out each other's working style. I found that my sometimes obsessive style of working meshed nicely with his propensity for hustling late into the night. Eventually, I ended up working from home again because the traveling was eating into the working time. I was tasked to bridge the company's e-store to its CRM (a success story in its own right), and by the third week, we deployed to Production.

Six months later...

My probationary period has officially ended. In the space of that half-year, I have deployed an ungodly number of features, met insane deadlines and in the process expanded the code base by roughly five times. The code base was a mess, but my boss didn't care as long as shit worked, and was delivered promptly.

It was hell at times, doing all that work all by my lonesome, but I'm happy. The fact that I have money and don't actually need the job, probably helps. And what I like about my current boss is, while the deadlines he throws at me are sometimes nuts, he has the sense to trust me to do my job and stay out of my way.

And just as importantly, nobody questions my worth to the company. Even in the short time that I've been there, my presence has most definitely been felt. If not in terms of my personality, definitely in terms of the work I've done.

Meeting targets.

More than once, I've been given the chance to show the company what I'm made of, and I like to think that on most occasions, barring a couple mishaps here and there, I've stepped up. There have been no major conflicts. Things could be better, but as I've recently experienced for myself, they could also be hell of a lot worse.

OK, I'm done!

I don't write all this with the intention of besmirching my ex-CTO's good name. Note that the name of neither CTO nor company was mentioned. Not once. Some developers don't have a problem openly trashing their former employers. Not my style. If I speak of any former employers, whether it be good or bad, they will always remain unnamed. That's just how it is.

Also, I have no personal interest in what befalls him or the company. This is merely an interesting story about yet another asshole boss in yet another short chapter of my career. Gotta admit, this lovely character gave me plenty of material. If you managed to learn something from this, great.

And this also marks another period in my life where I worked in three different companies in the space of one year. It's been nine years since the last time, and I'm getting too old for this shit. Still, I can take something positive from this. The fact that I could lose my job, and secure another one just like that - in the midst of a global pandemic, no less - tells me good things.

Talk about third time lucky!
T___T

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.

Tuesday, 22 June 2021

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

2020 was a roller-coaster ride for the entire world, for obvious reasons. COVID-19 made its toxic presence felt, and lives were merrily thrown into disarray. For me, professionally, there was an extra layer of chaos because it was during this year I went through an experience that I had hoped never to repeat from 2011 - going through three different employers in one year.

At the beginning of the year, I was a tech contractor from one of the world's largest tech firms, outsourced to a Government Statutory Board. My finances were healthy, I had learned plenty of new stuff, and once I learned to look past certain things, my colleagues were tolerable. Trouble was, I was bored out of my mind and it was beginning to show. I was goofing off at work, dozing off during meetings and basically not being altogether useful. It didn't help that the project I had been hired to work on was coming to an end, and all I had to look forward to, even if my contract was renewed for a third time, was another year of dreary maintenance work. There was very little in it for me to stay.

Running out of time.

To cut a long story short, I wanted out. It had been good while it lasted, but I really didn't need another year of this.

At that time, COVID-19 had just hit the sunny shores of Singapore and changing jobs was looking increasingly like a terrible idea. On the other hand, it was a now-or-never situation.

Preparing to Leave

Six months before my contract was due for renewal, preparations were well under way. I polished up my resume with all the value-adding stuff that had been accumulating the past few years. I sent forth my job applications like a commander releasing his battleships, and embarked on job interviews.

And that was how I ended up interviewing at the startup that was to be my next job. The interview went well enough, and at the end of it, I did the obligatory online assessment and went for a third round with the CTO, going through some tech scenario. The place was near home, and everything looked promising. If I landed the job, I would have to be comfortable with PHP Laravel. But to be honest, after all these years experimenting and actually working with so many different frameworks, they were all starting to look the same by now.

Life went on after the interview, and there were a few weeks left before the end of the contract with my employer. They offered me a contract renewal, but I needed time to think about it. That night, I got a call. It was from the HR of the startup that I had interviewed at. She was calling to offer me a contract. When she actually sent the PDF over, I didn't hesitate to sign it.

New horizons.

The money wasn't much better than what I was already making as a contractor, and I was fairly confident that had I accepted a contract renewal, I would have been making the same amount of money. But not everything in life is about the money. When you gotta move, you gotta move.

Leaving

The next day when I broke the news, my Manager's reaction was priceless. He said that according to the contract, I was supposed to give a month's notice before tendering my resignation. I pointed out that he was absolutely correct... but I wasn't tendering my resignation. I was merely declaring my intention to see out the remainder of my existing contract (all three weeks of it) and declining the offer of a renewal.

On a side note, this struck me as amusing because I've seen contractors being let go, and they always claim they weren't fired, but rather that their contract was not renewed, which is technically true. And now I was declaring the exact opposite - I wasn't tendering my resignation, just not renewing my contract.

The next few weeks went by fast. COVID-19 started making its presence felt in Southeast Asia, and very soon, we would all be asked to work from home. On the last day in the office, I wrote a short and sweet farewell email.

Dear all,

Goodbyes are awkward. Have some pastries instead.


Farewell food.

I left a bunch of curry puffs and fruit tarts on the common desk, went out for a smoke break, and when I returned to my desk, a good three-quarters of it was gone. I also took care to thank my contract agent for the years of managing my contract and negotiating pay raises on my behalf (side note, this guy is amazing and did better for me than I would ever have done myself) and at his request, even wrote a complimentary review which ended up on the company website.

Thoughts about the contract situation

If my company had renewed my contract much sooner, it's very likely I would have stayed for lack of other options. Unfortunately for them, they took their time about it. On its own, losing me is no big deal, but I wasn't the only one who declined a renewal. Including me, a full quarter of the team left; and the Manager of the our service account at the Government Statutory Board was put in the unpleasant position of simultaneously dealing with the fallout of a global pandemic, which meant that very few people were about to take the risk of leaving their current jobs for a contract position.

A long line for the job.

Perhaps they felt that as one of the largest tech firms worldwide, there would be no shortage of people willing to take up contract positions for them, and they could afford to take their time. Perhaps they felt that a firm in their position was, shall we say, leading the dance. But they failed to consider the fact that with the caliber of the people they hired for these positions, these people generally have options. And people who have options are generally not known to be content with lying back and just hoping for the best.

Take nothing for granted. Ever. This applies to both employers and employees.

The Next Job

The rest of my contract was served from home, and I began prepping for my next job by taking a crash course in Laravel. Gradually, I began feeling something that had been missing from my professional life for the last couple years - excitement. In the process of trying to pick up Laravel, I also learned VueJS. Some quick experimentation led to the code from The Easter VueJS Puzzle.

The first day at my new job was also the day that Singapore's Circuit-breaker began. It would be the first time I had ever joined a new company without meeting my colleagues. The only person I met was the CTO, who issued me a MacBook Pro and a list of software to install.

And thus began life at my new company. It was on.

Singapore's Circuit-breaker was very much in force in my first few months at work. People had to adjust to working remotely. That meant online meetings and collaboration through chat. It actually wasn't so bad because code and commits are tools developers use all the time. I had to get used to the other tools that the CTO introduced - bug-tracking suites, Kanban boards, API clients. We used Slack to communicate and share files.

My home workstation.

There was also this small matter of getting used to the MacBook Pro. I hadn't used a Mac since 2017. I did, however, get a sweet setup going at a standing desk in the living room.

The CTO also said that he would ease me in slowly with some small tasks first. I implemented a couple of new small features along with corresponding unit tests, a user logout feature and a dashboard that featured some Data Visualization (I was psyched to finally use D3 in an actual scenario). I was having a lot more fun in the first three weeks than I'd had in three years in the previous company.

Some early disturbing signs

However, all wasn't rosy as time went by. My CTO gave me the distinct impression that he was low on patience, had a short fuse, a bit of a control freak and was prone to finger-pointing - qualities that I don't consider admirable of any person in a position of authority. His criticisms of my code, however, were valid, and I took whatever lessons I could get from the code reviews. I was a big boy; I could handle bluntness and a lack of social graces. After all, nobody's perfect.


Still, while perusing the code base for a new feature I was to implement, I came across something I found deeply troubling. Above a block of code that had been commented out, there was a comment that had been left there a few months before I joined.

// Fucking idiot programming logic


Now, it would be hypocritical of me to get my knickers in a bunch over some profanities, considering I've been known to use them quite freely myself. What I objected to, was that it had been written in the code base. This was highly unprofessional, and I had a bad feeling that I knew who had put it there. Sure enough, after a bit of digging into the code repository, my worst fears were confirmed. My own CTO was the culprit.

Why was I disturbed over this? As mentioned, it wasn't so much the profanities. It was the fact that he had opted for such a juvenile way of expressing himself rather than confront this openly. A quick search found other sarcastic and vitriol-laden remarks in the commit comments directed at God-knows-who, ranging from a few months ago to years. Suddenly, my CTO wasn't looking like such a great guy after all. He certainly had long-running unresolved personal issues.

Willfully blind.

How did I handle this? I'm not proud of it, but I opted to ignore it for now. I was still under probation and didn't want to rock the boat. Perhaps he had simply been in a bad mood on those occasions. Perhaps it was work pressure. Maybe nobody told him he was handsome. At this point, I was just making excuses for bad behavior, and trying to rationalize it away.

Next

The next five months were excruciating. It's a long story, so make yourself comfortable.