Showing posts with label Life as an Economic Digit. Show all posts
Showing posts with label Life as an Economic Digit. Show all posts

Wednesday, 13 August 2025

A Tech Professional's Takeaways From Coldplaygate

Everyone's probably heard of Coldplaygate by now; certainly it seems like everyone's talking about it. The scandal involves tech company Astronomer, and its then-CEO Andrew Byron and HR Kristin Cabot. While it does qualify as a tech story in the sense that Astronomer is a DataOps tech company, I've put off talking about it up to now.

Why? Because, well, there were just other, more compelling things to talk about. I mean, the scandal essentially revolves around two high-ranking colleagues Byron and Cabot having an extramarital affair. It's basically two people at the workplace getting into trouble because they couldn't keep it in their pants. Nothing terribly new or original about that, is there?



What happened was that on the 16th of July at a Coldplay concert, frontman Chris Martin was shouting out concert-goers that the Kiss Cam picked up. And the Kiss Cam just happened to fall upon Byron and Cabot in the audience.

It would have been less awkward if the two of them had been in a chest-to-chest bro hug. No such luck; they were in full-on Titanic pose. Byron could have claimed he was giving Cabot the Heimlich, except his hands were entirely too high up, doing his best imitation of a Victoria's Secret underwire product, for that to be a feasible excuse.

The two of them scattered like Flat-earthers confronted with facts, and within twenty-four hours, the Internet identified the two of them as colleagues who were married... to other people.

All in all, a shitshow for Astronomer.

My takeaways to this entire thing aren't moral. Everyone seems to already be on that dog-pile, and there's no real value in me joining in. Also, I'd like to keep this about tech, or at least about the professional space.

Decision-making

Sure, obviously, the entire thing is unprofessional AF. And also kind of dumb.

Cheating on your spouses is one thing; doing it in a packed and very public stadium and expecting nothing to go wrong, is both stupid and reckless. Not exactly the kind of decision-making that inspires confidence in a Board of Directors.

Decisions, decisions.

I'd expect the CEO of a company, whose decisions affect the livelihoods of employees of said company, to make better decisions. Then again, I'm just a software dev, what the hell do I know about decision-making, right? Well, for one, I wouldn't make the decision to put myself in a position where I could be caught live on camera using my hands to keep my sidechick's mammary glands warm.

The faked apology

Soon after the incident, there was an apology posted by a troll account, pictured below. It appeared to be a post from Andy Byron addressing the events of Coldplaygate.

This fooled many people.

This was debunked fairly quickly, but apparently a lot of people were convinced it was real, and it spread like wildfire. Andy Byron was being roundly mocked for being both tone-deaf and an idiot. Unfairly, in this case.

But here's the question: why did it seem so real?

The reason, dear readers, is disheartening. Too many people in positions of authority, when called out for behaving badly, post insincere-sounding apologies like this one. Usually along the lines of "this is not who I want to be" and "I am a work in progress", and even the shade thrown at Coldplay at the end did not appear out of character simply because it happens so often. That level of entitlement is all too real, even if the post wasn't.

The simulation was, if anything, too on-the-nose. There was no A.I and deepfake involved in this deception; the troll account wasn't even trying that hard. This is deeply concerning.

LinkedIn Profiles

On Kirstin Cabot's now-inactive LinkedIn account, she described herself as "a passionate people leader known for building award-winning cultures from the ground up for fast-growing startups and multinational corporations. An influential leader and fearless change-agent, I lead by example and win trust with employees of all levels, from CEOs to managers to assistants."

Just reading that made me throw up a little in my mouth. If you want your LinkedIn profile to sound as cringe as possible, you could do worse than take notes from this one.

Word salad.

Can someone say "word salad"? What is the term "fearless change-agent" even supposed to mean to anyone? What's even more disturbing is, this is supposed to be a HR professional. Is this the kind of garbage that impresses HR? Or is it just some kind of SEO for A.I-powered recruitment? Either way, if this is the new normal for both job-seekers and hirers, we are so screwed.

Much of the sniggering has been about how someone with such a self-aggrandizing LinkedIn profile could turn out this way, but honestly, I've never held such profiles in high regard. If you're someone that would be impressed by fancy words on a LinkedIn profile that a thesaurus could vomit out, that's on you.

Conclusion

I wouldn't be too hard on Andy Byron. Not everyone can handle being in a position of power. Tends to go to ones head, you know? Both of them, in some cases. Heh heh.

Also, Kristin Cabot. Sure, call her a skank, homewrecker, whatever. But her being HR aside, what's she really done that's so different from every other woman who ever cosied up to the Boss?


Looks like they got (cold)played,
T___T

Friday, 8 August 2025

The Curious Case of the Oddly Fragile Software Engineer

Earlier in the week, I happened to come across this article on Substack. It was titled The Manager I hated and the lesson he taught me by one Stephane Moreau. I was immediately intrigued because I am a software developer and I've worked for people I hate.

Well, actually, hate is a strong word. It's hyperbolic. Do I like them as people? Not at all. Do I wish physical harm or financial ruin on them? Not really either, no. In all fairness, if they were on fire, I might hesitate only a full five seconds before rushing over to help them like a decent human being by stamping on them as hard as humanly possible - to put the fire out, you understand.

When someone's on
fire, stamp on them.

Most of all, I'm a proponent of the idea that you can learn things even from people you don't like. Sometimes especially from people you don't like. Like, how many of such people have I learned from, how not to be a jackass? Countless!

But I digress...

The intention today was to discuss Stephane Moreau's thoughts on the manager he hated. His larger point I have no issue with - what I found really interesting was his description of what caused him to hate that Manager.

From what I saw, it started with a code review in which the Manager had this to say.
Over-engineered. Too many moving parts. Refactor.


