Showing posts with label Myanmar. Show all posts
Showing posts with label Myanmar. Show all posts

Monday, 13 July 2026

Hiring remote foreigners? Slow your roll, hotshot

"If I allow remote work, I'd be better off hiring programmers in Vietnam."

Sound familiar? Because that is the sound of millions of employers all over the world repeating the same old tired line. If I had a penny every time I heard some small-time Towkay-wannabe mouth off about how they'd save so much money by hiring foreign workers remotely rather than letting local talent work from home, I'd be absolutely rolling in it.

If I had a penny...

If you think this makes me sound dismissive, that's because I am. I am dismissing this line as nothing but bluster and hot air. And sit tight; I'm also about to explain why... in the Singapore context, naturally.

When it makes sense

If it's a huge MNC like, say, IBM, whose head office is in the USA and opening a regional office in Singapore, then yes, it makes total sense. Because they're already doing it. Their hiring and legal infrastructures are made for this. Even if the company is not at the scale of a large corporation, but still a respectable size, it might still make sense. It has to; plenty of these companies are doing it. The alternative is that all of them went nuts at exactly the same time... which is scarily plausible in these crazy times.

A game of expansion.

When hiring is done by the book, the host country (in this case, Singapore) and the remote country (in this case, Vietnam), both have agencies that will handle the legalities. I know because I've worked as an Agency Contractor before. These are absolutely a thing.

And of course, these agencies aren't doing it out of the goodness of their hearts. They're a business; they expect to get paid. This will eat into whatever employers think they're saving by hiring foreign workers, remote or otherwise. But that's OK - even if these tech companies don't save that much per foreign worker they hire, at scale, it tends to add up. Enormously.

When it makes less sense

A tiny tech startup trying to follow in the footsteps of a large corporation without understanding basic realities of scale, is on what I would charitably refer to as a "fool's errand". How many would such a company hire? Five programmers? Maybe ten? Whatever the company saves in wages, is nowhere what a larger company saves when hiring hundreds of these people. And if that pittance actually counts as a win, I would be deeply concerned about the finances of said company.

You sure you can
follow in those
footsteps?

I remember a time when Steve Jobs was considered the man to emulate. He was known to be a bit of an asshole, but he had undeniable talent, and thus he succeeded in spite of being hard to work for, or with. People took it to mean that in order to be as successful as Steve Jobs, one had to be an asshole. The end result was that we had quite a few Jobs-wannabes - basically talentless assholes with big dreams and even bigger mouths.

My point is, imitation may be the highest form of flattery; but for those ill-equipped to carry out said imitation, it becomes a liability quickly.

Also, consider this: any employer who isn't comfortable with employees working remotely on an island as small as Singapore, will be significantly less comfortable with employees working remotely out of Singapore.

If your employer is threatening to stop all this WFH nonsense by hiring more WFH programmers from beyond Singapore's shores, it doesn't take a genius to understand that the math does not quite add up.

When it starts being stupid

And it's at this point, where some employers will go, "Well, I'll just skip the red tape and hire direct from Vietnam, then."

Really? You're going to bypass all the legal and pertinent protections that hiring through the proper channels brings you?

How well do you know your own local employees, much less ones you hire from overseas? Do you know their residential address? And even assuming it's a verifiable genuine address, have you ever tried to navigate Vietnam using just a residential address without any understanding of the local language and conventions?

Pray tell, if the foreign software developer whom you don't know from Adam (or Minh, or Rajasamy) decides to sell your IP to the highest bidder, introduce malware into your code base or do any manner of damaging and illegal acts for profit or simply for amusement, how well do you expect to enforce your legal rights? Remember, they're not operating in Singapore, your home turf. Unlike local employees, these are foreign developers under a different jurisdiction where legal enforcement is already significantly harder - now made even more difficult because, y'know, you so cleverly bypassed the proper channels.

That's just the most extreme cases. Let's consider some less extreme but still very real considerations.

Time zones aren't that big an issue. This being Southeast Asia, assuming the employer is not adventurous (or foolhardy) enough to hire from further abroad, the time differences are off by a couple hours at most - an hour tops in the case of Vietnam. It'll need work, but it can work.

