About me

Profile Picture

Full-stack software developer living in Auckland, New Zealand

Have rich experience and strong problem solving skills.
Know how to apply best practices in real product development.
A quick learner and always want to learn emerging techniques.

Skills & Interests

Learn as if you were to live forever.

– Mahatma Gandhi


HTML, JavaScript/CoffeeScript, CSS/LESS

Bootstrap, jQuery, AngularJS, Dojo, Backbone, RequireJS

Grunt, Bower, Yeoman



Spring, Hibernate, JPA, JSP, servlet





Jenkins, Gradle, Maven, Ant

Docker, Vagrant

MySQL, MongoDB






If you have knowledge, let others light their candles in it.

– Margaret Fuller


Lodash Cookbook

Start learning lodash from this book. Lodash can increase your productivity dramatically and it’s an essential tool in your JavaScript toolbox.
This book is a very good introduction to lodash. It covers core concepts and functions provided by lodash.

Technical articles

A regular author of IBM developerWorks China and InfoQ China website with more than 50 published technical articles covering various technical topics.

(Simplifed Chinese)

Recent Posts

New Book - A Practical Guide for Java 8 Lambdas and Streams

Nov 18, 2015

This book is not the first book about Java 8 lambda expressions and streams, and it’s definitely not the last book about lambda expressions and streams. Java 8 is a Java platform upgrade which the community looking forward to for a long time. Lambda expressions and streams quickly gain popularity in Java developers. There are already a lot of books and online tutorials about lambda expressions and streams. This book is trying to explain lambda expressions and streams from a different perspective.

New Book - Build Mobile Apps with Ionic and Firebase

Oct 30, 2015

With the prevalence of mobile apps, more and more developers want to learn how to build mobile apps. Developers can choose iOS or Android platforms to develop mobile apps. But learning Objective-C/Swift or Java is not an easy task. Web development programming languages, HTML, JavaScript and CSS, are easier to understand and learn. Building mobile apps is made possible by Apache Cordova, which creates a new type of mobile apps - Hybrid mobile apps. Hybrid mobile apps are actually running in an internal brower inside a wrapper created by Apache Cordova. With hybrid mobile apps, we can have one single code base for different platforms. Developers also can use their existing web development skills.

NodeJS API proxy with CORS support

Jul 22, 2015

Our application’s backend is Java-based and exports REST API, frontend is AngularJS-based. During frontend development, use Grunt connect to start the development server for CoffeeScript/LESS and static files. To enable AngularJS to access the API which running on different port, we need a proxy with CORS support. So I created a simple proxy server using connect and node-http-proxy.