This seemed pretty straightforward to me. A statement, an explanation, and an instruction, all in three short sentences. Moreau, however, didn't think so. This is what he had to say...
That was it. No "nice work". No "good attempt". Just a hard stop.

I sat there, fuming. I thought, "Does this guy enjoy tearing people down?"


Getting shot down.

Gee, I dunno. This seemed a bit much. I thought the Manager's comments were clear enough. What had Moreau been expecting, an essay? I didn't understand the part about "tearing people down" either. In fact, I feel like if the Manager had prefaced it with "nice work" or "good attempt", it would have felt patronizing. Which is perhaps worse than being curt. I don't need to be treated like I'm special. I do need to be treated like a professional, and that cannot happen if the Manager is feeling the need to (metaphorically) pat me on the head and throw me a bone.

This is why I can't relate

There was another line which Moreau took exception to, and at times described as "brutal".
This is fragile. What happens under load? What's the rollback plan?


And this.
You're thinking like a coder, not an engineer. Build things that survive failure.


I have received feedback like this before from my then-CTO. I was told that I approached things like a coder, and he expected more. I had no problem with this feedback, and would not have described it as "brutal". 

What baffles me is that the only way the Manager could be seen as "tearing people down" was if Moreau had seen himself as being above that kind of criticism. And in contrast, I've never seen myself as anything but mediocre. Frankly, from reading Moreau's stuff, my perception of him is that he's a humble and chill kind of guy, so perhaps he was merely relating a story from when he was young and dumb.

Like a kid with crayons.

Know what's brutal? Having your work torn to shreds and being told you write code like a toddler who just got crayons. Outright questioning what you contribute to the company. That's what I got from the above-mentioned CTO. Honestly, if Moreau had received that kind of feedback, I wonder how he would have wilted. The entire article just made Moreau look fragile, like some kind of snowflake.

Perhaps the culture in the Southeast Asia is just a lot different from the UK. Perhaps the general problem is that we're just not such a warm, nurturing environment. Here in sunny Singapore, I have the memory of being conscripted into the Singapore Armed Forces at the tender age of 19, and being yelled at by platoon sergeants on my first day... and my first thought was: Bitch please. You're think you're scary? I have a Cantonese mom.

In summary

Moreau made a whole slew of valid points in his article. I don't actually disagree with any of it. What I do take issue with, is the examples he used. As far as I'm concerned, those weren't put-downs from his then-Manager. If he wants put-downs, I've got some really savage ones.


Nice work, TeochewThunder. Good attempt!
T___T

Saturday, 19 July 2025

Five Reasons to learn Web Development in 2025

Recent events such as the rise of generative A.I, have made tech work a little less attractive than it used to be. Web development, in particular, has suffered. That's probaby because a large chunk of web development is automatable, and even before A.I came on the scene, there had been numerous tools such as Content Management Systems and Low-code development platforms.

Thus, web development being automated by A.I was par for the course.

Robots writing websites.

Still, not all is lost. While web development might have lost much of its luster, there are still good, strong reasons to pick it up in ones tech career. Unlike the tech reporters and HR executives who write listicles like these, I have actually been a web developer before. I speak from experience, my dudes. And following are some of the most compelling reasons I had, in no particular order of importance, for going down this path.

1. No complicated installation

Ever tried to learn a language like PHP or Java? Every single one of these languages requires you to set up some kind of compiler or interpreter environment. PHP requires an Apache server. Java needs the Java Runtime Environment. You can write all the code you want, but until the code gets compiled or interpreted by the environment that you have to install and set up, you're not getting even a Hello World program done.

All you need is a browser.

HTML, CSS and JavaScript, however, do not. All of them already run in any major browser - Firefox, Chrome, and so on. In effect, the environment is right there for you.

This is not to say that you will never need to do any complicated installation. But for the basic building blocks - again, HTML, CSS and JavaScript - of web development, you don't. You will need to do that when you want to pick up a server-side language and maybe databases and definitely for the NodeJS style of development. But for basic stuff? Even the slightly more advanced stuff? Nope, not even a little bit. That is a lot more than you could ever say about other programming languages or platforms.

2. Good skill spread

When you learn web development, you learn HTML, CSS and JavaScript as a base starting point. That's already a good spread right there.

HTML and CSS are where you learn front-end and possibly even design. When you learn JavaScript, in addition to all the things you pick up when learning a programming language such as operators, arrays, branching and iterative logic, you also learn asynchronous operations and DOM manipulation.

A good spread of tools.

That's not to say that other tech disciplines don't have their own unique perks. But where it comes to the skill spread, web development wins. I don't think anything else even comes close.

Once you get past the basic toolset of HTML, CSS and JavaScript, back-end programming and databases will come into play. It's never just web development. Even if you are averse to the thought of being a humble web developer for the rest of your career, there are far worse places to start.

3. Resources

Now, when I say "resources", I don't just mean documentation, references and learning materials, though there's plenty of that, yes. But web development is not special in that regard because any other tech discipline boasts plenty of learning resources and a community dedicated to helping each other learn.

A good learning
community.

Though, in this case, web development has something extra.

You see, every humble HTML page on the internet can have its source viewed and played with in the browser, reverse engineered, and so on. Every URL on the internet is potentially a resource for learning, much like how I learned to cobble together JavaScript widgets decades ago.

In contrast, it's not possible to just take any desktop application and reverse-engineer the code, because the code has already been compiled and is no longer human-readable.

4. Ready use case

Often, when learning a programming language, it's helpful to be able to use newly-acquired skills to build something, so as to really hammer home the muscle memory. Something both relevant and useful, preferably. Not that Hello World programs don't have their place, but if one wishes to level up, better use cases are the order of the day.

And with web development, those use cases are almost too easy to find. Web development creates web pages, at the minimum. And after that, at varying levels of complexity, web applications. One does not have to stretch too far to find something worth building... and because it already exists, you know that it is both worth building and possible to build.

