Work
Got to pay the bills somehow...

I’m a firm believer that breaking systems into well-defined components with clear boundaries of 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.
Currently
After my department got closed down and everyone made redundant, I am #opentowork
, etc. Get in touch if you think you could use my help.
Previously
I worked at Brunswick Corporation (acquirers of Navico, my previous-but-one employer), 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.

In my first round at Navico, I built and 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.

I build a lot of 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.
The Microsoft Days
I worked at Microsoft, firstly as a “Cloud Solutions Architect” (basically, technical solutions architecture for the cloud) helping a select few companies with their cloud needs. As I used to say, I helped companies

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 at a principal level. I have too many opinions about fixing wider platform problems to just stay in my lane.
Before that
I’ve worked at a fair few places - check my LinkedIn for details.
#startuplife
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.
Pottermore
This little GIF sums up my time at Pottermore quite well:

For what it’s worth, I wouldn’t work there again, because I strongly disagree with JK Rowling’s awful 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 was extremely lazy and didn't want to spend time thinking about patching and serving requests, I was previously hosted on GitHub Pages, using previously using Jekyll. previous articles here explain how I set that up.
I'm now using a containerised version of Ghost as Jekyll just... got in the way of me actually typing. It's all hosted under the umbrella of Advanced Rubbish Co (which I run), running on infrastructure from the excellent Mythic Beasts.