Showing posts with label Google. Show all posts
Showing posts with label Google. Show all posts

Tuesday, 8 September 2026

With Great Functionality Comes Great Legal Responsibility

It's unclear to me how many of you were actually old enough to use the internet back in the late 90s, but if you were, you might remember this charming little search engine called Ask Jeeves. It had a friendly cartoon butler, Jeeves, ask you what you wanted, and delivered you links, with a witty quip or two. It wasn't extremely powerful, but boy did it have personality!

Good old Jeeves.

Good old Jeeves has been retired for the last couple decades, but Google saw fit to try something in the same vein.

Google's version

It used to be that when you searched for something, Google would act like a normal search engine and give you a series of links to what you searched for. At most, it might suggest that you had mistyped your search, or aggressively promote content that people had paid them money to promote.

Relatively harmless run-of-the-mill stuff, as it were.

Then they started giving us an AI Overview, where an LLM would summarize the results of the search without you needing to visit those sites personally and draw your own conclusions. Which the site owners, understandably, weren't too thrilled at due to the decreased user traffic.

Google summary
on a platter.

At some point, the LLM-generated summary would even appear on top of all other searches (sort of like Jeeves serving you information on his silver platter) giving users very little incentive to do anything other than read that convenient summary. And that's where the trouble began.

In Munich, a regional German court took Google to task over two cases where the AI overview had gone wrong, with disastrous results. Apparently some publishing companies had been erroneously tied to scams and shady business practices due to a hallucination in the LLM. Not something completely unheard of, to be fair.

Google argued that they had explicitly stated that AI overviews could be wrong, they had included the original links, and users were able to click on those links for verification of the AI overview. The court tore that apart with the assertion that very few people ever did (kind of like reading a EULA and then clicking the "I have read the Terms and conditions" checkbox at the end) and that AI Overviews constituted Google's own content which it was legally liable for.

I'll concede that Google's AI Overviews are largely directionally correct, and the odd hallucinations are the exceptions that prove the rule. Unfortunately, due to Google's massive scale and reach, even a 0.1% chance of something going wrong represents a really bad day at the office for an unacceptable number of people.

A case I was reminded of...

Back in the day, Social Media platforms like Facebook and TikTok were being raked over the coals legally for misinformation of users. It's not the exact same case, but there are interesting similarities.

These platforms argued that they were mere content-displaying platforms and could not be held to the same standards as publications. However, the unfortunate fact was that they were implementing algorithms that largely dictated what users saw first. As long as they were doing this, the courts argued, they were effectively publications in their own right.

TikTok as a publication?

That does make sense. After all, don't publications also put their most compelling stories on the front page?

How are these cases similar, though? Well, in the original form of the services, all these companies did was, as claimed, display content provided by other parties. It was the value-added service by the companies themselves, which put them at legal risk. Also worth noting is, in both these cases, the offending mechanism were the default states. Meaning, they weren't configurations that the users could opt into. Therefore, the argument can't be made that "the users chose this", because they quite literally didn't.

Conclusion

User consent factors quite heavily into these lawsuits. It's often not enough to serve users something and then belatedly seek permission to do so. I could be wrong, but I suspect that none of this legal action would have happened if Google had gone with the classic display and only served the AI-enhanced version upon request.

Talk about courting trouble!
T___T

Thursday, 23 July 2026

A Software Developer's Vacation In Singapore: Coast-to-Coast Trail Edition (Part 1/4)

It all began when I started wandering around Singapore and exploring the places I used to hang out in, places I used to work at. I started noticing the green spaces that Singapore is famous for. Sure, logically I know this, but all along, I had always dismissed it as tourist propaganda. Until I took a good look around and saw what tourists see - without needing to go to the likes of Gardens By The Bay, or Singapore Botanical Gardens.

Singapore does have some pretty nice green spaces. And from the looks of it, more foreigners seemed to be enjoying those spaces than locals. Not that I begrudge said foreigners their leisure... but it felt weird to me that as a citizen and taxpayer, I wasn't getting nearly as much out of all this as they were.

Time to rectify that!

Stop going out of the country on break. There's plenty to discover on this island. It was high time I coded less on weekends and explored more.

During the tail end of 2025, I began my exploration. In particular, a colleague of mine pointed me to the Coast-to-Coast Trail, a cycling/hiking route that starts from Jurong Lake Gardens and ends at Rower's Bay Park.

From what I managed to Google of the task, it seemed to be too big an undertaking to take on without seeking some guidance. To that end, I sought out the help of an ex-Navy buddy, who also happened to be an avid cyclist. He was familiar with the route and even knew what signs to look out for, such as the one shown below. Honestly, I'd never have figured that one out by myself. All I actually had was this map.

I met him at Lakeside MRT Station at 7AM on a Saturday. He had his own bike while I used an Anywheel rental. It had just stopped raining and the ground was wet. He had a helmet, padded tights and gloves. I had... slippers and pluck. And we set off, going through Jurong Lake Gardens and ended up at the signpost for Checkpoint One.

Checkpoint One.

The surroundings were pretty lovely. I was going to have to explore this another time, but for now, I was squarely focused on the Coast-to-Coast Trail.

My buddy took me on what felt like a bicycle trek through an urban landscape. This felt like a bit of a mood whiplash after the lush idyllic environment of Jurong Lake Gardens.

