Here’s a run-down of some of the projects I’ve been involved in. The “Tech stack” underneath each lists major technologies used in the project, in particular the ones I am most familiar with.


Up until April 2014 I worked at Mindvalley, developing web-apps that supported their core business. Because Mindvalley market and sell wellness products, their portfolio of internal apps include: sophisticated campaign tracking services, an e-commerce platform, ESP integrations and more, all of which I helped develop.

Tech stack: Ruby, Rails, RSpec, Capistrano, PostGreSQL, MongoDB, Linode.

I worked on, a provider of fixed-odd financial contracts, as an employee of Regent Markets (the site’s owner) for six years. The service has a large user base, and I worked to maintain and bring it forward. I learned a lot about the dynamics of a software company during my time there, from how to have the discipline to write high quality code when everyone wants things done yesterday, to the difficulties of managing a team of developers in a fast-paced company with (seemingly) tonnes of priorities. Definitely my pragmatism, attitude toward Getting Things Done, and general maturity as a software developer was carved into me at RMG.

Tech stack: Perl, Moose, Mojolicious, Catalyst, PostGreSQL, CouchDB, Redis, JavaScript, JQuery, Apache, Nginx, Jenkins, Git, Debian.

This webpage showed a map of Bukit Gasing, a forest park located between KL and PJ. I started going to the park shortly after moving to the surrounding area. After visiting several times I felt I wanted to see a map of the trails, but when I searched the web I couldn’t find anything accurate. That plus being asked for directions a few times, and the existence of some groups fighting to stop further real-estate development on the park’s fringes, I decided that having some accessible, accurate information about the park’s features online would be beneficial to the community. After battling with the Google Maps JS API, Ruby’s Jekyll and writing a Ruby module that puts together the map’s data into a JSON file, the site was good to go.

I should add that I originally thought Rails would be a good choice to power the back-end (there are quite a lot of map nodes that need to be stored somewhere). It turned out that Rails wasn’t a good choice, and I ended up storing my map data on a “My Maps” Google Map, exporting the map to KML and parsing it into the format I wanted with a Ruby module. The one thing I got out of that endeavour though was one of my first experiences with Rails!

Tech stack: Google Maps JS API, Jekyll, Ruby, RSpec, Rake, KML, Rails.

This is my wife’s business website. She is an English Trainer, based in the Klang Valley area but often working across Peninsular Malaysia. The site from a technical point of view lacks bells and whistles, but I see that as a good thing. Easy to maintain, easy for visitors to find the information they’re looking for, or get in touch. There are some subtle yet interesting design elements that can be found if you look for them: Web Fonts, CSS3 gradients and HTML5 mark-up. (Oh, and I designed the site myself; which I mention not so much as a complement to my design skills but more as an explanation as to why it looks as it does :–)

Tech stack: WordPress, DreamHost, HTML5, CSS3.


Campr is a webapp that facilitates networking at events. It allows you to see everyone who is at the event you are attending, along with a little bit of information about each person. Based on this, you can single out people you may want to get to know better. The project was started at Hack Weekend, a delightful hackathon series that takes place every quarter in Kuala Lumpur. Working on Campr was a great learning experience, but we’ve ceased development on the project.

Tech stack: Python, Django, Tornado, SocketIO, RabbitMQ, SQLite, Heroku.

WebCamp KL

WebCamp is a monthly meet-up of web professionals based in and around Kuala Lumpur. I am a fairly active member of the community, and have helped in minor ways to organise some of the group’s events.

A site that I set up some time ago for the Cunningsburgh History Group, a community-based organisation from the village where I grew up. I handed over content administration to the group themselves, so the site largely runs itself.

Tech stack: MODX, DreamHost.