Applying what you learn.

My larger point is that what you learn can readily be applied. Not just in creating and editing websites, but in general software development. This also means that your chances of landing a job with that skillset cannot be understated. In this day and age, web developers are perhaps not nearly as in demand as they were a decade ago, or paid nearly as well, but the skillset goes beyond just web development.

For example, a lot of existing software already leverage things like REST API endpoints. These are basically URLs, which are pretty much the backbone of the web. REST is an almost inescapable part of the whole web development deal. Ergo, if you deal in web development, at some point you are going to be dealing with REST endpoints, which overlaps a large part of software development regardless of discipline.

Or even mobile development. In case you weren't aware, a large chunk of mobile tech is basically HTML, CSS and JavaScript.

I could go on... but do I really need to?

5. No gatekeeping

In the legal profession, there's the Bar Exam. In the medical profession, there's the Medical Regulatory Authority. In tech? Other than job interviews which exist at almost every industry, there's almost no gatekeeping in tech. Even the requirement for Degrees of Diplomas is not a really hard one.

When I say "no gatekeeping", I don't mean that nobody tries to gatekeep. The fact is that many people try to gatekeep, but it just doesn't work because to gatekeep, one needs a unified set of standards. It's almost impossible to establish said standards in a landscape as varied as tech, whose goalposts shift constantly.

The gatekeeper.

And while this inability to gatekeep exists in many areas of tech, none moreso than web development. HTML, CSS and JavaScript are fairly stable at this point, but these are just the base technologies. Their offshoots - frameworks, libraries and the like - keep springing up like mushrooms. And when you consider databases and backend programming languages, the possibilities multiply even more.

All in all, one could come in anytime in web development, and still be relatively fresh and relevant. No one can stop you from making and publishing web pages and applications, not in the same way they can stop you from practising law. You don't need a license to write code, so nobody can revoke it.

Some clarifications

The reasons stated here are in relation to those for choosing other tech fields. Why, for instance, web development when you could go for Data Analytics or cybersecurity? Reasons specific to web development.

I was inspired to compile this list because there are a lot of vague, generic and - to be brutally honest - trite lists out there on the web that extol the virtues of web development. Hopefully this is a better list.

<html>Bye for now,</html>
T___T

Monday, 7 July 2025

A Good-bad-ugly Analysis of Vibe Coding

The term "Vibe Coding" came out around February of this year (credited to Andrej Karpathy, co-founder at OpenAI), to describe the phenomenon of people using generative Artificial Intelligence to write code without going about it the "traditional" way. The general way Vibe Coding works is, one feeds in a series of prompts containing requirements to the A.I, and the A.I produces an application which the user then, again with the A.I's help, continues to refine.

Only vibes needed to write
code.

And that's Vibe Coding. None of the traditional processes, thinking things through, making sure the logic is watertight... not at first, anyway. The idea here is to spin up something quickly and then include these things as we go along. See the emphasis on the word "quickly"? That's because this is going to be a rather important consideration.

I will commit to saying that A.I will not produce better software. A.I will produce exactly the same error-prone, bug-ridden, rickety code that it was undoubtedly trained on... but at a blindingly fast pace.

I actually tried Vibe Coding with OpenAI's ChatGPT and (to a lesser extent) Microsoft's Copilot, and the results were... interesting.

The Good

You use natural English, which then gets interpreted by the A.I who will then leverage upon its knowledge of code, to spin up a quick prototype for you. Creating an application is no longer the province of software developers who have spent years plying their trade. You no longer need to have the know-how or technical expertise. You no longer need to be qualified.

When I was Vibe Coding with ChatGPT, I revelled in the fact that I no longer needed to write code if I didn't feel like it, and deal with my own typos. No, all I needed to do was give some big-picture instructions to ChatGPT, then copy and paste code wholesale to the code base without thinking too much about it.

Quick building with
no expertise.

When it comes to developing rapid prototypes without the need for proper technical training, this method of coding is second to none. What the users do is indulge in a fantasy where they are actual qualified engineers, and create software simply by describing what they want. Jensen Huang's stated dream of everyone being a programmer inches closer to reality. Without training in logic or tech, you create by feel. By vibes. Hence, "Vibe Coding".

Also, without due process. None of the usual procedures that developers use to create the product before actually writing the code. The flowcharting of the software product's information flow. The whiteboarding. The test-driven development. No, what the user does here is declare intent to the A.I, and the A.I creates the closest approximation from all the code that it has been trained on, with customizations that may fit in with the user's requirements.

And that was what I did. I gave ChatGPT instructions - some specific, some less so, and let it cook. I was careful not to give it too much to do at once. The process had to be very incremental. Less mistakes seemed to be produced this way.

The Bad

As one may suspect, it was not all smooth-sailing. Some of it was my fault. I fell into the trap of treating ChatGPT like an actual human being instead of being explicit. Thus, I was sometimes vague, and when I got frustrated, I turned to sarcasm.

Which certainly didn't help my case.

ChatGPT did stuff I didn't expect. In some cases, it constantly broke things by making changes I never asked for, because it thought it was being helpful.

Breaking stuff.

When I was vague and things still turned out the way I hoped they would, however, it only served to tell me that it wasn't because A.I was particularly gifted in this area. It was more due to the fact that my requirements were actually pretty standard and it had been trained on these types of requests prior to me, over and over.

I have no reason to think that the experiences of others would differ too much from mine. Human beings are made of flesh and blood, and can be annoyingly vague.

There were others in the team who Vibe Coded as well, making more progress than they would ever have had with their limited technical foundation. Yet, the code was problematic. It was full of security and logical holes. The code that I created using Vibe Coding didn't - but that was because I knew the correct instructions to give. I knew to ask about CSRF protection and SQL Injection. I knew when to use slugs instead of database ids in the URL.

