Work with me

I’m currently on the look-out for freelance work opportunities which I can engage with alongside my own projects.

I’m also keen to meet people who have complementary skills and similar intentions for their work, so that we can exchange support and ideas, and to explore potential collaborations.

If any of this sounds interesting, please do drop me an email.

What I’m good at

What I’m curious about

I enjoy learning new things. Some things that I’m particularly keen to do more of are:

Past work

Here are a few examples of things I’ve worked on.


I spent four and a half years as Technical Director at Loco2. Our aim was to make it easy to book any European rail journey through a single website. I joined at an early stage, sat on the board, and played a key role in growing the business.

A big motivation for my involvement was the founders’ desire to use Loco2 to help mitigate climate change, by making it as easy as possible for people to take a train rather than a plane.

I worked on many things during my time there. Here are some that stand out:

  • Building up and guiding the technical team
  • Developing processes and documentation to keep the remote-first team running smoothly, such as: coding style guidelines, code reviews, on-call processes, error handling and deployment
  • Identifying and eliminating problem areas in the code base and infrastructure
  • Overhauling the ‘routing’ part of our software which identified which tickets were needed from which operator in order to make a complete journey
  • Developing our software architecture so that we were able to easily plug in new rail operators when we formed a commercial agreement with them
  • Reworking our hosting infrastructure to be more resilient and maintainable


When I first came to Australia I worked at the new ‘digital bank’ Up. I learned lots of new things on this project, such as React Native, GraphQL, Relay and Flow.

One significant contribution I made was around the automated testing infrastructure. I discovered that end-to-end testing of mobile apps is very difficult to make reliable—our builds were often failing due to flakey tests. After working to find and solve various individual cases, I saw an opportunity to rewrite our testing code to avoid common problems and be easier to use. Completing this work resulted in a step-change in build speed and reliability.

Open source

I used to be very active in open source software development in the Ruby community.

  • I was part of the Ruby on Rails core team, and did a lot of work refactoring and improving the database layer, Active Record
  • I started a project called Poltergeist, which enables developers to use PhantomJS to perform end-to-end testing of web applications
  • I started a project called Spring which speeds up development of Rails applications by keeping them running in the background. Spring is now included in new Rails applications by default


I have a BA in Computer Science from Oxford University.


I used to give talks at technical events, before making a decision to step away from it.

Here’s a non-exhaustive list: