My job history is in reverse-chronological order as is conventional, but I’ve tried to write it as a story so you can see how I’ve got to where I am and the kind of things that interest me. If you were a fan of Memento and want the thrill of recreating it in CV format then read from the top, otherwise I’d suggest reading from the bottom.
I don’t mention technologies much because I don’t think it matters greatly when hiring engineers. It’s like the seventh or eighth most important thing. Things change frequently and technology details are easy to copy/paste from… er, I mean research on… the Internet. I’m most familiar with Scala, Ruby and AWS at the moment but I’ve used lots of other things in the past.
Principal Engineer, Deliveroo
April 2017 - Present
Security has long been one of my interests, and approaching my fortieth birthday I figured it’s one of the areas you want your old crusty engineers, so I set up an infrastructure security team alongside Alec Muffett.
We started and now run a successful big bounty programme. We also implemented and maintain Cloudflare as a WAF which is much more impressive than it sounds.
Once we had the basics in place we rebuilt the service managing identity to be robust and multi-region capable with OAuth 2.0 & JWT, which are both awful but ubiquitous. We’re also building a service to handle trust and non-binary permission checks for other services and generate audit trails which is pretty interesting and quite different to anything I’ve worked on before.
I’ve also done a lot of GDPR compliance work. I’ll tell you about it if you’re having trouble sleeping.
Staff Engineer, Deliveroo
Mar 2015 - Apr 2017 (2 years 2 months)
I joined Deliveroo early on when it was around forty people delivering food in London. The first few months were mostly sorting out really broken things like delivery times and order tracking.
Next up was international & corporate expansion. Three of us handled all aspects of i18n and l10n, launching eleven new countries in Europe and APAC in 2015. We also launched a fledgling corporate product. Much of the following year was spent on making things actually work in the countries we’d launched. Turns out tax, addresses and languages are hard.
I also spent a few months building a new team to fix our live ops tooling, monitoring billions of events to detect and resolve issues in real-time. The team were nailing it and didn’t really need me any more, so I stepped aside to let others move up.
Head of Platform Development, blinkbox Books
Jan 2013 - Mar 2015 (2 years 3 months)
I was responsible for the architecture and delivery of the books platform. My main focus was on hiring a team of engineers and evolving the existing monolithic Java web application into vertically partitioned services.
Some achievements in this role were successfully transitioning the team to Scala, building a lightweight pub-sub message bus to facilitate an event and command driven architecture, and moving the company from six-weekly dev cycles towards continuous deployment.
Sadly it turned out that Amazon was rather better at selling books than we were so the company folded. On the plus side, I learned I’m reasonable at managing teams but prefer not to.
Principal Development Engineer Lead, blinkbox Movies
May 2011 - Dec 2012 (1 year 8 months)
I’d been at the company about five years by this point and was feeling a bit stale and in need of a new challenge. Management is the next step, right?
Senior Development Engineer Lead, blinkbox Movies
Aug 2007 - Apr 2011 (3 years 9 months)
I worked with a small team to design and build a scalable platform using a service-oriented architecture on the .NET platform. We also developed a distributed video encoder, and wrote video parsers to be able to reliably extract data from and modify video files.
This was all pretty interesting and apparently I was decent enough to get promoted so I stuck around.
Principal Consultant, Netstore
Aug 2006 - Aug 2007 (1 year 1 month)
My role involved working across a number of projects simultaneously, including architectural reviews, pre-sales, and performance tuning. I was the lead developer on a number of BizTalk 2006 proof-of-concept solutions.
Although this job was varied and interesting, I spent a lot more time talking about technology than implementing it. Not really my cup of tea, unfortunately.
Senior Developer, Charteris
Feb 2005 - Aug 2006 (1 year 7 months)
I worked as a developer on three integration projects. One was based around Microsoft’s Connected Services Framework where we developed WS-* adapters to communicate with external systems; the others were based on BizTalk 2004.
With hindsight this all seems like a catastrophically bad idea, but I was young and naïve so try not to hold it against me.
Software Development Engineer in Test, Microsoft
Sep 2001 - Jan 2005 (3 years 5 months)
Joining Microsoft after university I spent the first couple of years working in test automation and performance tuning. Subsequently I worked as a test feature lead on two BizTalk 2004 projects, and in test governance on a BizTalk SWIFT messaging solution.
Testing was a good way into the tech sector but it was never really what I wanted to do. It was time to get a dev job.
Chemical Engineering, University of Nottingham
1997 - 2001, MEng (Hons) First Class
My degree covered a wide range of subjects such as maths, physics, thermodynamics and programming. The final year project was designing a chemical plant as part of a small group; part of my contribution was a genetic algorithm for resolving mass/mole balances across equipment, and a stepwise reaction kinetics simulator. I was awarded a BP Book Prize for excellent first year results and the J.C. Mecklenburgh prize for the most outstanding fourth year design project, which received the highest mark ever awarded.