I'm a senior engineer that strives to craft simple, robust software. I work closely with product managers and designers, leading small teams to produce high-quality products that people love to use.
I'm a good communicator with an easy-going personality. I'm attentive to detail, focused, and pragmatic.
My technical background is varied, and in recent years I've specialised in building high-traffic, distributed web systems, primarily built with Ruby on Rails, AWS, Docker, and Unix-like operating systems.
My other technical interests include Clojure, Python and React. Some examples can be found on my GitHub profile.
- Senior Software Engineer (2016—)
- the API that powers the app and public website. This is a Node.js (Restify) app, backed by Postgres and Elasticsearch. It exposes a GraphQL-like interface to enable flexible and batch-efficient fetching of multiple (possibly nested) resources in a single request.
- the content ingestion pipeline. This is also a Node.js system, running on AWS, that discovers venue data and expert reviews by crawling and parsing the web.
- Senior Software Engineer (2013—2016)
- Software Engineer (2012—2013)
99designs is the world's largest online graphic design marketplace, with a community of over a million registered designers.
I was the lead software engineer in 99designs' Oakland, CA office. The team focused on the design- and designer-oriented parts of the platform. Some of the things we built include:
- Discover — showcases designs from the community and provides design inspiration for potential customers. This is a Rails app, running via Docker on AWS, and backed by hosted Elasticsearch.
- Profiles — individual designer portfolios. Designers can curate their cover images, crop and rearrange their designs, and offer fixed-price design services to potential clients.
I was previously the lead developer of Projects, a 1-to-1 design collaboration platform that has grown into a significant revenue generator for 99designs.
- Software Engineer (2009—2012)
Rubicon Water builds fully automated irrigation networks, including remotely-operated control gates, demand management systems, and online ordering for water consumers.
At Rubicon I built J2EE desktop and web applications for water authorities and consumers in regional Australia. I was the lead engineer of a JSF web interface to the SCADAConnect system, which provided monitoring and control of remote hardware. I also built desktop-based reporting tools for the Demand Management System, which gives water authorities high-level insight into irrigation needs.
DWS Advanced Business Solutions
- Software Consultant (2007—2009)
DWS is a Melbourne-based consultancy, providing software development services for various companies including major telecommunications and infrastructure providers.
I worked in many different roles for various clients, including:
- Maintenance of Perl- and Oracle-based ETL pipelines for the data warehouse of a major telecommunications provider.
- Development of a J2EE web-based frontend to a complex workflow for a metropolitan electricity supplier.
- Provisioning and administration of Linux-based production environments.
- Web Developer (2004—2007)
Future Medium was a web agency based in Hobart, Tasmania, focused mainly on building brochure sites for local private businesses and state government departments.
I built websites using the in-house Java-based (initially Perl-based) CMS, converting complex visual designs into standards-based HTML and CSS.
I was also subcontracted to Squiz for about a year, performing similar work in their PHP-based CMS.