The bicycle paths were built pretty close to the road on this portion of the trail. Basically this was a common feature of bicycle paths that had been retrofitted into urban infrastructure, which struck me as an uncomfortable but necessary compromise. At one point, the trail led right under an MRT track!

Right under an MRT track.

Up a zigzag ramp bridge...

...and over the Pan Island
Expressway

This led straight to a ramp bridge which took us over the Pan Island Expressway eventually led us to a canal behind Bukit Batok Industrial Estate.

Behind an industrial estate.

This bike ramp.

At the end of it, we crossed a traffic junction and rolled the bike down a solid, if not totally friendly, bike ramp.

Zodiac statues.

There were some pretty amazing visuals on the way, such as this Animal Zodiac display.

Checkpoint Two.

From there, we arrived at Bukit Batok Nature Park. And just like that, we were at Checkpoint Two. Now, that was a fun, if short, ride away from the bustle of the main road.

Riding through Bukit Batok
Nature Park.

It was here my buddy observed that I seemed almost oblivious to the uphill inclines he was pointing out even though my Anywheel bike had no gears. My habit of swimming almost daily certainly contributed to my cardiovascular conditioning. My bike technique, however, was woeful. I was wobbling way too much, even with the wet road as an excuse.

Then we turned in to Bukit Timah Nature Reserve. It was another fun ride along Upper Bukit Timah Road, and soon we arrived at Checkpoint Three.

Checkpoint Three.

Downhill from there, we passed the Rifle Range Park to Bukit Timah Road. The ride downhill was exhilirating.... and then the fun abruptly stopped because we were staring at a long stretch of road ahead. Not a proper bicycle path, but a narrow one right by the bustling road.

A long unpleasant ride ahead.

It would have been a long an uneventful ride, but for one thing - I took a spill over the slick path and skinned both knees. My buddy was right - my technique was woeful. And my eventual fall along Bukit Timah Road felt inevitable. Honestly, I was lucky. A meter to the left and I might have been squashed by oncoming traffic. Still, I got back up, back on the bike, and we continued all the way to Adam Road Food Center where the next Checkpoint was.

Checkpoint Four.

And that was it for this episode. We got this far in a couple hours, not that we were speeding or anything.

Thoughts so far

Singapore's generally neat and well-organized. A lot of thought has been given to the issue to safety for pedestrians, cyclists and motorists co-existing on Singapore's paths. The result is a largely safe, if restrictive experience.


Going through the first few checkpoints of the Coast-to-Coast Trail felt like traversing through a legacy codebase that has seen several updates from several different development teams with very different approaches... which somehow still works as intended. Probably because users use it as intended.

Next

Checkpoints Four to Seven.

Sunday, 7 June 2026

Film Review: Black Mirror Series Seven, Redux (Part 1/3)

Welcome back! We're going to continue the review of Black Mirror Series Seven. I promise you, it doesn't let up!

The next episode is Plaything, and it's quite the mindfuck.

The Premise

Mentally disturbed Cameron Walker is hauled into a police station where he is interviewed by the police for a possible murder. What follows is Walker's telling of a bizzarre story that has a terrifying conclusion in the present day.

The Characters

Peter Capaldi provides a gripping portrayal of Cameron Walker, a computer nerd who gets sucked into the world of the Throng. And boy, does he deliver. When we first see him, he's a friendly but awfully goofy character who talks silly. By the end of the episode, he's become full-blown deranged and the twist in that master plan is served with such maniacal glee it almost hurts to watch.

Lewis Gribben is a younger Cameron Walker. Had a physical resemblance to Paul Bettany. We get to see him slowly unravel from a shy nerd to murderous lunatic. Gribben brings across the shitload of anxiety this role probably requires, really well.

James Nelson-Joyce as DCI Kano. Stern, cold, uncompromising. Chomping at the bit to prosecute Walker. I had fun watching this guy grind his teeth and try to curb his impulse to beat Cameron Walker to a pulp.

Michele Austin as Jen Minter. She's in the interview for psychological evaluation. We see glimpses of a sense of humor. She's the reasonable authority figure in the room.

Darryl Foster as PC Mo Raiker. Kind of fades into the background if not for that afro, if I'm being honest.

Ami Tredrea as WPC Yvonne Best. She looks constantly serious and focused. Of her and her partner, she's the one that gets most of the dialogue.

Will Poulter reprises his role as Colin Ritman from Bandersnatch. Poulter brings his intense stare back into the Black Mirror universe, and I am here for it! When Colin Ritman emphasizes that the Throng are living and sentient, his deadly earnest delivery really sells it. Poulter has limited screen time in this one, but he makes the absolute most of it.

Asim Chaudhry, too, reprises his role as Mohan Thakur from Bandersnatch. Part manic, part affable, all boss. "My name's Mo but you can call me God."

Josh Finan plays Lump the drug dealer with much goofiness and gusto, complete with annoying shit-eating grin and wild-eyed stare. He was hugely entertaining.

Jay Simpson is Gordon, Walker's boss at PC Zone. At first I thought I was looking at John Cusack. There's a very unsettling air of menace about him as he's on the phone pressuring Cameron to meet a deadline. This actor should have been off playing a mob boss or something, instead of this. Wasted here.

Special mention to Kave Niku as the shopkeeper in the beginning sequence. That look of exasperation was golden.

The Mood

