This is where I was born and live. It is too small that the name cannot be even put on top of the region (but there are 7,000,000 people living in this tiny space).

When I was about 10, my parents bought a computer. Since then, I was totally addicted to it. I decided to become a programmer when I have grown up. I learned a lot of programming stuff in school but after I started my career, I realised programming itself is not enough. Programming is about communicating with computers, not human. That is why I am learning about user experience recently.

By the way, you can call me Alex.

Business elements online was the first company in which I worked as web programmer. I worked for 3 months in my summer holiday. I helped to create an Invoice System in PHP that was later integrated into the company's ERP system. That was in 2007 when AJAX was gaining popularity. Javascript was thus heavily employed in this system to make the application more like an application.
I worked as part-time in these two companies (RoRCraft & Art Group Limited) when I was in university. I played a little bit Actionscript to build a video player for one of the products in Rorcraft. It was a nice experience that allowed me to try Javascript with types.
I joined a competition organized by IBM with my friends and unexpectedly (OK, I was just trying to be humble) won the champion. We then entered IBM and worked as internship. This was a great opportunity for me to explore how the big company works. A single project can last for more than a year.
Pleiser was a company I cofounded with my friends. We hoped to sustain our business by taking outsourcing projects while sparing some time to develop our own products. It turns out we did not really have that much time to take care of both. We failed and closed the company.
Apptask is a company that specialises in developing enterprise level mobile apps. I am an iOS developer, and a Android developer, and a website developer and sometimes even a designer.
9GAG is a website for showing funny contents. Our mission is very simple, i.e. to make people happy. I was one of the Android guys who was responsible for developing the 9GAG Android app and also several other Android products. Have been learning a lot on Android app design and development :)
As the technical co-founder, I tried not to position myself as a developer. Instead, it took me some time to learn more about design and user experience. I helped design the app Tripalife and the website. However, it did not show a promising traction and we decided to stop the project.
I was also the technical co-founder in this company. The core business of this company is to manage a number of Facebook Pages and helps the clients promote and market their products/business. I helped to build a more automated system for managing the Pages and the websites.


WYSIWYG editor

Most of the famous What You See Is What You Get (WYSIWYG) HTML editors (e.g. CKEditor, TinyMCE) known to me are not quite WYSIWYG. Why are they not WYSIWYG? Say, if you want to modify the content in this page, what can you do with them? You need to create 2 pages in total. One is the front-end that displays the content and one is the back-end with the WYSIWYG editor that modifies the content. You can bold the text, change the font colour and maybe enlarge the text in the back-end. Then you save it and refresh the front-end to see the result. What if there are some default styles in the front-end? What if the text in front-end is using double line spacing? Of course you can imitate it in the backend. But that would be time consuming and as far as I see, many CMS systems like Wordpress, Joomla or some proprietary CMS systems are not doing it and remain the 2-phases WYSIWYG editing.

What I did is an editor that can be used in the front-end directly. You can enable the editor by double-clicking the element that you want to edit. To see it in action, you may double-click this passage to enable the editor. The benefit is obvious. You do not need to imagine what the content is going to look like. You can visually get know to it at the moment you edit the passage.

Again, in case you missed the last line, you can double-click this passage to try the editor. =]

Man20 (tested in Google Chrome only)

Man20 is a remake of a traditional Flash game called "Hold for 20 seconds if you are man". It was developed for demonstration in a charity lecture I did in 2012 Oct to draw the interest of mobile apps development from teenagers.


It was developed for a tutorial series in Dukeland originally. It was then forked as a github project by someone else. It compiles Actionscript-like syntax into simple assembly code and runs under a virtual machine (also implemented in the project).

PHP Multithread Simulation

PHP does not come with multi-threading support by default (at least not in PHP 4 and 5). You may need PCNTL library to do similar thing. This class simulates it by making new request to the server and let the server handle the multi-threading. This class was voted as No.2 of innovative award by PHPClasses.org.

Library link: PHP Multi-thread simulation


M4 is a web development framework that takes care of both server side and client side. It is "open-source" though I have never managed the delivery of the framework. I use it to develop for most of the web projects. You may try it but I will not promise for any support.



This is a technical blog I am participating in. In HK, I.T. is a deprecated subject after the dot-com bubble. It is not healthy to have such negative atmosphere in this tiny space. It is our responsibility to repair this flaw. As a result, we started this blog to encourage I.T. study and knowledge exchange.

Visit through this link: Dukeland
And these are the articles I have published so far: Link

HKGolden Plus & RSS (End of Support)

HKGolden is a popular forum in Hong Kong but it is also famous for the slow speed. At the time of development, "smartphone" was still pre-mature to process such complicated page. I had a smartphone but I could not visit the forum through the phone.

As an engineer =], I started this project. It fetches the webpage content from HKGolden and parses it. Then the data is cached and delivered to the end-user. Speed was thus highly improved by simplifying the DOM structure of the web page and removing unnecessary content. The project was then supported by many mobile phone users in HKGolden forum. At the peek time, there was over 150K pageviews every day.

HKGolden RSS is a derivative of HKGolden Plus. It is still working but not supported anymore.

Visit HKGolden Plus through this link: http://hkg.westkit.net/
Visit HKGolden RSS through this link: http://hkg.westkit.net/rss.php



To create something important and useful for human

Someone I admire

My parents
The most gorgeous thing they did was giving birth to me
Mrs. Chow Chan Ying Ha - One of my teachers in secondary school
Teach me not to stop learning new things
Steve Jobs
Inspire me the importance of simplicity
Bret Victor
"Inventing on Principle" is really stunning and changing what I thought about career, and life


  • Everything about IT of course
  • Programming language
  • User experience (I was hoping to learn design but I am partial color blindness indeed)
  • Philosophy (just in extremely-beginner level), recently watching Michael Sandel's Justice Lecture


  • Reading
  • Cycling
  • Listening to music


  • BEng(CS), The University of Hong Kong, FYP topic: An Intelligent Mobile Transport System
  • BBA(IS), The University of Hong Kong
  • Wa Ying College


Year Name
2011 HKU CS Final Year Project Competition Champion
2010 IBM Inter-University Programming Contest 2010 Champion
2009 IBM Inter-University Programming Contest 2009 Second Runner Up
2007 PHPClasses.org July 2007 Innovative Award Number 2