Availability
I’m currently (as of September 2024) about to return to work after a career break.
Summary
A software industry veteran with over 17 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