Senior software engineer with over eight years of experience working with a wide variety of tech stacks and languages, including deep knowledge of Javascript, Typescript, and C#.

A firm believer in automated testing and continuous integration, with a strong commitment to code quality and maintainability.

Experienced with all parts of the development lifecycle, all the way from design to deployment.


Senior Software Engineer, Pirate Studios
March 2018Present

At Pirate Studios I use an eclectic mix of languages and technologies to develop software for the world’s largest network of unmanned music studios.

My main role at Pirate Studios is leading our Facebook Live Streaming project. This project includes a Progressive Web App written in TypeScript with React, an API written in Ruby, and a Haskell app running on Raspberry Pis deployed in music studios worldwide. I’ve been involved with this project since its inception, turning ambiguous business requirements into a scalable and maintainable architecture.

Another large part of my role is mentoring junior developers in all aspects of software development. This includes formal and ad-hoc code review, pair programming, and more structured teaching.

I’ve also been involved with other projects using Elixir, Rust, and Elm.

Senior Software Engineer, Rocketmakers
September 2013March 2018

At Rocketmakers I worked with startups and corporates developing minimum-viable-products and production ready applications.

I had a leading role in all projects that I was involved with. I took responsibility for architecture and technical strategy, and more broad strategies for code reuse and quality across projects. I typically worked on the backend alongside a frontend developer, but I was occasionally required to work across the full stack.

At Rocketmakers I took an iterative approach to software development, preferring to get something usable into the hands of end users, and working directly with clients to continuously improve their products.

My projects at Rocketmakers included:

  • TravelLocal, a web application for connecting travellers with local travel agents, who can create and refine itineraries for bespoke luxury holidays. I built the backend components of TraveLocal’s complete travel platform from scratch in a very short timespan, and they are now a successful business. The technology used included node.js, TypeScript, and PostgreSQL.

  • PDMS, a system used by the English Institute of Sport to track performance and medical records of elite athletes. PDMS was used to great success during the 2016 Olympic and Paralympic Games in Rio, and will be used in future Olypmpic Games and other major international competitions. The technology used included C#, SQL Server and Azure.

Software Engineer, Technical Lead, Granta Design
August 2010September 2013

While at Granta I worked on GRANTA MI, a very large material science product for use in the aeronautic and automotive industries. I started out as a Junior Software Engineer and became a Technical Lead within just two years. I was responsible for implementation of new features across almost every aspect of the system, as well as the high-level technical strategy for API and Server products.

My time as a technical lead was spent designing and implementing solutions to maintenance problems typical in large legacy systems. Since then, I have felt very passionately about designing systems that are loosely coupled and easy to maintain from the start.



  • TypeScript
  • C#/.NET
  • SQL
  • Ruby
  • Elixir
  • JavaScript


  • Node.js
  • React
  • Webpack
  • Rails
  • Gatsby
  • Phoenix


  • Docker
  • Kubernetes
  • Consul
  • Terraform
  • AWS
  • Azure


  • Git
  • Bash
  • Linux
  • ELK
  • PostgreSQL
  • Redis


Bachelor of Science (Hons), First Class, Computer Science, Royal Holloway, University of London
October 2007June 2010

A-Levels, Mathematics (A), Computing (A), Physics (B), Long Road Sixth Form College, Cambridge
October 2005June 2007

An up-to-date version of this CV is always available at