The subdued colors, smoke and debris suggests a dystopian future at the start. In the first few minutes, the mood shifts to a police procedural vibe, with all the trappings of modern-day police drama. Halfway through, flashbacks take us in a new direction - it's a tech thriller both creepy and uncanny. Other than that, once the episode goes into the interview room, the action doesn't leave it, other than through the narrative supplied by Cameron Walker.

What I liked

The game itself looks pretty damn awesome. It's available to download on Google Play. You need a Netflix account to play it. My plate's a little full at the moment, but dammit I want to play this game.


Another thing I loved were the tie-ins to Bandersnatch. Thronglets is a game, and Bandersnatch features a gaming company. So yes, the link to Tuckersoft was genius. Bonus points for that poster of Bandersnatch II!


That twist at the end with the sharpie and how it was used. It was a deliciously horrific end.


Did I mention the sound effects from the game? The squeals, the shrilling, and the ominous hum. It all totally got me.

What I didn't

I have mixed feelings on this. On one hand, that whole surgically inserting a port into the back of his head sequence was suitably gross for a series like Black Mirror.


And on the other hand, I've always liked Black Mirror for tech that is fantastic, but at least plausible. This is just... not. It is pretty bizarre and creepy though, I'll give them that.

Conclusion

What an episode. What. An. Episode!

Plaything is probably one of the creepiest things Black Mirror has produced ever, and has one of the darkest ever endings. I don't know what the writer of this epsiode had been smoking while creating this, but whatever it was, it worked!

My Rating

9 / 10

Next

Eulogy

Wednesday, 13 May 2026

Seriously, why try to cook Sam Altman?

It's no secret my opinion of Sam Altman isn't exactly high. To me, he's one of those snake oil salesmen that continually hypes up a product that, while interesting in limited scopes, is nowhere what it's purported to be. And he exudes the low-effort vibe of a con artist who flourishes not by being smarter than others, but by picking raving idiots as his target audience.

That said, I don't dislike the man, and bear him no ill will. And I certainly was not among those who cheered when one Daniel Moreno-Gama lobbed a Molotov cocktail at his home last April, then threatened to set fire to the OpenAI headquarters in San Francisco, USA. 

The threat.

What was his reason? Apparently, "AGI poses a threat to humanity and therefore it must be stopped." Come on, now. Really?

AGI

I don't know what this guy has been smoking, but that brand of AI that Sam Altman and his ilk have been forcing down our collective throats, LLMs, barely qualifies as AI, much less AGI. Before anyone jumps on my back, I'll concede that LLMs are incredibly useful. And when you compare them against their predecessor - autocomplete - a massive technological leap in terms of scale, pattern-matching and the like. However, calling them "intelligence" just tells me that your standards aren't particularly high.

How many times have we been promised that AGI is near? How many times has it not materialized? Countless, and countless. The simple fact of the matter is, this tech exists for a reason, and it's not to better the lives of humanity.

Smoke and mirrors
in service of the
almighty dollar.

No, like everything else, it's meant to make money.

AGI might make money once it actually exists in the real world rather than the fevered imagination of fanboys and science fiction enthusiasts, but it costs too much to get there. Meanwhile, faking AGI costs a lot less and satisfies the lower-level requirements. Who needs real creativity when you can simulate it? Who can even tell what actual creativity is?

So, if AGI is nowhere near, what's there to stop?

Humanity

Do human beings suck in general? Well yes, and I don't think that's ever been a controversial statement. But do we suck more just because of AI? We certainly suck more visibly. We have all manner of rubbish created by generative AI, churned out by people who have way too much time on their hands. Deepfakes. Nonsensical clips of Michael Jackson fighting Bruce Lee. AI porn.

AI generation of
Michael Jackson vs Bruce Lee

AI was the tool that made all this possible; but make no mistake, human beings are the ones who should be blamed for how it's used. If you're going to blame AI, why stop there? Blame Social Media. Blame the damn Internet.

I would argue that humanity's greatest threat is humanity. Not AI. If we're already our greatest threat, a pale imitation of ourselves isn't going to do a better job of ending us. It's just not.

Killing Sam Altman

Finally and most obviously, killing Sam Altman isn't going to do jackshit to stop the progress of AGI, assuming it's even progressing. For the obvious reason that Sam Altman does not represent the technological forefront of AI. (Though ChatGPT would probably disagree.)

Ergo, if AGI does indeed exist, it's not inside OpenAI.

Burn it down... and then what?

And all right, let's assume that this one douchebag techbro Sam Altman is behind AGI. You think you can destroy the code just by killing the CEO and firebombing the office? Son, it's 2026. Cloud services are a thing. They've been a thing for years.

Also, is Altman the only one far enough ahead in the race to matter? Think of all the other AI from big tech companies. Microsoft's Copilot. Google's Gemini AI. Meta's Meta AI - actually, I take that last one back. My point is, OpenAI is far from the only culpable one here. What exactly is killing Altman going to accomplish; scare all of them into not doing their usual thing? Good luck!

The fiery conclusion

All this is preposterous. Even overlooking the fact that killing a person just because you believe he heralds the inevitable doom of humanity, is morally questionable and definitely very illegal; the reasons for even going there make no damn sense. Daniel Moreno-Gama isn't the hero he imagines he is. But maybe he should stop watching so many Terminator movies.

Come with me if you want to live burn AI to the ground!
T___T

