HOME

How to Understand Legacy Front-End JavaScript

It's intimidating to jump into a large JavaScript codebase. In my opinion, the dynamic nature of JavaScript makes it harder to understand…

Posted on 2/19/2018

Reflection: From School to Work

I have been working as a full-time software engineer for 7 months now. I think it's time for some reflections. For those who don't know, I…

Posted on 2/11/2018

Create a Null safe world using JavaScript Proxy

Disclaimer, the content of this post is highly experimental. I recently learned about the nullable type in Kotlin. If an object might be…

Posted on 1/28/2018

Wow, I got lucky there

How my messed up code ended up saving me from regression

I have to admit, I made a lot of bugs. I work in the UI Infrastructure team and one of my main responsibility is to refactor existing code…

Posted on 1/18/2018

How I Broke the Routing System of Our Enterprise App

Working in the UIPlatform team, I was in charge of refactoring the legacy front-end routing system. When I finished, everything behaved the…

Posted on 12/23/2017

Create a Event System Using ES6 WeakMap

EcmaScript 6 came with WeakMap. MDN defined WeakMap as "a collection of key/value pairs in which the keys are weakly referenced. The keys…

Posted on 12/7/2017

JavaScript: Ways to create array of given length

How do you create an array in JavaScript and fill it with a constant? The most naive way would be: But that seems too much work for such a…

Posted on 12/4/2017

On Interview

Things I learned from conducting technical interviews

I have done a couple technical interviews, both on-site and online. In my spare time, I also did some mock interviews for friends. I am a…

Posted on 11/20/2017

Custom Jasmine Asymmetric Matchers

Jasmine provides some very convenient asymmetric matchers such as , and . Using them can make your test more robust. For example: Just…

Posted on 11/4/2017

React: setState Might Be Synchronous

This post is targeted toward React 15. React 16 (fiber) is around the corner and the API might change. For a while, I always believed that…

Posted on 7/30/2017