CV

(PDF version)

Career History

03/2023 - 05/2023: Doxy.me - Staff Engineer


02/2020 - 12/2022: Babylon Health - Staff Software Engineer

I worked on several projects for Babylon. All of these involved working with AWS, Kubernetes and Terraform as foundational tech to all of Babylon's microservices. Along the way, I mentored three developers at different times, all of whom I was able to help improve and who fed back praise for that to my manager.

12/2016 - 02/2020: Oliver Wyman - Senior Developer

LShift was bought by Oliver Wyman, and I moved as part of that. I worked on:

01/2015 - 11/2016: LShift - Senior Developer

In January 2015, I returned to LShift, restarting the lead/senior role I had been in priorly, working on a variety of projects, primarily as the lead developer in most cases.

11/2012 - 12/2014: Spotlight - Senior Developer

As a Senior Developer for Spotlight, I was responsible for multiple areas, covering development work, architectural design and discussion with Product Owners regarding their areas of interest

03/2010 - 10/2012: LShift - Senior Developer

My work for LShift covered a wide variety of areas, both as part of a team and as the primary client contact/lead developer for various projects with up to 3-4 developers in a team, using Agile development throughout

04/2008 - 02/2010: Imperial College London - Research Associate in Body and Visual Sensor Networks

My primary focus was in embedded systems development for networked, battery powered devices

09/2003 - 01/2008: Delft University of Technology - PhD in Wireless Sensor Networks

Thesis focused on the nature of abstraction in sensor networks - examining how this causes problems through the various layers of the software stack, and showing how rethinking the way in which we approach the problems (using techniques derived from the relationship between linguistics and how it is related to how we think about ideas) can provide better solutions to the difficulties faced in sensor networks, with evidence from my implementations of novel protocols both in simulation and for node hardware.

Publications

See full list

Other Software Engineering Skills

Expert Python (20+ years) programmer. Other languages that I have commercial experience in include C, C#, Clojure, Java, Javascript/Typescript, Kotlin, Ruby and Rust. Expert level experience with Linux systems, particularly with Debian-derived and embedded systems. Worked with Kubernetes, Rancher and Dokku, as well as various custom Docker management systems. Have three apps on the Android store (one written in Kotlin, one in Java and a 3rd in Flutter). I've worked with most of the major CI and devops deployments systems (as well as having a go at building my own). I can talk knowledgably about reproducible build systems, AMQP, and Terraform internals among a long and expanding list of topics.

I've done a bit of commercial work in Rust, but I've done a lot more with it in my personal time. I'm the main maintainer for the awesome-rust list, I've got a small patch in the language itself and I've written a lot of open source projects in it. One of those projects has now exceeded 6 million downloads.

I was involved with the Gnome project as part of the BugSquad, aiding in bug triage work, and was responsible for closing over 11,000 bugs (mainly due to duplicate reports). I've also contributed back accepted patches for a wide variety of open-source projects from dbus to freetype, network-manager to packagekit, and some of my work used to be in the Linux kernel (until the architecture got removed).