Friday, 8 May 2026

Ten Reasons To Keep Treating Job Interviews As Target Practice

For the longest time, I've been an advocate of getting practice in job interviews... using actual job interviews. I make no apology for this; in fact, at a certain stage in my career, I made it a point to do this regularly. And I will continue to advise professionals to keep applying for jobs and going for job interviews, even - or especially - if they have no current intention of switching jobs. Hey, life is about at least opening new doors to see what lies beyond, if not going through them.

Opening new doors.

Don't feel too bad about potentially wasting the time of the companies you apply at. How many companies post job ads and conduct interviews for positions they have no intention of filling, just so they can technically bypass the requirements set out by the TAFEP? Two can play at that game.

Plus, there are some really compelling reasons to do it. Here's a list of some really big ones.

1. Muscle memory

You know what they say about practice making perfect? Well, there's no such thing when it comes to interviews (or anything, really). But you can get awfully good at it. What about mock interviews? Well, mock interviews are great and all, but at some point you're going to have to stop hitting the punching bag and square off against someone who's actually trying to hit you back.

This won't hit back.

People also tell me that they have better things to do than to attempt interviews "for fun". This is a huge misrepresentation of what I'm recommending. Of course, if it's fun for you, that's a bonus. But it's not the main point.

Nothing about this is supposed to be fun. Think of this as working out, where you condition your body, strengthen it, in the event that one day it might be ready when called upon. This is the career interview equivalent of exercising in a gym.

2. Confidence

At the very least, you'll get a lot more comfortable at it.

Even when it's a high stakes interview where there's a lot riding on it and you actually care about the outcome, there's no denying that prior practice helps. A big part of you will feel like you've seen and done all this before. There will be a certain familiarity to the entire process that, due to the comfort said familiarity brings, will go a long way towards offsetting any nerves.

Staying chill.

People have remarked on how remarkably at ease I seem during job interviews. What they don't know is that this has nothing to do with my people skills. I still find other human beings tiresome and annoying. It's simply that after a few hundred interviews with actual companies and dealing with all their bullshit, it stops being fresh and exciting. As a result, it also stops being anxiety-inducing. Seriously, no matter how unique and special some interviewers seem to think their interview process is, the truth is that the vast majority of the time, it's like most other interview processes.

Tech round? Mock project? Whiteboard? I've seen it. I've done it. I've even conducted it. Nothing makes me nervous. Because almost none of it is new.

Reusing the boxing analogy from before, the best way to get over a fear of being punched in the face, is to get punched in the face frequently. Similarly, to get over a fear of rejection from interviewers, you need to get rejected often. From real interviews.

3. Develop market awareness

The tech industry is wide and varied. Even if you narrow it down to software development, or even further down to web development, the fact is that different employers have different requirements. They may need proficiency or even just passing familiarity with new software, new frameworks, new software libraries that you may never even have heard of.

And it's true that you don't know what you don't know. So if you don't even have any idea where to start improving, how are you going to improve? It certainly isn't going to be by repeating the same old stuff over and over. That may work for some industries. But no, not software development.

Laundry list of requirements.

But every time one applies for a new job, guess what - the application often comes with an oh-so-helpful wish list of skills that the employer is looking out for. Sure, some of it is laughably impractical, but this is generally where you can scan the list for things that look unfamiliar to you, and then start exploring.

You know the D3 and HighCharts demos I have done? They both started out as items on a job application list of requirements. I Googled the terms and the rest is history.

4. Broaden horizons

There are sights you don't get too see very often. Huge, sprawling offices that overlook the sparkling waves of Marina Bay. Fancy commercial towers. Lush lobbies.

Not to say you can't see those things without going for a job interview... but really, what better time? Surely not during your free time when you undoubtedly have more pressing concerns and better things to do?

See the sights.

Aside from the sights, sometimes companies have interesting ways of testing interviewers, such as through puzzles or case studies. Some of them were so fun I turned them into web demos. Tetris in vanilla JavaScript? Rock, Paper, Scissors app? All that came from some applicant assignment sheet.

Also, I know I earlier said that most interview questions are lame and formulaic. Most. Sometimes interviewers surprise you with a question you haven't heard before. That's very valuable. It not only expands your experience, it tests your ability to think on your feet.

Take the experience as a way to broaden your horizons. Add to the growing list of stuff you can later confidently claim to have seen.

5. Learn how to conduct

One side effect of having attended a whole shitload of interviews in your career, is that you learn how to conduct them.

Well... not quite.

Let me qualify that. You don't exactly learn how to conduct them. That kind of experience comes from actually conducting them, just as the know-how to get through job interviews comes form actually attending job interviews.

Conducting an
interview.

But you do learn an awful lot about how to conduct them. For example, you would know from firsthand experience how cringey some questions sound, such as the classic "where do you see yourself in five years?" and the ultimate douchebaggy "why should we hire you?", and hopefully avoid being such a cliché.

You would learn, from the interviewee's point of view, what makes a bad impression on them, and avoid falling into those traps.

6. Zero consequences

Using real companies and real job applications for practice, is like honing your craft in a real environment with no stakes whatsoever.

If you weren't all that (or even at all) interested in the job, it doesn't matter if you fail. Your ego might get bruised a little bit, but that's about it.

Target practice.

