A polyglot IT professional who loves finding challenges across diverse subject domains, countries and cultures. 15 years experience in developer, sysadmin, devops, training, and consulting roles:

  • Agile development methodologies: XP; TDD; Pair Programming.
  • Follows established software principles: SOLID; DRY; Composition over inheritance; Simplicity.
  • The whole-of-system perspective gained as a sysadmin better informs everyday decision making. (Being useful with /(sed|grep|awk|regexp)/ comes in handy, too.)
  • Conducting training and education courses require concepts to be presented in an engaging, accessible manner.
  • Consulting improved personal project management skills, continuously refined through retros-for-one.
  • Applying perspectives accrued through a diverse professional career to gain a richer understanding of the problem space.

I deliver business value by:

  • implementing well tested, pragmatic, sustainable code.
  • working productively and sharing knowledge.
  • using overall direction and strategy to provide context for everyday decision making.
  • recognising the opportunity to learn: from failure as much as success(!), from colleagues and the wider community.


  • Ruby
  • Rails
  • Sinatra
  • Linux
  • Git
  • es6
  • React
  • Redux
  • Jenkins
  • Elasticsearch
  • Java
  • Postgres
  • MySQL
  • AWS
  • Docker
  • Chef
  • Vagrant
  • Jetty
  • Tomcat
  • Jira
  • Adobe Indesign
  • Python
  • Django
  • Perl
  • PHP
  • Oracle
  • Puppet

Outside the Office

  • Cooking1
  • Travel2
  • Hiking
  • Eating
  • Drinking
  • Reading
  • Cinema
  • [Indoor] soccer
  • Table tennis
  • Snooker
  • Golf
  • Not updating my website
  1. mostly Thai, Bangla, and Italian.
  2. fun fact: fun fact: I’ve spent about a third of this century living outside Australia.

Work History

Senior Software Developer
Lonely Planet

Full-stack developer in a strong, ego-free team, creating quality code through pragmatic agile processes. Responsibilities: the LP content publishing and authoring systems, (previously) a hypermedia API, AWS, and CI.

Conduct a lunchtime learn-to-code class where staff are introduced to programming via Javascript, and ask lots of interesting questions.

Senior Software Developer
Astute Payroll

Maintained and developed an in-house PHP CRMS designed specifically for recruitment agencies. It was not a fun job.


Developer: Living Archive of Aboriginal Languages; Australian National Data Service.

Project reviews: Humanities Networked Infrastructure; Australian Ecological and Knowledge Observation System. Multi-disciplined application of technical knowledge in "Semantic Web" infrastructure and services.

Mae Tao Clinic

Created a form wizard-style laboratory test results store with Ruby on Rails, using meta-modelling to describe laboratory tests and reporting miniparameters. Simple interfaces ensured low barriers to use.

University Publishing
Monash; ANU

Migrated publishing workflow to Adobe Indesign. The system was simple to use, resulting in fewer errors and book reprints.

Built ANU Press website with Wordpress, using its custom object API to describe domain objects and their relations. Domain mapping generated richer content while reducing operating overheads.

National Library of Cambodia

Volunteered as IT advisor to the National Library of Cambodia. Implemented Cambodia's ISBN registry using Ruby on Rails. Working with multiple character encodings is fun.

National Library of Australia

Sysadmin: web application, digital preservation environments. Preserving digitally-born material is hard!

Developer: web archiving and Library catalogue. Built the catalogue’s first performant relevance ranked search in the Library’s first agile project. I learnt the value of having a customer as domain expert.


Bachelor of Information Technology in Software Development, 1999-2002
Australian National University (Canberra, Australian Capital Territory, Australia)

Last modified August 2016.