I’m a firm believer that breaking systems into well-defined components with a clear responsibility helps software work better. Cloud services, particularly managed platform services, serverless compute, platform-managed databases and state stores make this easier.

A big messy pile of VMs or containers isn’t it, people. Do better.

If you’d rather not read any more online and want a PDF, here you go. I’m nice like that.


I work at Brunswick Corporation (formerly Navico), helping software and hardware teams build security and identity systems for millions of users and devices, serve over half a billion encrypted map tiles a month, and integrate with a ton of complex business systems.

Shaded Relief maps

In my first round at Navico, I ran a team building our first really credible online services with SLAs, service run-books and the like. I’m now focusing on software and service architecture, having branched out into security, PKI, secure update services, device registries, and a few other things.

Vector maps example

I build a lot slightly wonky code to quickly prove concepts as I feel it’s unfair to ask someone to build something that I haven’t researched properly. I also read a lot of industry standards, cautionary tales, and success stories, and try to make sense of the potential pitfalls in systems that could affect our products in the next decade or two.


I worked at Microsoft, firstly as a “Cloud Solutions Architect” (basically, technical pre-sales for the cloud) helping a select few companies with their cloud needs. As I used to say, I helped companies

Cloud all the things

After over 3 years at Navico, I returned to Microsoft as a developer on the Azure DevOps platform, working on identity and security. This had its high points (handling a truly huge number of requests a month), and its low ones (not really needing a huge number of requests a month, if the architecture was simpler) but overall, I learned plenty and realised that my lifelong dream of being a developer at Microsoft probably happened too late for me to fit in.

Before that

I’ve worked at a fair few places - check my LinkedIn for details.


I spent a few months at a startup building some fun “hybrid cloud” systems to allow customers to control their Azure, AWS, and on-premises systems in one place. It was ahead of its time, and sadly the company ceased with about an hour’s notice.


This little GIF sums up my time at Pottermore quite well:

"Doge meme GIF showing words related to my job at Pottermore"

For what it’s worth, I wouldn’t work there again, because I strongly disagree with JK Rowling’s anti-trans rhetoric. This all emerged well after I left, or I wouldn’t have continued.

If that’s a problem for you, please don’t employ or contact me.

Ancient history

Basically, cloud stuff since 2015 or so, web before that, a lot of C# throughout (although I’ve done some Python and increasing amounts of TypeScript), always aiming for good practices but with a commercial pragmatism that gets things done.

This site

As you can probably tell from this site’s, well, adequate-ish design, I’m primarily a back-end engineer.

Because I am extremely lazy and don’t want to spend time thinking about patching and serving requests, I’m hosted on GitHub Pages.

I’m using Jekyll, partly because it’s a good fit for GitHub Pages, and partly because I like Markdown.

I chose the Cayman theme, with some adaptations.