In the absence of this, someone who wasn't technically-trained wouldn't know enough to ask the right questions, and A.I might not necessarily volunteer the information.

The Downright Ugly

Vibe Coding automates much of the tedious, repetitive and altogether unexciting parts of software development. Tests, scaffolding, validation. Stuff that has been done to death. Unfortunately, it's through these exercises that software developers learn. And young devs who haven't done these things to death, stand to miss out on some great learning opportunities.

A.I is an obsequious
apple polisher.

I've also noticed that A.I is just a little too agreeable. ChatGPT acts like it has a wife and seven kids at home to feed, and it's terrified that it'll get fired if it so much as steps on my oh-so-precious feelings. ChatGPT didn't push back when I made typos or got something wrong. And this is problematic because developers find a lot of value in being told when they're doing something stupid inadvisable. As opposed to having their butts constantly shined by A.I. 

Being told "You're absolutely right" or "Sharp observation!" in every other exchange does nothing but promote complacency. Plus, it's just tiresome. That's not the way to learn.

Conclusion... for now

Do I think Vibe Coding is a good thing? Yes, and no. It's all context.

As a software developer, I feel professionally obligated to say that this "Vibe Coding" trend is rubbish and you should all be ashamed. Then again, the would-be gatekeepers of programming, I suspect, would be all-too-happy to sneer at someone as mediocre as myself because I don't engage in certain approved practices. So, they can go kick rocks.

Go kick rocks!

From the POV of a layperson or even the perspective of a pragmatist, things aren't so cut-and-dry. I have no duty towards promoting "good code"; my goals are business goals and the viability of "Vibe Coding" should be viewed through that lens.

Whatever your stand is, really depends how far you want to think ahead. How far should one think ahead, anyway? More food for thought, for another day.

There's also the possibility that I'm just not doing it right. Cut me some slack now, it's not like there's an established user manual for that shit. We're all just figuring it out as we go along.

Good vibes all around!
T___T

Thursday, 3 July 2025

Like a Sailboat in a Teacup

Over some coffee and chat, an ex-classmate was reminiscing about how, back in the day when we were all teenage idiots, I got so pissed off at one of our mutual classmates that I didn't speak to him an entire year. This happened over thirty years ago, so I'm not sure what productive reason there was to even bring this up. Perhaps sometimes I give people the impression that I'm altogether too impressed with myself and need to be occasionally reminded that I was once a stupid kid.

Which really isn't saying anything much because we were all once young and stupid.

Old and chill.

Now, I don't want to explain things away with the oversimplification that age brings maturity. Not only is that statement intellectually lazy, it is also patently untrue. Let's get real; we all know old people who are immature AF. But what is true is that a wealth of experience, provided one is willing to learn from them, both widens and deepens perspective.

What happened thirty plus years ago

One of my classmates, said something insulting about me. I challenged him to say it again, and like a typical zero-EQ child, he actually did.

Why was I so affected? That's a point of interest; in fact, the main point I am trying to make today.

My world was really small.

It was a time when my world was a teacup filled with water, and I was a little sailboat in the middle of it. Any disruption to that tiny body of water would send ripples through it, and rock that boat violently.

Thus, that little incident rocked my tiny world. I felt disrespected, and in that tiny teacup, this was a huge deal. At that time, I hadn't yet learned the simple fact of life that being respected is often far less important than who respects you.

And now...

It no longer seems important. If I'm being honest, it stopped being important (or even relevant) decades ago. The reason it no longer seems important, is simple.

Decades have passed, and my world is no longer that teacup. At some point, I moved from that teacup into the ocean, and began swimming with the sharks. I began dealing with big-boy problems. I've had threats to my livelihood. Every change in technology. People with power over my career who actively dug their claws in, and made my work life as unpleasant as possible. Employers who resented every cent they paid me to put up with their nonsense, and were just looking for an excuse - any excuse - to get rid of me.

Swimming with the sharks.

And after dealing with all that, I'm supposed to obsess over some silly playground insult uttered thirty years ago? Why would I do that? Matter of fact, why would anyone do that?

Ultimately, my ex-classmate was a stupid kid who thought it was clever and witty to say some dumb hurtful shit to another stupid kid. That's all it ever amounted to. Experience has shown me that everybody is going through something. I might have felt a certain way back then, but did I stop to consider that maybe he was going through something as well, and his mouth just happened to move faster than his brain? No, it was all about me. Like I said earlier, I lived in a tiny world, in my tiny brain.

It's not that I've become more generous; rather, that there are far better things to obsess over. There's a recession coming. The world is at war. A.I threatens to disrupt everything. Like I said earlier, big-boy problems. Even old-man problems such as possible kidney failure, creaking knees and cholesterol levels.

In a nutshell

This is similar to what I said last year about not badmouthing former employers. Not because I'm above that (although I am), or because they deserve my consideration (some of them absolutely don't), but because I have real and present concerns. We all do.

May your teacup always be full,
T___T

Sunday, 4 May 2025

Full-time Pay, Part-time Job

Singapore has spoken. Yesterday on the 3rd of May, we spoke at the ballot box and made our respective decisions in our various constituencies. Some were won, some were lost, and Singapore moves on.

But in the neighbourhood of Mountbatten in the eastern part of the island, the spoils of victory go to Ms Gho Sze Kee of the People's Action Party. Her opponent? A certain independent candidate by the name of Jeremy Tan, a tech-savvy entrepreneur. And he's the subject of this blogpost today.

Tan (no relation here; us Tans are all over Southeast Asia) came to my attention on the 1st of May as he held a rally to present his case to Mountbatten residents. In the process, he won quite a few hearts, I suspect, including mine. Though I might be biased; I, too, am a software developer. There's footage of his presentation here, and honestly, I can't do it justice with a mere description; so do check it out below on YouTube.



Chill!

