CV
Photo by Fabrizio Chiagano on Unsplash

About Me

Avatar

" An experienced software engineer who cares about quality, team, and society."

Portfolio

Running tracker

Running tracker

A mobile web app tracking runners trail using Web API and Javascript. The geolocation data only stay in users browser and not sending to any backend server ...

2021 Side project
Covid tracker

Covid-19 tracker

CovidClean (beta) helped travelers to make a better option by accessing Covid-19 cases connecting to flight information ...

2020 Side project
Itinerary planner

Itinerary planner

Travie App was a personalized itinerary planner providing attractions and restaurants recommendation, routes suggestions, and flight and hotel booking ...

2017 Side project
Car

Bills management

WonderBill changes the way you manage your household bills. Connect your provider, manage your bills and find great provider deals for your gas, electricity, mobile, TV, landline and broadband. ...

2021 Full-time
Car

Travel experience

Melco Club App simplifies the booking experience of hotels and restaurants at Melco Resorts ...

2020 Full-time
Personalised Investment Ideas

Personalised Investment Ideas

Personalised Investment Ideas is a smart tool that allows Standard Chartered Bank relationship manager to provide up-to-date buy and sell investment ideas scaled to suit your investment needs ...

2018 Full-time
Nature

Used cars trading

Autobid aims to solve the low transparency and efficiency of the used car market in Hong Kong ...

2015 Side project
People

Recommendation engine

A recommendation engine for TV set-top box users ...

2014 Full-time
People

Hong Kong Trade Development center

HKTDC.com is a e-commerce website for medium sized companies ...

2011 Full-time
People

Palo IT

PALO IT is a global innovation consultancy and Agile software development company dedicated to helping organisations embrace tech as a force for good ...

2017 Full-time
People

Travel Global

Travel Global is a travel booking platform ...

2016 Full-time

Services

Software Development
DevOps
System Architecture
Machine Intelligence
Photo by Gilles Lambert on Unsplash

Blog

Running Tracker

Make a running tracker with Geolocation API

Location service is a crucial capability of mobile devices. While enjoying all the advantages like direction service, checking the nearest inventory during online shopping, I am always concerned about how much ...

Jun 2021 Read more
Mountains

Visualize Your Skills with D3

The wave of Web 2.0, alongside the advance of mobile devices and the Internet infrastructure a decade ago, embraced a new paradigm of creating web and mobile ...

May 2021 Read more
Deploy API on Kubernetes for Free

Deploy API on Kubernetes for Free

Kubernetes has gained tremendous popularity and becomes the de-facto container orchestration tool because it provides ...

May 2021 Read more
Power Up Your CV With CSS (Part 2)

Power Up Your CV With CSS (Part 2)

In Part 2, we’re going to power it up with a practical and fascinating function to impress your audience by presenting your remarkable achievement visually.

May 2021 Read more
Power Up Your CV With CSS (Part 1)

Power Up Your CV With CSS (Part 1)

The recruitment domain has been advancing by more accurate employers and employees matching using Machine Learning algorithms in recent years. Ridiculously when we get into the details of the candidates ...

May 2021 Read more
Mock a Library in Jest and Typescript

Mock a Library in Jest and Typescript

Importing libraries to extend software capabilities is a productive approach in development. As described in the DRY (Don’t Repeat Yourself) principle, it is not sensible to reinvent the wheels in most cases. Building application with libraries ...

Jan 2021 Read more
Mock DynamoDB in Typescript

Mock DynamoDB in Typescript

In 2021 one of our team priorities is to move toward Serverless architecture. It is tricky to build the unit tests on top of the AWS services. It dragged me a couple of hours to figure out the most comfortable way to mock the DynamoDB functionality ...

Jan 2021 Read more
Jest With Typescript

Jest With Typescript

The test-driven programming approach has become many successful developers’ essential building block to deliver high-quality code. Mocha and Chai are a prevalent testing tool in the Javascript/ Node.js domain in the last few years ...

Oct 2020 Read more
Implement pub/sub in Node.js with Bee-queue

Implement pub/sub in Node.js with Bee-queue

In the distributed computing domain, event-driven or pub/sub is a sensible architectural option for asynchronous communication. There are several fashions to implement a pub/sub in Node.js ...

Sep 2020 Read more
Unit test with ES2020

Unit test with ES2020

ES2020 has released in June. Developers are fascinated by the new features like nullish coalescing, optional chaining, and Promise.allSettled. To experiment with it in the production pipeline, the unit test suite is likely the first thing developers need ...

Aug 2020 Read more
Install Mulesoft Anypoint Studio on MacOS

Install Mulesoft Anypoint Studio on MacOS

It took me a while to figure out the installation of Anypoint Studio on Mojave. The first problem was the Anypoint Studio is only working on a particular JDK version. The second problem was that ...

Feb 2019 Read more
Install Mulesoft Anypoint Studio on MacOS

Install Rabbit MQ 3.3 on CentOS 7

This is a step by step guide to install the Rabbit MQ 3.3.5.1 for the series of topics about AMQP messaging. Rabbit MQ support most of the Linux distributions, Mac OS and MS Windows. I would demonstrate it on ...

Sep 2014 Read more
Apply Dependency Control on AngularJS

Apply Dependency Control on AngularJS

Appreciated to the JS community for minify and uglify tools so we save much bandwidth for the web apps and the mobile apps. To uglify and concatenate java scripts files make the download more efficient ...

Mar 2014 Read more
Customize your own favicon in Kraken JS

Customize your own favicon in Kraken JS

Kraken JS is built on top of Express JS and Connect JS. It inherits the favicon of Connect JS by default and you may spend some time to get rid of it, just like me. Here is the workaround ...

Feb 2014 Read more
Synchronous control of iteration containing callback execution

Synchronous control of iteration containing callback execution

You love Node.js because of its non-blocking programming model to make your software better throughput. Sometimes you need step-by-step execution for example of a member registration which includes some database ...

Jan 2014 Read more
The influence behind a stocks market using social network analysis

The influence behind a stocks market using social network analysis

This analysis aims to reveal the influence of enterprises in the Hong Kong economy. Hong Kong is one of the remarkable financial centers in the world. Hong Kong economy is highly coherent to the stocks market ...

Dec 2013 Read more
Classification using Random Forest Approach

Classification using Random Forest Approach

Kaggle is really a great place to learn data science in a practical way. Today I just joined a competition (tutorial) and submitted my first prediction using Random Forest Classifier. I scored 0.77512 for my initial try and really surprised by the efficiency of the Scikit ...

Nov 2013 Read more
Install Scikit-learn on Python IDE Canopy

Install Scikit-learn on Python IDE Canopy

Canopy is a very well equipped IDE for Python programmer. With its free version, you 've have already offered NumPy, SciPy, and many more useful libraries. Today I need to use the Random Forrest Classifier from Scikit-learn, but it needs to upgrade to Canopy ...

Nov 2013 Read more
List of good books in Big Data

List of good books in Big Data

Data Science is an emerging field comprising of expertise across different domains. Here's a list of awesome books I highly recommended to individual from different level ...

Oct 2013 Read more
A movie recommender based on the similarity of text contents

A movie recommender based on the similarity of text contents

A recommendation function is gaining popular in many websites. It is useful to increase the traffic of the websites. There are many different implementation of a recommendation engine ...

Oct 2013 Read more
To achieve High Availability with two commodity computers

To achieve High Availability with two commodity computers

The High Availability becomes the implicit non functional requirement since the enterprises has been paying rising attention ...

Oct 2013 Read more