What are they going to do if they find out you were just using them for practice? Not hire you? Big deal. It's not like you were actually interested to begin with. Practice, remember? Are they going to sure no one ever hires you in the industry? Please, they wish they had this much clout. This is Singapore, not Silicon Valley.

My entire point is that there are no consequences for failure. This is a consequence-free activity dressed up as high-stakes operation. You pretend to yourself that this is a job you really want, though in actual fact you could care less. As interviews go, the only thing less stressful is a mock interview, and those are pretty lame.

7. Future-proofing

"But I'm happy where I am!"

Oh, you sweet summer child. You don't have to be unhappy where you are, to go for a job interview. Especially when the objective is practice. But it probably would add a huge dose of motivation.

If you're happy and
you know it...

It's a hedge against the eventuality that you no longer want to work in your current place of employment, for whatever reason. No relationship lasts forever, especially not one that's predicated on a nebulous human emotion like "happiness".

And when - when, not if - that happens, you'll be glad you bothered. Your resume's already somewhat up-to-date due to all the regular practice. The last interview's still fresh in your mind, along with all the land mines you stepped on in the process. You're ready to go.

At the very least, you'll have gotten a good idea of how much your skills and abilities are worth in the market.

8. Bragging

Anyone with even an ounce of ego likes to brag about their accomplishments. Well, sunshine, here's your chance. A sanctioned space for you to safely brag about all your professional accomplishments. Talk about how you solved the persistent rounding error, that intermittent asynchronous event bubbling issue, and optimized that query to reduce latency to milliseconds.

Not only are you expected to do so, you are encouraged to. That's the entire point - to sell yourself.

I'll confess - this is one of the biggest reasons for me to attend any job interview. Not only do I get to brag, I get to brag to an interviewer who knows exactly what I'm bragging about. That's not a small thing. You see, anyone can brag. But who you brag to makes a hell lot of difference.

Toot that horn!

As a tech, if you're bragging to people who don't have the know-how to properly appreciate the brilliance of what you're bragging about, it can be like casting pearls before swine.

But when you're speaking to someone who has a pretty good idea as to why your accomplishments are impressive, that is sweet. And the cherry on top? Impress that someone enough and you may just win a job offer.

9. Eureka moments

During interviews, you're asked to describe your current work, and the challenges you face. And this can have a few effects.

You'll talk about the problems you're tackling, and how you either solved them, or are attempting to solve them. And we all know what happens when you talk them through someone, especially if you're explaining those problems well enough: you get an Eureka moment. Honestly, a lot of problems are solved just by talking the problem through with someone; anyone actually. You don't really need to be in a job interview to get that Eureka moment.

Your Eureka moment.

But can you get that Eureka moment during a job interview when you're talking about your work? Yes, absolutely. I wouldn't make it the reason to do job interviews, but it's one of the possible side-effects.

10. Gaining Perspective

One thing may happen when you go for those interviews and discover all the things you wouldn't have otherwise. You may actually realize how good you have it. You may gain a newfound appreciation of your workplace, warts and all. If seeing how things are out there makes you happier at your job, that's value.

The grass is browner on the
other side.

Granted, some places seem more fun to work in. They're also potentially messy, have less benefits, and are a pain in the butt to commute to. It could be any number of things, or all of them.

In the process, you may just discover that you're really grateful to have this job. And that's fine. Just don't be too grateful. Your career depends on it.

I like to call it the "grass is browner" syndrome.

Final notes

I haven't followed my own advice in years. I do still think it's good - even great - advice. But for me, it's started to show diminishing returns. The gains just aren't there anymore once you've clocked in the hours. Still, what this means is that there are gains. I can walk into an interview and feel little to no anxiety. I can answer most questions glibly, and even if I don't impress sufficiently in the end, I'm rarely too bothered by it.

Do exercise caution. It's entirely possible that you'll become better at passing interviews than actually doing the work... and that's the last thing you should want.

Let's review this in five years!
T___T

Monday, 4 May 2026

The Case of the Awkward Tech Interviewee

It's been a while since I attended a job interview. As an applicant, anyway.

Recently, I was on the other side of the interview, reviewing candidates for a tech position within my company. The interviewee in question was a nervous-looking Malaysian. There wasn't anything that really stood out, except for his awkwardness. Which, in itself, was a problem. You see, for tech positions, sometimes one can get away with not being able to communicate that well. The stereotype of socially-inept but brilliant techies exists for a reason.

Brilliant but
awkward?

However, this particular position was for a leadership role. And lack of communication skills just wasn't going to fly. I could tell that my co-interviewer had already written our applicant off and was about to call it in, but I persisted. We'd already scheduled and allotted the time; I figured that I might as well develop the muscle memory I needed for being an interviewer.

Besides, it could have been just nerves. Some people have told me I can be intimidating, a statement I consider laughable. Please, look at this face. Nothing about me is remotely intimidating.

Either way, I decided to give him a question he could answer. I asked him to explain what he would do to combat SQL Injection. His answer, predictably, was "Stored Procedures". My follow-up, probably just as predictably, was why Stored Procedures? What do Stored Procedures do that normal SQL queries don't?

He stammered. Hemmed. Hawed.

After a few minutes, I put him out of his misery. I told him to Google the term "paramterized queries". And then told him that in future, if anyone ever asked him a question like that again, he should refer to that, rather than simply say "Stored Procedures". It would be a better, more complete, more correct answer. And more importantly, it would be an answer that instilled confidence in the asker of the question, confidence that the answerer knew his shit.