What I liked, first and foremost, was the chill, laid-back vibe. He was basically jiving with the crowd, getting them to repeat the night's catch-phrase - Full-time pay, part-time job, alluding to Gho Sze Kee's intention to only be a part-time MP - at pertinent parts of his speech. This was political showmanship without the fireworks. I know we love those from time to time, but this election served up a disproportionate dose of testosterone.





Thus, Jeremy Tan's cheeky quips and laid-back zingers were a refreshing change. It felt more like a stand-up comedy routine than a political rally as he roasted both his opponent Gho Sze Kee and the outgoing incumbent Lim Biow Chuan.

Relatable

One point Jeremy Tan made was in response to Lim Biow Chuan's assertion that "There's something about Jeremy Tan's language that I don't quite agree with.".

"You know what Mr Lim, I think most Singaporeans sound like myself than Miss Gho or yourself, you know. I think perhaps it's the fact that we speak different languages that you have been tone-deaf to your residents."

And this is a very valid point. You see, no one (OK, hardly any one) disputes the fact that the incumbent boasts some of the best and brightest minds of Singapore. The cream of the crop. The kind who would be able to make more than the monthly SGD 16,000 that is on offer for the average MP, quite easily. The kind, like Ms Gho Sze Kee, who saw the role of MP as only a "part-time job", or side gig.

And that's part of the problem. These people have higher-paying jobs that they don't have a chance of losing every 5 years or so. Therefore some of them sometimes give off the impression that they resent having to place themselves at the mercy of us unwashed schmucks every 5 years, and plead their case as to why they should be re-elected. After all they've done for the country! How dare these peasants presume to judge them?!

That ivory tower.

Therein lies the disconnect.

If you told the average man in the street, who earns maybe SGD 4,000 a month or less, and told him you'd pay him four times that but every 5 years he would have to go through a national review to keep his job, he would consider that an unbelievably good deal. That kind of pay and you don't need to worry about losing your job for at least 5 years?! Sign me up, bro.

Sometimes Singaporeans don't need the best. They need people who can adequately do the job and they can relate to. It's all very well to have the best and brightest doing the job until they piss you off every time they open their mouths. Remember, suitability for a role is not merely a matter of technical, but also social competence.

And finally... the tech stack

This was the part that sold me. I am a software developer, after all, even if not a particularly outstanding one.

Jeremy Tan commented on the state of the ERP and CRM Software used in the Town Council. As a software applications engineer with the relevant experience, he pledged to rebuild the entire tech stack.  It was his vision to create some kind of "digital town" for Mountbatten.

A "tech stack". Heh heh.

Now, was this all some tech gibberish designed to bamboozle the average non-techie? Maybe. It does sound like a tall order, especially when he started talking about A.I. But it also does sound like an exciting project.

This also resonated because I have noticed similar things about other Government-linked systems I have used recently and in the past. While some of the deficiencies were tech-based, some of it was due to tech being layered on top of outdated manual processes. Granted, there have been marked improvements as of late, but it's also a little concerning that these improvements have only come recently.

I could go on, but this is supposed to be about my guy Jeremy Tan, so...

In conclusion?

Jeremy Tan's efforts brought me back to a period in time where Big Tech founders conducted bold experiments in their family garages. That kind of enterprise is perhaps what we sorely need as a nation.

He may not last in the public eye beyond this election. But he'll be remembered fondly. By me, at least. And if he ever wants to run again, I'll gladly distribute his flyers.

Give this man a full-time job!
T___T

Tuesday, 29 April 2025

Sidestepping the year-end bonus trap

By the second year in my current job, I had gone for years without a year-end bonus due to a combination of factors such as constant job-hopping and working for cheap financially-prudent employers. But I made do. Not only that, I thrived.

Thus it was with some puzzlement when I received an email from HR informing me that I was due for a year-end bonus. An entire month's worth, no strings attached.

Extra money out of nowhere.

Wow. Imagine. My. Shock. Having spent so many years learning to live without a year-end windfall, now I faced an entirely different problem: what in the blue hell was I supposed to do with that chunk of change that had just appeared out of nowhere and didn't fit in my budget?

As a married man, the solution was easy. I just handed it over to my wife.

When the Missus received that fat stack of cash, the first question she asked, with a hint of suspicion, was why I was suddenly giving her money. I put on my most macho-bullshit act and declared, "Woman, I told you when you married me, whatever money I make from here onwards, you will make." Famous last words. Because every subsequent year, right at the tail end, she would inquire about my year-end bonus and now I was expected to give it to her every time.

Moral of the story: Be very careful what you tell your woman. She's going to hold you to it. Believe that!

The real reason

When I told my friends what I'd been doing with my year-end bonus for the past few years, what I got was the mind-numbing chorus of "wow, that's true love" and "what a great husband".

Have people always been this simple, or is this just happening now?

This is about freedom, not love. I was once trapped in a job I hated due to having developed a dependency on their year-end bonus. And whenever I tried to leave, I always found myself waiting to get the bonus before making plans to leave. Plenty of people find themselves in the same predicament now. It's that Singaporean mentality of not wanting to lose out.

Yes, I know that this isn't necessarily some cynical move by the company to hold their employees ransom. A year-end bonus is a pretty common practice and nobody was holding a gun to my head in order to force me to stay at the company. It was purely my reluctance to forfeit that lump sum of cash by leaving at year end, that kept me there. However, even taking full responsibility for it, does not make the dependency on the year-end bonus any less of a trap. It merely turns this into a self-imposed trap.

No! It's a trap!

Now having tailored my cash flow around not having a year-end bonus after so many years of going without, I have effectively weaned myself off this dependency. Why would it be a good idea to voluntarily redevelop the same crippling dependency now? Why would I give up the freedom to leave whenever I damn well feel like it, even if there are no plans to leave at the moment?

