An Ode to Windows Subsystem for Linux (WSL)

I’ve always been enjoying running my Linux-based development workflows on a Windows machine with Windows Subsystem for Linux (WSL). Even on a day when I don’t do any development work, I would still open up my Windows Terminal to run the sudo apt update and sudo apt upgrade -y command. Keeping my Linux system up-to-date manually somehow gives me a sense of blissfulness.

I’ve always been more comfortable working with UNIX-based environments. I got in touch with Linux when I was attending my pre-U programme. I installed it on my desktop PC and used it as my daily driver. Then I started to meddle with Hackintosh to try out macOS. When I started working, the first personal laptop that I got myself with was a MacBook Pro. Throughout my days with Linux, Hackintosh and my first MacBook Pro, I just had to make sure that the machines are configure with dual boot (or triple boot when I started to use Hackintosh) for Windows. I always had to reboot the machine to switch between the OSes for apps or tools exclusive on each of them.

When Microsoft announced WSL a few years ago, I was so excited about it. Back then, my MacBook Pro was aging and I was looking to get a new laptop. But the then-current generation of MacBook Pro with the touch bar was really deterring me from getting one due to various issues other buyers were experiencing. I was considering to get a laptop that comes natively with Linux, but pretty much all major laptop brands here in Malaysia shipped their products bundled with Windows. Having dealt with hardware drivers on Linux on desktop machines in the past, I was concerned about the same issue on a laptop, given how limited after-market hardware customisation can be done on a laptop machine. So the release of WSL bridged my needs for using my UNIX-based development workflows on a Windows laptop and saved me from the difficulty in selecting the right laptop to purchase.

The version 2 of WSL was released not long after the first version of WSL was released. WSL2 has also been an improvement for my workflow. I find it noticeably faster then its predecessor. Microsoft’s partnership and collaboration with the Docker team to port Docker for Windows to be powered by WSL2 instead of Hyper-V or VirtualBox also gave Docker for Windows a performance boost. The seamless integration of Visual Studio Code within WSL also makes the development flow much smoother.

Building on top of WSL, Microsoft also recently released Windows Subsystem for Android (WSA). Although it is not officially available in Malaysia, a fan of WSL like me would figure out a way to get their hands on it. Given that Android is based on Linux, the possibility of having Android running in the Windows environment, just like how Linux can through WSL has long been speculated. WSA could make mobile apps development much easier for developers. At the time of writing, I’m still tinkering with my WSL and WSA to establish a smooth Flutter development workflow involving the two. The possibility to have these workflows running harmoniously and seamlessly simply excites me.

I really appreciate and applaud Microsoft’s effort in embracing Linux and FOSS in general, as opposed to strictly opposing them years before. As a result of this change of their stance, we get good stuffs like WSL, Docker for Windows, Visual Studio Code, and many of the enhancements on GitHub etc. It makes the experience as a developer much more pleasant for me.


I have a love-hate relationship with journalling. The purpose of this blog is supposed to be for me to keep a journal regularly, but clearly, I have not been doing that.

I love writing. I enjoy the creative process when I write. When I’m feeling inspired, I could sense the words that I need to express my thoughts surfacing in my brain, as if they are surfacing out of a sea of my not-quite-extensive vocabulary.

Probably due to the fact that I’m not a native speaker of English, sometimes they don’t surface in the correct grammatical order, or they are wrongly spelled without hyphens, or the best choice of words don’t surface from the first attempt.

As I’m typing the words out, I often have to move the cursor back and forth to do some edits. Sometimes, I would quickly whip up a new browser tab to verify the correct usage of a word that I’m about to use. As I’m doing the verification, sometimes I would be drawn into the rabbit hole and start to read about other things remotely related.

When I’m out of the rabbit hole, I would usually wrap up the creation process of a sentence by reading it, both silently and out loud, to make sure that I’m happy with it. Nevertheless, I always gain a little sense of satisfaction for meticulously completing even a small paragraph in the most beautiful and befitting way I can, as if I’m an artist that completed an masterpiece.

Come to think about it, maybe I should write a book.

But what I hate about writing, is that I always take too much effort in crafting my sentences, to the point that I often could not complete the whole writing. Being very busy for my job as a CTO, I often can’t afford the time to write the way I enjoy—in the meticulous manner.

That is why I have not been writing in this blog for such a long time. It is evident because the last time I wrote here was when I first landed on the role of CTO in my former company.

After years of helming several start-ups as the CTO since 2016, I’ve come to question myself, whether is it just me, or this job really expects so much from a person. Anyway, I have a lot more thoughts on that topic and it is going to need a separate post on its own.

In the meantime, since I’m no longer attached to and employed full-time by any companies, I would take the opportunity to enjoy journalling while I still can. When I’m back being a start-up CTO again (if it happens at all), hopefully I would have figured out how to write regularly while being in the job.

Sticking with Twenty Eleven

I haven’t been updating this blog for exactly two years! Time really has passed.

I have been keeping the copy of WordPress that hosts my blog updated, but I haven’t been keeping the contents updated for quite a while. So when I click through the admin’s GUI, I found out that throughout the years that I’ve not been keeping the contents updated, two default WordPress themes have been released, which are Twenty Twelve and Twenty Thirteen.

Twenty Twelve looks bland. I didn’t even bother to preview it.

Twenty Thirteen looks too loud. The colour choice is too bright and all of the default header images are too distractive.

Twenty Eleven still looks better. Simple and elegant.

So I’m still going to stick with Twenty Eleven even though it’s 2013 now.