After we were thanked him for his time and bade him goodbye, my co-interviewer turned to me and asked me why I'd spent so much time on this guy. Did I see some potential that he'd missed?

I replied, simply, that we obviously weren't going to give him the job... so I might as well give him something.

People commented on my perceived generosity, or at least, on me "paying it forward". I don't think either is true. This was decidedly not about making the tech industry a better place, or even giving back.

Back then...

Upon further reflection, something similar happened to me in the days when I was the applicant. There were times when I sensed I had failed the interview, and when the interviewer asked if I had any questions, I ventured out of the box.

I asked for advice. And this paid off in spades. They proceeded to tell me more or less where I'd gone wrong. We all knew I wouldn't make it past this round, but they at least thought I deserved a fighting chance... somewhere else. They wanted me to succeed, again, somewhere else. I guess it helped that His Teochewness has such a winning personality.

Seeking answers.

I think that helping candidates along is a very natural instinct on the part of any tech interviewer who takes their job seriously. Of course, it helps if the applicant doesn't piss them off. One may object on the grounds that this helps applicants cheat on their next tech interview. That's only true if they get asked the exact same question next interview. Also, let's be real, answers are all over the internet.

And from a cynical point of view, even if it's true that you're enabling inferior candidates to "cheat", they'd likely be "cheating" at the interviews of your competitors. Nobody really needs me to explain this one now, do they?

It's probably also true that techies generally like to look out for other techies. Some little tribal instinct there. Us geeks against the laypersons.

To conclude...

Interviews need not be an adversarial exercise. Your interviewers want you to succeed, or at least not turn out to be a total waste of time. Selfishly, because they already invested the time and energy into prepping for this interview, and conducting it. From that point of view, they get nothing if you turn out to be a dud.

Therefore, they don't need to love you. They just need to not severely dislike you. And the rest takes care of itself.

Without question,
T___T

Wednesday, 15 April 2026

Film Review: Black Mirror Series Seven (Part 2/3)

This next episode, the rather pretentiously titled Bête Noire, deals with gaslighting. Tech? Well, there's plenty. Maybe even too much.

The Premise

Maria starts to question her reality when ex-schoolmate, Verity, joins her company Ditta (which had a brief mention in the previous episode; fun fact!). She soon finds out that reality is being manipulated with the intention of driving her to suicide.

The Characters

Sienna Kelley is Maria Skinner. She delivers one hell of a portrayal of an argumentative control freak who always needs to be right, the not-so-reformed bully who instinctively reverts to form once the conditions present themselves. It's sometimes subtle, but Kelley pulls it off. It helps that the argumentative control freak personality is absolutely a thing, and I know more than a few people like that.

Rosy McEwen is Verity Greene. It's also a compelling performance from her, perhaps even more so considering the rather unbelievable premise. She's a victim of bullying who finds near limitless power but decides to spend it tormenting her former bullies. I find this thoroughly unrelatable because in her shoes, I'd be busy exploring so many possibilities and cementing my position. Despite this, McEwen manages to elicit sympathy.

Ben Baily Smith as Gabe, the boss. I found his portrayal as a laid-back hill boss, utterly watchable. Gabe bikes to work and comes off as chummy and sensitive, and tries to be reasonable and tolerant. Which can be tough if you have a pushy mofo like Maria as a subordinate. Just saying!

Michael Workéyè plays Kae, Maria's boyfriend. He's nice and goofy, and really quite the emotionally available guy. Another guy who tries to be reasonable with Maria and puts up with her bullshit. I'm starting to see a pattern!

Ben Ashenden as Nick, from the Graphics department. Comes across as enthusiastically friendly where Verity's concerned. Perhaps even over-friendly. Later on, he pushes Maria's buttons in very annoying ways. Overall, a rather immature character, but the actor looked like he had fun.

Elena Sanz as Camille, focus group tester. She reminded me a little of Gemma from M3GAN. Thought she'd have a bigger role here, but it was not to be.

Hannah Griffiths as Luisa. There's this running gag where people constantly steal her almond milk from the fridge. It druves her nuts, and ties into the story.

Amber Grappy as Yudy, the kitchen head. She always has this confused look. I don't know if that's by design.

Ravi Aujla has a brief appearance as Ditta. Good-looking distinguished silver fox guy. Not really interesting otherwise.

The Mood

The episode is bright and colorful, and the closeup visuals of chocolate and confections sure add to the artistry. Later on, this does not change, though the mood takes a turn for the sinister, which somehow gets worse considering everything is so visually... cheerful. In effect, the entire episode looks very polished visually.

What I liked

The storyline concept was pretty creative, even if it strained credulity at times. The themes of bullying, gaslighting and arrested development are pretty relevant and dare I say, timeless.

I like the visuals where they tell us what day of the week it is. It's just so artistic.


The actual gaslighting was pretty good! It started off subtle, with this foreshadowing shot that it was Barney's rather than Bernies... also, there are apparently two versions of this episode being aired, with this as a gag!


... to something like this, removing nut allergies from existence! And using Google to reinforce it, is just too precious!




What I didn't

Of all the titles they could've gone with that would have actually made sense, "Bête Noire" doesn't exactly stand out as a solid choice.

