1 function to call when setInterval has failed you

From time to time, we have to check if something is finished, or a particular script has been loaded successfully in the browser, we would make use of the setInterval() function in the vanilla Javascript. This function can be traced all the way back when Javascript first came out. We should be all familiar, but seldom use the function due to the advancement of Javascript libraries and framework. The function is useful, but it has 1 problem. The problem is that in a low latency requirement, this function cannot meet the demand of periodically to run, as soon as possible. Even if you call like this,

Read More

Why Machine learning tools need GPU to shine — a deeper look from software perspective

 In our previous article, we have discovered GPU programming in the most unexpected place - an API of a SaaS product. It is the JQL of Mixpanel. And in this article we will explore further about the relationship of GPU programming and machine learning or deep learning. They are the most trendy terms in the tech world nowadays. So what is the connection between machine learning / deep learning tools and GPU programming? I guess every software developers will immediately scream “parallelization” and call it a day. But why is that so? Why is parallelization has anything to do with machine learning and GPU programming?

Read More

Reducer in Mixpanel API is weird, but genius

Mixpanel had been a crucial tool in my previous 2 startup jobs. We have to compile a lot of different views for our team to make decision based on the Mixpanel data. They can be very different and flexible. This flexibility is the key to mixpanel’s success. To leverage this, they need a very comprehensive query language for developers/marketers to perform complex queries on the data.

Read More

Get Things Done has a new mission

Starting from February, Get Things Done will become a platform for product developers and data analysts to write about their learnings on those topics. Topics may include “how to better develop an X product in Y language” or “How to start competing in Kaggle?”. To start out, I will post a long article monthly on a topic of choice.

Read More

新年新氣象

2016對於很多人是一個變動的一年。很感恩,我在這一年得到的很多。年頭上班的公司雖然正式關門,幸有在MPayme時的上司聯絡,合作完成了一個項目,以解燃眉之急。舊老闆也把他的員工我推薦到投資者和朋友之間。初時面試並不順利,一次被拒絕的原因,到今天仍未釋懷。因為在幹了近五年工程師,被回絕的原因是「不夠senior」。我深刻反思了這個答案,十分感謝我的戰友們。回想我的職涯上,的確對大型系統後端經驗不足。終於輾轉之下,得到舊金山的一間初創公司面試,成功得到了一個機會,到舊金山和矽谷闖了一下。初時仍然有點猶豫,幸得家人和女友支持,才能下定決心,闖蕩江湖。

Read More

Year of Learning

First of all I am grateful that I am still able to pursuit my goals. I am still the immature son of my wonderful parents and aging grandparents. I am still the talk big do small brother of my careful brother. For that I am very grateful to have them with me.

Read More