My regular Sunday brunch habit for the last month or so has been to go through Michael Hartl’s Learn Enough series. Although it’s been more of a refresher for me, I think it’s a great resource for anyone who’s just starting to learn to code.

(And if you’re an all-round nerd, you’ll also enjoy his writing style and pop culture references.)

One thing I love about Hartl’s materials is that he regularly emphasises on the importance of “technical sophistication”. 

Perhaps the most important aspect of technical sophistication is an attitude — a confidence and can-do spirit in the face of confusion that is well worth cultivating.

– Michael Hartl, Learn Enough Text Editor to be Dangerous

Learning to code is more than just learning syntax. It’s about knowing how to put together the syntax that you’ve learned. Or if you’re like me, you’ll know how to look for answers or play around until your algorithms work. 

The other thing I love is that I often find myself laughing out loud while reading. Unlike many other learn programming materials, Learn Enough has so much humour in it (or maybe it’s just #nerdhumor). 

For example, in one of the passages on making choices, there’s a link to an Indiana Jones clip on YouTube in which a character disintegrates after drinking from the wrong chalice. The clip then cuts to a Templar Knight who says, deadpan, “He chose poorly.”

This combination of serious technical instruction with dry humour is exactly what I need after a long week. This is my idea of “infotainment”.

It’s something I look forward to all week!


I’ve been reading a number of business and marketing books lately and one similarity I’ve noticed, especially in the ones that go into technicalities, is the mention of setting up systems and procedures.

In my previous company, I was a huge proponent of that.

I used to ask myself:

If you weren’t around tomorrow, would your business still be running? Would it still be generating a revenue?

And I wanted the answer to both those questions to be YES.

However, where a manual might work better in a large organisation, smaller organisations might benefit from playbooks instead.

Like sports teams, startups have to be agile. While there are many variables that may not be possible to account for, there are things that are constant.

To come up with a good playbook, one has to understand the rules of the game. But you also have to know how to navigate within those rules to come out ahead.

The playbook spells out an ideal scenario but also makes room for circumstances. What play do you make when such and such a thing happens?

If this, then that. Else, this.

Humans are like computers. We have hardware and we have software. And like computers connected on the world wide web, we’re connected to the rest of the world.

If we want our hardware to run smoothly, we have to write proper algorithms for our software.


Today, Ming and I talked about blessings in disguise. What I thought was a disaster last year turned out to be exactly what I needed, and didn’t know I wanted.

Looking back, all the experiences I had during the span of my career have led me to this point. 

As Arnold Schwarzenegger says, there’s no such thing as a self-made man. Throughout my life, I’ve had people who supported me. And even those who criticised and put me down drove me to do better. 

When I first started working in a media company, I was in a one leg kick sort of role, in which I had to write articles and advertising copy, strategise content and edit articles, coordinate media coverage for events, so on and so forth. But what I wanted to be was a journalist. 

When I requested a transfer, the supervisor in my two-(wo)man team told me that I “couldn’t be a journalist”, that when I walked into a room, I made people feel awkward. 

Her critique was delivered badly, but I made use of it anyway. Less than six months later, I was a journalist and while I may have made people feel awkward, I used that to my advantage. 

(It’s not a bug, it’s a feature. LOL)

Over the years (even in school), I’ve had my highs and lows. And I’ve learned that even at the lowest points, the journey’s not over. 

It’s over when you decide it’s over. 


There are days when trying to do any sort of creative work feels like squeezing water out of a rock. It happens to everyone. 

But we have to learn to work through the haze and the “writer’s block” (or your profession’s equivalent). If you write for a living, this block is no excuse for not producing work. 

Perhaps you produce less than desirable quality. But there it is, a first draft, something to work with and polish up later on. Version One is better than Version None. 

On days when writing 200 words feels like an uphill climb, I am more grateful for the days when the words just flow. And I appreciate these days as well, because it means an extra workout for that creative muscle in my brain. 

Like physical muscles, we all have it. It needs to be exercised. It needs to be stimulated. When necessary, it needs to be rested. But it also needs to be pushed beyond what it thinks are its limits.

There’s a trick I use. 

I tell myself that I don’t have to write. I don’t have to churn anything out if I don’t want to but I’m not allowed to work on anything else. And I have to sit my ass down until I’m done with a first draft. No matter how long it takes.

What happens is that I may take longer than I usually do. I may procrastinate. I may end up finishing a bottle of wine. I may feel like shit. 

But the anxiety of all the things I have to do, the deadlines I have to meet, crashes down on me and spurs my fingers to start typing. 

And when I finally leave my seat, I have Version One. 


Last week, I pushed code to a shared repository. I did it with trepidation; it’s been a long time since I worked on a collaborative coding project. 

There’s a lot of difference between working on your own passion projects (that may or may not see the light of day), and working on something with someone else for public consumption with the knowledge that some other developer might take over the code someday. 

One, it requires you to understand code that someone else wrote and while developers with more practice might find this easy, my code literacy is unpractised. 

Two, you have to write code in a way that makes sense to someone else. Your variable names have to be verbose, you should include comments. Your commit messages have to say more than “make edit”. 

Three, the edits you make could affect the entire app, affecting the work that your collaborators have done. 

I only made a single front-end (cosmetic) change to the app, but there was fear as I typed “git push” and prepared to press ENTER. 

After pushing, I realised that I should have pushed to a branch instead, and after that requested a merge. 

My heart pounded. Nothing will break, my rational mind said. And even if it does, there are ways to fix it


In Daughter of the Empire, the story focuses mainly on a race of people — the Tsurani — who seem to have been written based on an amalgamation of different real life Asian races. 

They believe in face, honour and the obedience to social traditions that are passed down through generations. One of these traditions is that when a youth wants to join the army in a House (aka family), he has to be related to one of the current army members. 

Once sworn into that house, he will never leave. His oldest son will take his place in the army. But second and third sons are free to join another house. 

When Mara of the Acoma takes over as Lady of her house after her father and brother are betrayed and die in the war, her army is severely weakened. Nobody believes she will stay alive for long. After all, she is young — only 17 — and besides being a girl (lacking training on taking over the House), has spent the prior six months training to be a nun. 

There’s nowhere for her to gain new soldiers — mercenaries aren’t trustworthy enough to be part of the main army, taking in younger sons from other Houses could mean a spy in her House. Instead of accepting her fate, she comes to realise the difference between law and tradition. And she learns how to bend traditions to her favour.

She goes into the mountain and looks for “grey warriors”, soldiers whose Houses have ceased to exist. In the Tsurani culture, they have no master and thus, no honour. These men are yearning to die as warriors and all Mara has to do is find a way to let them serve her. 

Somehow, by surrounding herself with people who think of ways to circumvent — yet stay within the boundaries of — tradition, Mara survives and eventually, thrives. 

This series of books is my go-to anytime I am troubled. Even though it’s fiction, I’ve learned so much about strategy and negotiation and leadership. 

Business books are great, but if you really want to absorb something, learn it through fiction. 


Product Hunt is my latest default type-in website. You know how you go on autopilot when you open a new browser window and type in a URL? 

For a lot of people it may be Facebook. For others, it may be Gmail or Twitter or Pinterest. But Product Hunt is my rabbit hole — the website I log into daily, my source of inspiration and ideas. I even read their daily newsletters. 

Which is how I discovered Qlearly

I hate multitasking and because I am extremely forgetful, I tend to have multiple instances of Chrome open on my laptop at the same time.

Different windows for different clients, different projects so that 1) I don’t end up switching to an unrelated tab by accident and 2) I don’t forget what I’m working on. 

(The alternative to this is that I write notes to myself, usually on Trello, otherwise I would never be able to find those notes.)

But with Qlearly, I no longer have to do any of that. It allows me to organise my bookmarks, as well as my TABS

And with a Trello-style drag and drop organisational system, as well as a search bar, it’s the solution to every productivity-driven scatterbrain’s problem.

Are you on Product Hunt? What products have you discovered and loved? Tell me about it!