Unlikeable characters. Both the protagonist and the antagonist are anything but likeable, and that's even before the reveal at the end that Maria was Verity's bully. Maria is pushy and argumentative. Verity comes off as a tragic victim of bullying who's unable to move past the trauma and as such is in a state of arrested development. No main character comes even close to being sympathetic here.


Unbelievable tech. I mean... something as limitless as the tech that Verity is using, basically runs on what looks like a mini server farm? I suppose it's marginally more believable than that little "quamputer" we saw in Joan Is Awful.

The scene where Verity alters reality so that Maria has always spoken "Chinese". Honestly, if she's "always spoken Chinese", she should speak it a lot better than the garbage gibberish that came out of Maria's mouth. Badly-spoken Mandarin has always been a pet peeve of mine in Hollywood. Couldn't they have used Japanese, or Korean? Something arguably less easy to get wrong? Geez!

Conclusion

A mixed bag. It was a good gaslighting-style story with just enough corniness to make it enjoyable. And even with the rubbish they tried to pass off as Mandarin, the good outweighed the bad here. Solid episode.

My Rating

7.5 / 10

Next

Hotel Reverie

Monday, 5 January 2026

Five Image File Formats For The Web

There are a variety of image file formats used on the internet. Some of them have been around for a very long time; others not so much. They come in various levels of utility and relevance to the web landscape. Understanding image file formats is arguably more of a design discipline than it is a tech discipline; nevertheless, it's web development know-how and useful for web developers worth their salt, to at least understand the basics.

Since we're only talking about images used for the web, we won't be discussing TIFFs (huge files used by photographers) or Bitmaps.

1. JPEG (.jpg or .jpeg)


The acronym stands for Joint Photographic Experts Group. This is a file format that has been around for almost as long as the internet has been alive. It is still extremely relevant today, though its place is very much under threat from WebP.

PNG (left), JPEG (right); for
the JPEG, logo is blurred
around the edges.

JPEGs are useful because they use a lossy compression format. This means that part of the color information will be lost when compressed, but that's OK because the parts that are lost are generally not the parts perceptible by human eyes. Thus the compression would have to be significantly lower than the original before one can perceive any degradation in quality. And that, in turn, means that file sizes can get significantly smaller.

Thus, especially for small to medium photographic images, JPEGs were (and in many ways, still are) the numero uno choice in the pre-broadband era of internet. Ever tried to access an online photo gallery on a 54kbps modem? It would be an absolute nightmare if low quality JPEG thumbnails weren't used. The economical file sizes were economical for those times, though this may be less of an issue today, now that internet speeds are streaming quality.

Its one weakness is noticeable image degradation in images with flat colors and sharp distinct edges.

Use it for: Photographic images where quality is negotiable.
Don't use it for: Images with flat colors such as simple illustrations and logos.

2. GIF (.gif)

This can be pronounced with a hard or soft "g". I personally think it should be pronounced with a hard sound because the "g" stands for "Graphic", as in Graphical Interchange Format.

This is a lossless compression format, though you would be sadly mistaken if you thought this meant there would be little to no image degradation. The image degradation occurs due to the conversion from a full color palette of a photographic image to the 256 colors in a GIF palette, and not due to the compression... though the distinction is probably lost on the average layperson. Simply put, there are a limited number of colors in a GIF palette, and if one was to convert a photographic image to GIF, unpleasant visual effects such as "banding" or "dithering" would appear.

JPEG (left), GIF (right); for
the GIF, image is dithered.

However, for flat colors and crisp edges such as logos or illustrations, GIFs are perfectly adequate.

GIFs were insanely popular back in the day where quality didn't matter so much if you had animation and transparency. And GIF supports both.

Use it for: Low-quality logos or illustrations, especially if transparency and animation are required.
Don't use it for: Photographic images, ever.

3. PNG (.png)


Portable Network Graphics files handle crisp edges and flat colors just as well as GIFs, with the added bonus of transparency and animation (though this requires the APNG extension) just like GIFs. Visually, they're an upgrade over GIFs since they can also handle photographic images without the dithering or banding that often occurs with GIFs.

Where transparency is concerned, it's worth noting that GIFs offer full or no transparency, while PNGs offer full to no transparency - another major upgrade.

Partial transparency is
possible with PNGs.

Compared to JPEGs, they suffer significantly when comparing compression file sizes, since, like GIFs, they use a lossless compression method.

Still, with transparency (partial or full) and animation options, and the ability to handle both flat or photographic images, PNGs offers increased flexibility.

Use it for: Logos or illustrations, especially if transparency and animation are required.
Don't use it for: Unless transparency and animation are required, JPEGs should be preferred for photographic images... though in that case WebPs are still the superior choice.

4. SVG (.svg)

Take note of the name. Scalable Vector Graphics are just that - scalable. This means that unlike all the other image file formats, they can be scaled up or down with no loss in quality. This is because they are basically XML files, with instructions on how to render them, encoded as text. The browser then renders the images based on these instructions. Since they handle gradients as well, and aren't limited to 256 colors, these graphics aren't limited to flat colors like GIFs.

With SVGs, images can be
scaled up or down with no
loss in quality.

SVGs can suffer in comparison to PNGs at higher levels of complexity, since, as mentioned, they are basically XML files. Thus, a very complex SVG might be a huge file, while the equivalent PNG would still be a flat file and relatively small.