Not only do I give my wife my yearly bonus, I've also developed the habit of giving Mom my salary increases. Why? Same reasoning. It's a bit of extra money that I don't care about, it keeps 'em happy, and that's a great ROI. Most importantly, it keeps me lean. And hungry. It was that same hunger that had me going back to school. Learning new tech tools. Picking up skillsets from related disciplines such as DevOps, Data Analytics and Mobile Development. It was that very hunger that had me build this blog and keep honing my craft.

It's the principle of the thing. Financially, I'm in a good place and don't need the money. I have worked long and hard, over the course of the last decade, to have the luxury of being able to easily ignore the lure of immediate money, in favor of things of greater value. And approaching the age of 50, autonomy in my career is arguably more important than ever. Definitely more important than an extra few thousand bucks.

Conclusion

Losing my job isn't high on the list of things to worry about. Come to think of it, it might not even be on the list. No matter what you tell yourself so you can get out of bed in the morning, a job is ultimately just a job. Your ability to land a job is far more important than the job itself.

Gotta maintain that edge.

It's more my edge I'm afraid of losing. Not being some special tech talent that can walk into any company and demand the sky, I only got this far due to enthusiasm and motivation. Not complacency. Due to careful financial management, I already have way more money than I realistically need.

I am in charge of my own career, and will give that up when hell freezes over.

Be$t wi$he$,
T___T

Wednesday, 23 April 2025

The case of the ill-considered feature quotation

When you're in-house tech personnel dealing with external tech vendors, sometimes experience and common sense can be useful.

Also, the willingness to prioritize professional duty over being liked. I mention this because that's not me - I actively try not to be the guy who ruins everyone's workday by nitpicking on small details in the name of being "thorough". Work does suck for a lot of people, and there's just no point in making it suck more than it already does, without good reason.

That's far enough.

Except, sometimes, there is a good reason. Sometimes, there are multiple good reasons to dig your heels in and say "that's far enough, buddy".

This is such a story I'm going to tell today.

What happened

My company at the time had contracted a vendor to store our data, which would be sent to them by means of an API endpoint they provided us. Admittedly, they weren't the solution provider I would have gone with, but in the interest of saving time (and also because I didn't have a better alternative), I played nice. After ascertaining that the solution worked - i.e, our system would send data though that API endpoint call and the data would be saved in their system, it was time to talk about security.

Just a key.

Our proposed solution was to have an extra property in the JSON object that we were sending them, with a password that they would provide. Like an API key. Any calls made using that key would be validated against their records, so that they could at least be confident that the origin of the data would be correct.

The solution was simple enough, and their Sales Representative told us it could be done. But then he made the mistake of telling us that we would be quoted an extra charge for it. And that was when I drew a line in the sand, and told them, no, this was absolutely not going to happen.

In retrospect, the fact that I was the one who had to broach the subject of security was a red flag. If I hadn't, would they just have carried on? Alarming if one considered that we weren't their only clients.

Why I put my foot down

The extra feature we requested was for security. Security should always be considered a basic, rather than extra, feature. Especially when the service providers in question are holding on to client data. If these vendors had our data in their storage, why should we have to pay extra for a basic security feature?

Also, in the event of a data breach, could these vendors really afford not to be able to show subsequent audit that they, at the very least, had previously done their due diligence?

Security should be a
basic feature.

From my experience with small vendors like these, they usually aren't using separate database servers for different clients. More often than not, it's some sort of shared virtual hosting. Which meant that any data breach on our part could affect their other clients, and vice versa.

All in all, the vendors had significantly more to lose than we did, from a security breach. From that viewpoint, it was patently ridiculous for them to want to charge us for security. That would be like me demanding payment from the locksmith to install a lock on my own door.

There is the possibility that their Sales Representative was not really thinking clearly, and that he was asking for extra payment out of sheer habit. Because that was the way he had been trained. Honestly, I don't think this made it better. Definitely didn't make my company's data feel more secure in their hands.

Conclusion

Going with the flow is easy. Standing firm on principle is harder. In fact, I would argue that standing firm when the situation is as egregious as this, is easy. The hard part is really identifying such situations in the first place. I don't think there's exactly a playbook for things like that.

Thanks for reading, that's far enough!
T___T

Sunday, 30 March 2025

Disclosing your salary during a job application

Should job applicants have to disclose their last remuneration to the companies that they are interviewing at? That's a debate that has gone on for as long as I can remember. Singapore has not made this practice illegal; however, applicants are similarly not obliged to disclose this information.

A closely guarded secret?

Some will claim that this is not helpful to applicants; companies can simply choose not to hire applicants who decline to disclose these details. That's certainly true. What's not true, I feel, is that this only disadvantages applicants. No, this disadvantages applicants who don't have many options. Similarly, this also disadvantages companies who don't exactly have a large pool of applicants to choose from. Your options, or lack thereof, are not anyone's problem but your own.

Why ask for this info?

Companies usually justify asking for the last drawn pay with this: it saves time for everyone if the applicant's previous remuneration was significantly higher than the budget for this role - thus the company avoids making an uninteresting (or worse, insulting) offer.

If this were the justification, however, it begs the question as to why the budget for this role isn't normally revealed. What applicants tend to feel, is that companies want this information so as to give themselves an edge in negotiations and an opportunity to lowball these applicants. And while this may not be true for every employer, enough employers have done this (and are still doing this) that this accusation isn't entirely unfounded. On the other side of the coin, employers may feel that applicants who aren't trying to pull a fast one on them, should have nothing to hide where their last drawn pay is concerned... and indeed, there are plenty of applicants who act just as shadily to justify those fears. Suffice to say, information, or lack thereof, is seen as the decisive weapon in negotiations.

All about the
strategic advantage.