What's arguably a bigger issue, is culture. Just because you are all presumably communicating in English does not mean you speak the same language. Nuance gets lost in translation, especially if you're speaking through a computer screen. Honestly, colleagues have enough problems just communicating face-to-face, in the same culture, in the same language.

Don't cut through
this red tape.

And the most relevant question of all: Why, in the name of all that's right and holy, would anyone put themselves in this position just to save a few thousand bucks a month? Does a company that needs to save that kind of chump change so badly, really inspire confidence in you as an employee?

Anyone old enough to run a business, is too old to be this fucking dumb.

Hiring foreigners isn't foolish inherently. Hiring foreigners remotely isn't either, though significantly riskier. Hiring foreigners remotely without going through the proper channels? Reckless, and potentially illegal. Don't do it.

Conclusion and disclaimer

This is not meant to be any kind of statement against Vietnam. Vietnam absolutely does have a wealth of tech talent at affordable prices. I've worked with quite a few. I was only using Vietnam as a convenient example. I could easily have said Myanmar or India.

My point isn't that employers shouldn't hire foreigners remotely. My point is that it's not something that can just be hand-waved. Employers who have the experience and capability to carry this out, won't be talking about it because they are already - as Nike likes to say - just doing it. Or at the very least, taking cautious first steps. And the ones who are bringing it up casually as leverage during a discussion about remote work, will in all probability continue to just talk.

Your employer is not stupid. But if he's using hiring remote foreigners as a threat, he probably really hopes you are.

Tạm biệt hẹn gặp lại,
T___T

Saturday, 25 May 2024

Googlers Fired For Protesting Project Nimbus

Google is in the news again for firing people, and this time it's a little different. Just last month, Google dismissed 50 staff members for being involved in protests against Project Nimbus - Amazon and Google's cloud computing services deal with the nation of Israel. 

For those who've been living under a rock, Israel and Palestine are at it again. The how and when are going to need more time than you have to read this blogpost, so let's move on. Suffice to say, the concern is that Project Nimbus will have military applications, even if this is not the expressed intent of Google.

Mixed feelings about the Googlers

I'll begin by saying that yes, I agree with CEO Sundar Pichai, politics should be kept out of the workplace. If you don't like what your company is doing and can't square it with your conscience, just leave. Don't be a drama queen about it. Especially, don't use the time that the company is paying you for, to work against the company itself. Amazon employees protested Amazon's involvement as well, but at least that was only in the form of a signed petition. 

On the other hand, Project Nimbus sounds all kinds of dangerous. AI to profile people in Gaza? Possible military application? Huge potential for abuse. I don't blame the Googlers for not wanting any part of it. That goes double for if these Googlers are Muslim, or Palestinian. Seriously, why would Google even think it would be OK for a Muslim to aid Israel? There's only so far you can push the concept of "professional obligation".

An ominous cloud.

All that said, while their former staff might have been behaving in a manner that was less than professional, there's this part of me that thinks Google absolutely asked for it.

All these years, Google has been painting itself as this ultra-progressive place where their work shapes the world. They hired young idealistic types with self-righteous mantras such as "Don't be Evil" and "Do The Right Thing". The very kind of people who would be expected to dig their heels in if Google strayed from their perceived path of not being evil.

And now they object to this behavior? Come on, that's bullshit. Google made that bed, and now they get to lie in it.

About this whole Israel-Palestine thing...

I've had more than one person telling me that this Israel-Palestine issue should not be characterized as a "conflict" or a "war", and that doing so is disingenuous and downplays the fact that Israel is committing "genocide". OK, let's say that this is true. Let's say that the level of fuckery going on in that part of the world is off the scale.

But the Russia-Ukraine war is still going on. Pretty sure that hasn't been settled yet. People are still dying.

There's also whatever is allegedly going on in Xinjiang, China. Western media tells us it's a genocide, though at this point I trust Western media about as much as I trust China's. But again, let's assume it's true.

And Myanmar. After that coup back in 2021, the injustices are still happening, aren't they? Myanmar hasn't been somehow liberated while we weren't looking.

War is everywhere.