Use it for: Simple logos or illustrations, especially if transparency and animation are required.
Don't use it for: Anything else. Photographic images absolutely can be imported into SVGs, but the results are sub-optimal at best.

5. WebP (.webp)

WebP is Google's offering, and it is the currently apex predator of the image file format jungle. Not only does it handle photographic images at comparable compression sizes like a JPEG, it also handles transparency and animation like a PNG.

The WebP logo.

At just over a decade and change since its inception, It's still the new kid on the block, but already, it's settled in well. It doesn't hurt, of course, that Google the web browser generally uses it to generate image thumbnails in the search engine.

WebP hasn't yet become as ubiquitous and widely-supported as the other file formats, but it's probably a matter of time.

Use it for: For most things image-related, webP handles it all like a champ.
Don't use it for: For scalable logos and illustrations, SVG's still the superior choice.

Conclusion

Things have changed since the beginning of the internet and the online space is a whole new world now. Even though slow internet speeds and severely limited bandwidths are largely a thing of the past, it's still good practice to use the correct image file format for the correct occasion.

Get the picture yet?
T___T

Friday, 12 December 2025

Handle Your Imposter Syndrome

Imposter Syndrome. A curious term. It speaks, professionally, of the persistent doubt that ones current position is undeserved, that we do not have the talent to warrant what we currently have, and that one day we will be found out for the frauds that we are.

And among software developers, it's an all-too-common trope. I've struggled with it myself, and for good reason. There have been times when I doubted my own abilities as a software dev, after witnessing the rapid changes in the industry, being outright told I wasn't good enough, and so on. Sometimes interviewers tried to use it as a negotiation tactic, before tragically discovering that His Teochewness does not negotiate.

Never good enough.

I'm here today, however, not to tell you to be strong, or that you're better than you think. No, I'm going to do you one better - I'm going to explain why it doesn't matter even if your deepest darkest fears are true.

It's an unforgiving industry

First, let's establish a fact: there are probably tons of people in the industry significantly more talented and experienced than you are. (If that's not true, if you're at the top of the pile, there's no good reason for you to be reading this, so...)

Even these talented people are currently wandering around without a job thanks to layoffs in Big Tech such as Microsoft, Google and the like. The software industry is savage, man. All employers need is a hint that they don't exactly need you, and they'll be rid of you, just like that. Did these people deserve to be axed? I'd say no, but what do I know, eh?

Given the axe.

With that in mind, this is not to say that you absolutely deserve to be where you are. But statistically, if you didn't, chances are you'd already have been out of a job. Thus the chances of you at least somewhat deserving your current position, are pretty decent.

Also, let's agree that deserving to be in your position does not necessarily just mean you have the technical competence to do your job. You impressed the right people. You made the right connections. Those make you just as deserving, if not more so. Even if the interviewer at the job interview happened to be an idiot who was easily impressed, it's not like you just sat there and did jackshit.

So give yourself some credit. Not a whole lot of it, but at least just a little bit. Because my next couple points are about to annihilate everything I just said.

Deserving has nothing to do with it

You'll notice that I've been using the term "deserve" a lot. That was to help me make my earlier point - that you're not necessarily undeserving of what you have, and probably pretty deserving of it, at that. That's the good news.

The bad news is, what you think you deserve, does not matter. I've said as much previously. The world is much bigger than you and what you think you deserve, or even what you actually deserve.

Global forces
at work.

Have all the Imposter Syndrome you want. It changes nothing. You have less control over your own destiny than you think. There's certainly a lot that's within your control, but as those laid-off techies found out, there are forces beyond their ken. I'd say they deserved a lot more than what they ultimately got; but the fact is that they got what they got, and there ain't nothing me or anyone else can do about it, son. Them's the breaks. It's the way of the world.

We didn't ask for AI to come for our jobs. We didn't cause the interest rates to fluctuate and the Big Tech company boards to jettison their headcount. We certainly didn't ask for COVID-19, which was partly what caused much of the overhiring in the first place. But it all happened; and you know what, deal with it.

No pressure

Recently, Singapore held her General Elections, and as usual, on Social Media, there was a lot of self-righteous, self-aggrandizing caterwauling about "voting wisely" and "looking at the big picture". Dear Lord, the utter cringe of it all.

Anyway, my position was this.

No doubt your vote is important. Your contribution to nation-building should be appreciated. But at the same time, buddy, you're casting a vote, not curing cancer. Sit your ass down before you give yourself a heart attack.

Not curing cancer.

I take a similar attitude to work. Is your work important? Sure it is. If it wasn't, why should anyone pay you to do it?

But at the same time, is anyone going to die because you didn't do your job properly? If so, then yes, you should take your Imposter Syndrome seriously. Otherwise...

What are the consequences of you being unqualified to do your job? Do you rescue people from burning buildings? Fly planes? Arrest violent criminals? Build bridges? Some of us do those things, yes. But for the vast majority of us, it's not that vital that you're qualified for your job, and therefore you don't need to worry too much over whether you're good enough to do it.

You won't be killing anyone with your incompetence. At most, you'll severely inconvenience some people. Or several. In other words, get over yourself.

Conclusion

The question is not whether you've earned your place. The question is really - why does it matter? It could all be gone the next day, through no real fault of your own. You don't have to deserve something in order to get it, or even keep it. Sure, it helps, but that's all it does. The world is unfair like that.

Your imposter boy for programming,
T___T