Personal Summary

Web developer. In love with the open-source community. Spend most of the time on front-end development/design. Passionate about all kinds of new technology, tools and frameworks. HTML5, Nodejs, Reactjs, Meteorjs... Enjoy reading tech related news and articles. A true believer of the web and optimistic about the future. Always striving to be a better person.

Experiences

Product Engineer/Engineering Manager

November 2019 - November 2022
Gojek
  • Contributor and maintainer of an internal web app to interact with map related data
  • Maintainer of a couple of critical geospatial services shared across organization
  • Leading and managing an engineering team to collaborate with multiple stake holders

Software Engineer

October 2018 - November 2019
Axinan
  • Core contributor to consumer project igloo

Software Engineer

September 2016 - September 2018
Zendesk Singapore
  • Core contributor to Zendesk Message and Zendesk Chat agent dashboard
  • Maintain and evolve Message user interface with React, webpack, enzyme, babel, eslint etc.
  • Work on features in Message user interface, e.g. analytics page with some open source charting library
  • Work with internationalisation team to bring i18n support to Message user interface
  • Introduce jest, prettier to the team and push for adoption to improve developer experience
  • Revamp Chat user interface and contribute to React migration, tooling upgrade etc.
  • Work with design team to change color theme of Chat user interface
  • Push and work closely with Zendesk design system Zendesk Garden and build a react component library using it

Consultant

August 2013 - September 2016
IBM Singapore
  • Helped test and integrate ATM applications for banks
  • Helped develop Ticketing system and CMS console web application for branches
  • Developed multiple front-end JavaScript modules for client web application
  • Introduced and trained the team about new front-end dev tools and frameworks to improve dev workflow

Front Office Technology Analyst (Internship)

May 2012 - July 2012
BP Singapore
  • Independently worked on the project Front office Framework (FoF) and created more than fifty web scrapes to retrieve information from the websites and upload to database

Electronic Trading Data Analyst (Internship)

June 2011 - December 2011
Bank of America Merrill Lynch
  • Maintained information system to ensure data integrity and availability
  • Created several server jobs by writing bash scripts to automated certain system process
  • Explored a real time database system kdb+ and created more than twenty scripts to query the database to generate data reports for system migration
  • Initiated a rule-based engine to automate verification of transaction messages and improve data sanitisation efficiency

Projects

Side projects and open source libraries.

tully - An electron desktop mac task bar app to watch self-set tcp ports and kill the process that occupies them.
nps-autocomplete-prompt - A CLI utility to work better with open source tooling nps
svg-to-url - A node utility to convert svg to data url. A demo app is available on the GitHub page
open-gh-page - A CLI utility written in node to open a github page of a given user.
CSS Color App - A css color function test app.
React Echarts Component - A JavaScript charting library echarts component for react. It makes it easy to put sophisticated canvas-based html charts in a react app. A demo is available on the project GitHub page.
JS Playground - A JavaScript code playground for testing code snippets. It allows running JavaScript code with globally loaded libraries. It also store the code script in the browser storage so it is safe to refresh or even restart the browser without losing the code.
YouTube Together - A web application that allows users watching youtube videos together remotely. It supports searching for youtube videos and preview. Uses can also create a playlist and play any video in the playlist.
Hangouts - A web application that allows users hanging out through group video call using WebRTC technology. During the hangout session, users can access a YouTube app to search and watch YouTube videos together. (Inspired by the previous project: YoutTube Together)
Websocket Tester - A simple generic websocket tester which supports connect/disconnect to a specified url address and send any string content to the connected socket.
React Console - A Chrome developer console like component for react which makes code testing easy. It puts console messages in a DOM element to make developers easy to debug and play around.
Git Repo - A Node web application to provide UI to manage local git repositories. It supports displaying all git repositories in a specified folder in the system and showing the `README.md` for a specific repository. It also supports creating and deleting a git repository for authenticated users.
GIF Finder - A minimum web application to search for and view gifs. Thanks to the public APIs provided by giphy.
Meteor Slack - A slack clone chat application written using meteorjs. It allows registered users to do real-time chat in public channels and with each other privately. It also provides some console UI to allow users manage their profile and chat sessions.

Skills & Proficiency

HTML & CSS

JavaScript, es2015, CoffeeScript

NodeJS

ReactJS, React Native, AngularJS, MeteorJS, Redux

Webpack, Babel, Eslint

Python, Shell scripting, Perl

MongoDB, RethinkDB, CouchDB, MySQL

Java, Swift

Mac OS, Windows, Linux