My question is; why do these people talk like the Israel-Palestine thing should matter to me the most? I get that if someone is Muslim or Jewish, without question, this should matter to them. And even if they're not Muslim or Jewish, they should be able to care about this issue as much as they wish.

But why me? Why do people insist that I care about this over everything else that's happening?

Human Rights violations? It's the humane thing to do? Children are dying? Shit, one could make the same argument about Russia-Ukraine, or Xinjiang, or Myanmar. I realize that this sounds horribly cold, but what makes Israel-Palestine special? Or is this just a case of "I care because I'm a good person, and if you were a good person, you'd care too"?

And if the answer is, no, I don't have to choose, I should care about all this equally? Sorry guys, I don't have the kind of bandwidth required to study the history of all these conflicts. I actually have a job, unlike those former Googlers (low blow, couldn't resist, heh heh) and shit I need to handle. At some point, we all need to choose what to spend our time and energy on. Yes, this sounds like a cop-out, but that doesn't make it any less true.

If they want people to prioritize this, a compelling reason is needed. And no, "be on the right side of history" (whatever that dumb shit even means) does not count. You guys realize that there is no "right" side of history, right? No matter what you do, or don't do, a hundred years from now, some snot-nosed kid is going to read a history book and judge you for it. The same way youngsters are now judging the likes of Abraham Lincoln, Lee Kuan Yew, and so on.

Conclusion

No two ways about it - in this story, everyone's an asshole.

Google, not for their business dealings with Israel. Project Nimbus is pretty disturbing, yes, but they're a company and they don't owe anyone an explanation as long as it's legal. But for hiring woke and passionate people who will absolutely put their passion over common sense, almost encouraging them to act that way, and then having the unmitigated gall to take exception when they inevitably do so? Total dick move.

The people who got fired, also did their best to make it happen. Shit, how did they think it was going to go down? Did they think Google was going to cave in to the pressure and beg for forgiveness? Google's been laying people off; they were probably grateful for the excuse.

No silver lining in this cloud!
T___T

Thursday, 15 April 2021

Web Tutorial: Free Myanmar

While the rest of the world struggles with a global pandemic, Myanmar has upped the ante in the form of a military coup that took place two months ago. The citizens of Myanmar have not been taking it lying down, however, and a massive and sustained outcry has made itself heard since. However, Myanmar has had a far rougher go of it than their counterparts in Hong Kong. The Anti-extradition protests in Hong Kong led to two deaths, one of which was due to some unlucky chap losing his balance and falling off the top of a building. The situation in Myanmar has seen, to date, at least seven hundred people die from military violence.

Now, as always with situations like these, I look for one thing - protest art. There's nothing quite like a perceived struggle against tyranny to bring out the creative romantic in all of us. My search turned out a whole bunch of images incorporating the three-fingered salute, and that's what we'll do today.

What we will use

This will be a combination of a HTML and CSS background, with the main parts done in SVG.

The HTML

Here's the boilerplate.
<!DOCTYPE html>
<html>
    <head>
        <title>Free Myanmar!</title>

        <style>

        </style>
    </head>

    <body>

    </body>
</html>


We will add a div with id svgContainer. Within it will be a svg tag.
<body>
    <div id="svg_container">
        <svg>

        </svg>
    </div>

</body>


For styling, svgContainer and the svg will be 800 by 700 pixels. svgContainer will be centered, and have a red outline so we have an idea of the borders we are working with.
<style>
    #svg_container
    {
        width: 800px;
        height: 700px;
        outline: 1px solid red;
        margin: 0 auto 0 auto;
    }

    svg
    {
        width: 800px;
        height: 700px;
    }

</style>


There you go.


And then let's style the background. I'm opting for a deeper red background (the color of Aung San Suu Kyi's party flag) that will graduate elliptically to black in the middle.
<style>
    body
    {
        background: -moz-radial-gradient(center, ellipse cover,  #000000 0%, #aa0000 100%);
        background: -webkit-radial-gradient(center, ellipse cover,  #000000 0%,#aa0000 100%);
        background: radial-gradient(ellipse at center,  #000000 0%,#aa0000 100%);
    }


    #svg_container
    {
        width: 800px;
        height: 700px;
        outline: 1px solid red;
        margin: 0 auto 0 auto;
    }

    svg
    {
        width: 800px;
        height: 700px;
    }
</style>


That's a good start! Really gives you that grim sense of foreboding, doesn't it?


Now for the SVG

We will be using path tags to represent the hand. First of all, we will style path tags to have a white outline. The background will be also white, but we will keep opacity at 0, for now.
svg
{
    width: 800px;
    height: 700px;
    margin: 0 auto 0 auto;
}

path
{
    stroke-width: 1px;
    stroke: rgba(255, 255, 255, 1);
    fill: rgba(255, 255, 255, 0);
}


The first part is the thumb. We begin with two straight lines.
<svg>
    <path
        d="M330 680 l0 -150
        l-50 -100
        "
    />

</svg>


This will form part of the wrist and thumb. You won't see it just yet.


We follow up with a curve, and then another straight line.
<svg>
    <path
        d="M330 680 l0 -150
        l-50 -100
        q0 -20 30 -50
        l130 -70

        "
    />
</svg>


You can see the thumb and its knuckle taking shape.


We follow up with two curves.
<svg>
    <path
        d="M330 680 l0 -150
        l-50 -100
        q0 -20 30 -50
        l130 -70
        q50 40 -70 100
        q50 20 50 80

        "
    />
</svg>


This completes the thumb and its base! The outline, anyway.


And here we retrace our earlier steps ending with a "Z"...
<svg>
    <path
        d="M330 680 l0 -150
        l-50 -100
        q0 -20 30 -50
        l130 -70
        q50 40 -70 100
        q50 20 50 80
        q0 -50 -55 -75
        l-10 10
        l0 -15
        l70 -40
        q35 -30 15 -55
        l-120 65
        q-25 10 -35 50
        l55 110
        l-5 10
        Z

        "
    />
</svg>


...to form a hopefully artistic outline of the thumb.


The second part is two path tags to represent the little finger. This here is the crook of the little finger...
<path
    d="M330 680 l0 -150
    l-50 -100
    q0 -20 30 -50
    l130 -70
    q50 40 -70 100
    q50 20 50 80
    q0 -50 -55 -75
    l-10 10
    l0 -15
    l70 -40
    q35 -30 15 -55
    l-120 65
    q-25 10 -35 50
    l55 110
    l-5 10
    Z
    "
/>

<path
    d="M455 350 l5 -10
    l5 -35
    l0 15
    l10 -5
    l-10 10
    l-5 20 Z
    "
/>


Doesn't look like much so far? Patience, young Padawan.


...and this is the rest!
<path
    d="M330 680 l0 -150
    l-50 -100
    q0 -20 30 -50
    l130 -70
    q50 40 -70 100
    q50 20 50 80
    q0 -50 -55 -75
    l-10 10
    l0 -15
    l70 -40
    q35 -30 15 -55
    l-120 65
    q-25 10 -35 50
    l55 110
    l-5 10
    Z
    "
/>

<path
    d="M480 680 l0 -150
    q55 -50 0 -250
    q-50 -40 -60 38
    l5 -5
    q10 -65 50 -30
    q65 190 -10 250
    l5 0
    Z"
/>


<path
    d="M455 350 l5 -10
    l5 -35
    l0 15
    l10 -5
    l-10 10
    l-5 20 Z
    "
/>


Good going.


This last part takes care of the other fingers. It's a very long sequence, but you should be able to work this out.
<path
    d="M455 350 l5 -10
    l5 -35
    l0 15
    l10 -5
    l-10 10
    l-5 20 Z
    "
/>

<path
    d="M300 385 l0 -250
    l2 -10
    q20 -50 45 0
    l2 10
    l2 -40
    q20 -50 50 0
    l2 50
    l2 -10
    l5 -10
    q15 -20 30 0
    l5 10
    l2 10
    l0 118
    l-2 1
    l0 -20
    l-10 -2
    l10 -2
    l0 -60
    l-10 -2
    l10 -2
    l0 -30
    q-20 -55 -40 0
    l0 30
    l20 2
    l-20 2
    l0 60
    l20 2
    l-20 2
    l0 60
    l10 2
    l-30 0
    l15 -2
    l0 -65
    l-20 -2
    l20 -2
    l0 -65
    l-20 -2
    l20 -2
    l-3 -70
    q-20 -45 -42 0
    l-3 40
    l-0 30
    l20 2
    l-20 2
    l-0 65
    l20 2
    l-20 2
    l0 65
    l20 2
    l-45 0
    l20 -2
    l0 -60
    l-15 -2
    l15 -2
    l0 -60
    l-15 -2
    l15 -2
    l-2 -40
    q-20 -60 -42 0
    l-0 40
    l20 2
    l-20 2
    l-0 60
    l20 2
    l-20 2
    l-0 60
    l10 2
    l-10 2
    q0 50 5 70
    Z"
/>


And here's our salute!


Now alter the CSS. The background and outline opacity we will set to 0.3...
path
{
    stroke-width: 1px;
    stroke: rgba(255, 255, 255, 0.3);
    fill: rgba(255, 255, 255, 0.3);
}


Coolness, a ghostly hand!


Now for the text. Let's style this. Both the background and outline are red, but at different opacities. I've gone with huge Impact lettering.
path
{
    stroke-width: 1px;
    stroke: rgba(255, 255, 255, 0.3);
    fill: rgba(255, 255, 255, 0.3);
}

text
{
    stroke-width: 3px;
    stroke: rgba(255, 0, 0, 0.2);
    fill: rgba(255, 0, 0, 0.1);   
    font: 180px impact
}


And then place the text behind the salute.
<text x="250" y="350">
    FREE
</text>

<text x="50" y="550">
    MYANMAR
</text>


<path
    d="M330 680 l0 -150
    l-50 -100
    q0 -20 30 -50
    l130 -70
    q50 40 -70 100
    q50 20 50 80
    q0 -50 -55 -75
    l-10 10
    l0 -15
    l70 -40
    q35 -30 15 -55
    l-120 65
    q-25 10 -35 50
    l55 110
    l-5 10
    Z
    "
/>


Here, you can see I adjusted the opacity so it blends in nicely.


And one final touch. What's protest art without a little blood? For this, we will use circle tags. Let's style them. So we can see what we're doing, I'm giving them a white outline.
text
{
    stroke-width: 3px;
    stroke: rgba(255, 0, 0, 0.2);
    fill: rgba(255, 0, 0, 0.1);   
    font: 180px impact
}

circle
{
    fill: rgba(255, 0, 0, 1);
    stroke-width: 1px;
    stroke: rgba(255, 255, 255, 1);
}


Here, I varied the sizes of the blood drops, and their positioning.
    l-10 2
    q0 50 5 70
    Z"
/>

<circle cx="250" cy="200" r="10" />
<circle cx="253" cy="220" r="5" />
<circle cx="260" cy="210" r="8" />
<circle cx="220" cy="200" r="2" />
<circle cx="230" cy="190" r="2" />
<circle cx="310" cy="190" r="1" />
<circle cx="210" cy="220" r="2" />
<circle cx="220" cy="210" r="2" />
<circle cx="230" cy="240" r="1" />
<circle cx="300" cy="180" r="2" />
<circle cx="200" cy="240" r="1" />
<circle cx="240" cy="245" r="3" />
<circle cx="250" cy="250" r="2" />
<circle cx="360" cy="230" r="2" />
<circle cx="350" cy="220" r="3" />


Adjust till you're happy.


Now turn the outline off. Here, I've opted to do that by setting the stroke-width property to 0 pixels, but you can do that just as easily by setting the stroke color to zero opacity.
circle
{
    fill: rgba(255, 0, 0, 1);
    stroke-width: 0px;
    stroke: rgba(255, 255, 255, 1);
}


Turn this outline off as well.
#svg_container
{
    width: 800px;
    height: 700px;
    outline: 0px solid red;
    margin: 0 auto 0 auto;
}


Here's your completed protest art!


Finally...

I am rather more sympathetic towards the situation in Myanmar, than the overblown drama that was Hong Kong. I'm not sure exactly why, but it feels different. For one, there's a lot more violence in the Myanmar situation. It's a storm of brutal tactics exercised by a remorseless military. And nobody deserves that.

Suu long!
T___T