Purely from a business standpoint, I understand that sentiment behind lowballing applicants perfectly. Let's say, for example's sake, that this was a role for a senior software engineer. If the applicant was last paid SGD 5,000 a month as a software developer, why should the company pay more than SGD 6,000 a month? Sure, SGD 8,000 a month is the budget for the senior software engineer role, but the applicant doesn't know that.

Conversely, applicants might feel that disclosing their last drawn remuneration unnecessarily limits them to a certain pay range. If their last remuneration was SGD 5,000 as a web developer and the software architect role they were applying for potentially paid SGD 10,000, they wouldn't want to have to settle for SGD 6,000 a month even though it was higher than their last drawn pay.

I have to agree, that doesn't make sense either. The value of the role doesn't change depending on who's being interviewed for it, so why should the offer differ based on the last drawn salary? Should applicants be permanently disadvantaged just because their last employers undervalued or underpaid them, or because they were paid lower for an entirely different job?

Here's my opinion: it's rarely just about the money. Sure, saving a little here and there tends to add up, but let's not kid ourselves - companies aren't doing this for the money. If saving a couple hundred or thousand a month meant that much, perhaps they shouldn't be in business at all. No, companies (or just the people running them) don't want to lose. And having to pay applicants significantly more than they were making in their last job, could be seen as losing, even if the job is now significantly different or more challenging. Honestly, again, just purely from a business point of view, employers would pay employees nothing if they thought they could get away with it; what more paying them a lot more than their last boss did?

Common advice

Most literature I've read on this subject, advise applicants to do the following when pressed to reveal their last drawn pay - politely explain that you're looking for a competitive compensation package based on your experience and the role's responsibilities. Turn the question around by inquiring about the company's salary range for the position.

Well... that's certainly an option. Diplomacy is great and all, but a little too indirect for my tastes. And, it doesn't stop the company from insisting on the information anyway.

And then there are some blustery corners of the internet, such as Quora and Reddit, who recommend that the applicant lie. I can't even begin to describe all the ways this would be a horrible idea.

Don't lie.

But, if the risk of being caught doesn't sufficiently scare you out of lying, consider this. The company is just one of a multitude of places to work at. You shouldn't have to lie in order to get employed. No one should.

Perhaps I'm speaking from a position of privilege when I say this: it's just a job opportunity. Don't lie. It's undignified. It's not so much that the company that you're applying to work at, deserves the truth. It's more that you deserve to be better than that.

My advice

Give them what they want. And at the same time, don't give them what they want. Confusing? Let me explain this.

They say they want last drawn pay information. Sure. Tell them. Give them payslips, even. But if what they really want is an edge at pay negotiations, don't give them that. When I provide my last drawn pay, I also explain that all the salary information in the world doesn't change my price. I want what I want for that role. This tends to put a damper on anyone trying to use my pay information in a cynical way.

Sure, you can say that now they know what your last drawn pay was, they'll want you to justify your asking price. And your point is...? If you can't justify that asking price, you have no business asking for it in the first place. Go get 'em, tiger.

Be prepared to walk if you don't get what you want. This is your career, not some wet market where you haggle over the price of a cod steak. The moment you find yourself haggling, you've already surrendered control.

The price of cod.

In no way am I suggesting that one should be inflexible when it comes to job offer negotiations. But that flexibility should always be on terms you are comfortable with. While they should know how much money you were earning in your last job, it should be made abundantly clear that this changes nothing where your asking pay is concerned. Not one iota. If they're unable to get over the fact that you're asking for remuneration significantly higher than your last job's, and you miss out on this opportunity as a result, why is that a bad thing? You dodged a bullet. You don't want a situation where your current employers are happy with your employment only because they thought they were taking advantage of you.

People have tried testing me with lowball offers before. They found out the hard way that His Teochewness doesn't play games. Is that an arrogant thing to say? Yes. Is it profoundly satisfying not to have to put up with this shit? Also yes. Absolutely.

I'm not saying you should take a leaf from my book and laugh in the faces of those who make insulting lowball offers after learning your last drawn pay. But cultivating a habit of not playing stupid games, can only be a good thing in the long run.

Conclusion

People should stop obsessing over "winning", especially if it's at someone else's expense. Candidates who get what they want, should be happy about it even if it turns out that they could have gotten significantly more. Companies who hire candidates on a price they're happy with, should remain happy even if the last company paid half that.

But under no circumstances should anyone's negotiating advantage be built on lies, or on lack of transparency.

What's your last drawn pay?
T___T

Tuesday, 25 February 2025

Ten Things Office Sycophants Should Avoid Saying

It was on the hallowed halls of LinkedIn where I chanced upon this article by one Vartika Kashyap quite a while ago. The career advice within struck me as spectacularly terrible and not a little out-of-touch. At the time, I put it out of my mind and concentrated on the bigger fish I had to fry.

Years later, revisiting this article, not only have my feelings about the content not changed, I feel that this article deserves a response in the form of satire.  Because, as we all know, the best way to illustrate how bad an idea is, is to agree with it and take it to its logical extreme. And, if the original concept is ridiculous enough, you don't even have to take it that far to reach its logical extreme.

Also, to be fair, advice isn't bad simply because it is bad. Context matters. For example, "stand in front of a moving bus" is great advice for becoming famous, not so much for healthy living. Similarly, Vartika Kashyap's advice is pretty good... if you want a masterclass on how to be a spineless yes-man. Thus, today, I give you... Ten Things Office Sycophants Should Avoid Saying.

1. "No"

Now, we all know that the world of the programmer is a binary one - things are either true or false with no nuance in between. We also know that the real world isn't like that. In the real world, things are what they are, and sometimes we have to temper our expectations because nobody gets what they want 100% of the time.

The answer is. No.

But to hell with all that. As a sycophant, treating your employer like a normal well-adjusted adult is out of the question. No, you should treat your employers like their parents didn't tell them "no" enough as a kids. Life is full of disappointments. Your employers are too fragile to face these harsh realities.

