developer's blog by 

4 Years as Front End

September 08, 2019

Today marks the 4th year anniversary of my working full time as a front end developer. Before this, I’ve never done anything consistently past two years other than my college major. I also find some interesting alignment with a college life so here’s a personal chronicle.


Breed Dinosaur or Ant?

July 28, 2019

This week, one project I worked on involved recreating a doc site inside Ant Design’s repo using its existing docs. Ant Design already has a doc site, building on top of which is a default option on the table. But I was also given the freedom to explore other options and so I’ve taken the liberty of diving into Docusaurus.


Notes on Flow 0.101

June 25, 2019

The upgrade to Flow v0.101 was surprisingly quiet in our code base. But the release notes contain some interesting reads which I’ll summarize as: a looming default on inexact object, retapping on React.memo and React.lazy, and LSP and performance improvements.

Here are some notes I jotted down as I learn about the changes. I’ve started building this Flow Notes repo too.


Notes on Flow 0.100

June 12, 2019

Flow 0.100 is out 💯. Reading and learning about Flow and JavaScript as always. This time, I have a short note on object destructuring, React type definitions, and put a link to a nice article explaining variance sigils.


Notes on Flow 0.99: Callable Properties, Function Statics, and More

May 31, 2019

Flow released 0.99 (comparing changes) a few days ago. This release contains changes around callable properties, function statics, a few more utilities coming from the React Component realm, bugfixes, and performance improvements for Flow server.

Once again I’m using those bits and bites to understand more about Flow and JavaScript, and this time it’ll be mostly around callable properties and function statics, which I’ll share about in this post.


Night Mode with Mix Blend Mode: Difference

May 04, 2019


I came across the idea of implementing night mode using mix-blend-mode: difference when I was preparing for my talk This World Mixed and Blended (these slides require color font support, i.e., FireFox / Safari). The original idea was only meant for a showcase and the browser support is currently limited.

Still, I implemented it to my dev blog and had a lot of fun. So this will be what this post is about. Meanwhile, as I thought more about it, it occurs to me now that this can be a legit preferred way night mode is to be done. And let me share a bit about the intuition behind that as well.


Notes on Flow 0.98

April 30, 2019

It’s a Monday after Flow updated 😱 0.98 seems to contain many fixes. Happy to see Flow making more sense version by version. I’m also glad to be learning bits and bites about Flow on the go so I thought I’d share about that :)


Building A Multi Author Blog with Gatsby

April 29, 2019

Note This is a very flat post where I list out all the steps I did to create a multi author blog. You may not want to read this because it can be very boring. It’s just not one of those post I give a lot of thought in the creative side of things.


Making Flow Happy after 0.85

April 17, 2019

Revised on June 11, 2019

For the past few weeks I’ve filled my free hours to upgrade our codebase’s dependency of Flow to its latest versions. We were stuck at 0.83 because apparently anybody who tried 0.85 immediately decided to give up. When I picked it up, Flow was at 0.89. The time I’m writing this, it is at 0.97 already 🤷🏻‍♀️


Reverse Engineering the Blending Mode of Gilbert Color

April 07, 2019

I’ve been preparing for my Talk.CSS talk about mix-blend-mode this week. Meanwhile, if you happen to have come across this cute little community called SingaporeCSS, and are even in our facebook group, you’d notice that the banner, though dates back to Jan 2018, uses an interesting display font.


Content Width Determination with the Box Model

March 10, 2019

I was working on a this design that contains a few badges aligned like this on a corner. The content of those badges is not fixed, so I do not know the exact width of each of them. However, the design requires that they have flexible widths.