Availability

I’m currently (as of September 2023) taking a career break and not looking for work, but feel free to contact me.

I am settled permanently in Singapore and will not consider relocation, however I would consider 100% remote opportunities.

Summary

A software industry veteran with over 15 years of experience developing backend web applications, distributed systems and frameworks in a variety of roles.

Expert in high-level software development, I strive to improve the quality of every codebase I work on through applying best practices and design principles. I have a deep understanding of distributed systems and microservice architecture, having implemented many of the core components such as service discovery, RPC libraries and resiliency stacks.

In addition to writing code I enjoy sharing knowledge with others, be it through one-on-one mentorship or giving presentations to hundreds of colleagues. I am also an experienced on-call leader and can be relied upon to coordinate an effective, careful response even during the most stressful incident scenarios.

Skills

  • Programming: Go (8 years), Ruby (3 years)
  • OS: Linux, Mac OS
  • Cloud: AWS, DigitalOcean
  • DB: MySQL, Postgres, Redis
  • Test: Automation, Continuous Integration
  • Infrastructure: DevOps, Docker, Kubernetes

Experience

Grab, Senior Principal Software Engineer

Singapore, June 2015 - September 2023

I was an architect for the internal-facing developer experience organization before resigning to take a career break.

Accomplishments

  • Integrated and migrated all Grab services to a modern service mesh (Consul), from conception to completion in just over a year, with zero downtime.
  • Developed a microservice framework (Grab-Kit) and drove adoption, eventually used to build hundreds of Grab’s microservices.
  • Authored several posts on Grab’s public engineering blog (engineering.grab.com) on the topic of resiliency in distributed systems.
  • Core maintainer of the monolithic backend codebase, performing several complex upgrades such as introducing Go modules.
  • Implemented the backend authentication service for Grab’s mobile apps, adding Facebook and Google login for the first time.
  • As chair of the Architecture Committee, maintained the internal RFC process and introduced a bi-annual ‘Tech Radar’ publication.
  • Many other roles including senior on-call lead, mentoring (engineers and non-engineers) and interviewing.
  • Presented to teams at local and international offices (Beijing and Jakarta) and a virtual conference to over 700 Grab engineers.

Perx, Senior Web Developer

Singapore, July 2014 - June 2015

I was the primary Ruby on Rails engineer for Singapore’s top mobile loyalty company.

Accomplishments

  • Designed and implemented the backend API for ‘Perx teams’, a feature that allows users to ’team up’ and group their loyalty points together to compete for rewards.
  • Implemented a new ‘merchant dashboard’, allowing merchants to view and take action on live analytics and feedback from their customers.
  • Wrote an integration with EZ-Link for users to earn points by taking rides on public transport.

Pagerise, Senior Web Developer

Singapore, September 2013 - July 2014

Full-stack Ruby on Rails and DevOps engineer for this e-commerce startup. I revitalised a struggling team under pressure to improve reliability while simultaneously trying to deliver on a new project.

Accomplishments

  • Created a zero-downtime deployment process using Capistrano, the Rackspace Load Balancer API, and a new Git workflow.
  • Created VM development environments for all projects using Vagrant and VirtualBox. New developers can get set up with a single command.
  • Refactored, upgraded and optimised internal Ruby on Rails code, solving many common pitfalls such as N+1 queries, unnecessary transactions, constant database reconnections and poor object-oriented code.

SpareRoom.co.uk, Senior Perl Developer

Macclesfield, UK - 2012-2013

Primary backend developer for the UK’s busiest flatshare website, with over 3.3 million users.

Accomplishments

  • Refactored legacy login, messaging and payment systems to modern, secure, object-oriented Perl.
  • Replaced a custom template system with a vastly more powerful, cross- platform solution.
  • Introduced many QA processes, code reviews and coding standards to enhance quality.

Inview Technology, Infrastructure Engineer

Northwich, UK - 2010-2012

Developed large-scale, high-availability server infrastructure and backend web applications to deliver interactive TV content to set-top boxes.

Accomplishments

  • Deputy team leader to 12 Perl programmers, sysadmins and DBAs.
  • Designed and implemented a cloud-based web cluster from scratch, using nginx, LVS load-balancing and CDNs.
  • Wrote much of the core server interaction, including initial registration and automatic updates.
  • Implemented release system and many QA processes on own initiative.

IBM

(acquired Transitive in December 2008)

Manchester, UK - 2006-2010

Built world-class internal infrastructure for dynamic binary translation software.

Accomplishments

  • Authored two patents through designing and implementing a novel test harness.
  • Led development of the lab’s change-management software, used by every engineer in the lab.
  • Taught Perl training courses internally.

Education

The University of Manchester

BSc Computer Science (1st class) - 2002-2006

For my final year project, Programming Using Equational Reasoning, I built a compiler for the algebraic specification language UMIST OBJ, using Haskell

Hobbies

Travelling, craft beer, reading & writing fiction, football, playing guitar, photography.

Nationality

British citizen, Singapore permanent resident