So don't say "no" to your employers. It's very triggering and upsetting. The only time you should say "no", is when it's paired with another negative word. As in, "no problem".

2. "I'll try"

Yoda famously said, "Do or do not. There is no try." Disregard the fact that life isn't a sci-fi movie, and take this phrase to heart. You see, your employers pay you for results. They don't pay you to try. Trying is for losers.

I'll try... and try... and try.

Saying you'll "try" is akin to giving yourself an out if you fail. It is leaving the possibility open for failure. Even if this is the real world and nothing is a certainty, your employers don't pay you to be pedantically honest, either.

Your employers will feel a lot better if you declare with ironclad certainty that you "will" do it. And we all know that their precious feelings are of the utmost importance.

3. "I don't know"

This phrase is completely unacceptable. You are paid to know. And if you don't, you are paid to either find out, or act like you know. Even the appearance of doubt cannot be tolerated.

Act like you know
the future.

Honesty is overrated. Act like you know everything - past, present, future. Finding out takes time, so if you're asked a question which you don't know the answer to, acting like you know is the fastest and therefore only viable solution. Remember, you're a sycophant. Telling your bosses what they want to hear is a mandatory skill.

Never say "I don't know". Never. Unless it's shameless flattery along the lines of "I don't know how you managed to accomplish so much!"

4. "I am busy"

Sure, your employers pay you to be busy. But if you actually tell them that you are busy, there are two implications. The first is that if you're busy to the point where you have to tell people that you're busy, you're just not that good at your job. The second implication is accusatory - your employers overloaded you.

So what if your
plate is full?

Either way, stay away from this one. Be a good yes-man (or woman) and make sure you're always available for your employers. When they tell you to jump, your only response should be to ask how high they would like you to jump.

None of this "I'm busy" bullshit. They own you.

5. "I can't"

Seriously, do I even have to explain this one? Employers want a "can-do" spirit and confidence from their employees. The phrase "I can't" reeks of loser stink. Even though your pay may not reflect it, you're expected to be perfect.

Boundaries are
unacceptable.

Some might see "I can't" as setting boundaries. Again, that is unacceptable. Any self-respecting sycophant understands that there are no boundaries.

6. "I am sorry"

Come on, that is absolute nonsense. This is on the same level of "I don't know". Saying you're sorry implies that you made a mistake, and remember, employers expect you to be perfect whether you're drawing a janitor's wages or an executive's salary.

I'm so sorry...

Accept responsibility? No, no, no. Anything but that. Blame someone else, you complete amateur. But of course, it goes without saying, that you should never blame your employers.

7. "I thought"

"You think, I thought, who confirm?" Thats a popular phrase in Singapore's military, used by nasty drill sergeants to harangue the lower ranks. This usually occurs when a soldier makes the mistake of saying "I thought...".

Stop thinking, soldier!

Obviously, in the military, people are valued by the amount of thinking they don't do, and it's supposed to be the exact opposite in the corporate world.

Your boss doesn't want to be reminded that you're a human being with thoughts, opinions and assumptions. It makes it harder to exploit you that way. Be a good sycophant and keep the thinking to a minimum.

8. "I couldn't"

On the surface, this sounds very similar to "I can't". But while "I can't" refers to a task that's being assigned to you, "I couldn't" refers to some failure to execute an already assigned task.

Well, it's good to see that you're taking the blame like an adult (you know taking the blame is at least partially why the company pays you, right?) but this reminds your employers that you're not infallible and it annoys them.

Flaws are also
unacceptable.

Even though, if you were infallible, logically you probably would be in the position to employ them instead. But no, we don't need to apply logic to the situation. The best way to avoid having to say "I couldn't" in the first place, is not to fail at all. Ever think about that? No? Do better.


9. "That's impossible"

Such a Debbie Downer! This is exactly the kind of thing employers hate hearing. Did mankind make it to the Moon with that kind of attitude? Well, you certainly won't.

Was this impossible too?

While it's certainly true that, objectively, some things are physically or logically impossible, your employers certainly do not need to be reminded by you. Your job here is to be the try-hard, the endless optimist. If your employer wanted actual realistic advice, they have people they actually pay for the privilege. If you're just a sycophant, that's not your role. Stay in your lane.

That said, if you absolutely need to be that honest, you have to be prepared to take it further. Just saying "that's impossible" doesn't cut it.

"Nothing like this has been successful since World War Two." Just like that. Add context to why it's impossible.

"This is a brilliant idea, and it's a pity that it's completely illegal." Sneak in a compliment somewhere. Try not to overdo that part because it just sounds condescending.

 "This completely contravenes the laws of physics and common sense." And qualify it. How impossible is impossible? Though you'll want to leave out things like that last part.

10. "It’s not my fault"

Now, these could be fighting words. If it's not your fault, whose fault is it? Who are you potentially accusing? Thus, this phrase is at best whiny and at worst, finger-pointy. It's your fault because your employer says it is, end of. That's the correct attitude that any sycophant worth their salt should aspire to.

Your fault.

Besides, if a problem crops up, your employers want you to be busy fixing it and not determining who's to blame, especially if they are the cause of the problem. Whether or not it's your fault, is really not the point. It's your responsibility.

Is it the janitor's fault that someone took a giant shit on the white marble floor? No, of course not. But it's still his job to clean it up. Same goes for you. Not your fault? What are you, twelve?

Let me be real for a minute...

Once again, these are obviously just satire. I should certainly hope nobody works for anyone with these expectations, unless they're paid really well to take that nonsense. It also goes without saying that I would sooner hurl myself from the window of my swanky new apartment before I ever considered working for employers like that.

The ten phrases above I not only expect employees to apply when necessary, I consider it their professional duty to do so. Push back against stupid ideas and unreasonable expectations; it's your job, dammit.

Your impossible programmer,
T___T