Software Portfolio

There’s a lot of talk on this site about software engineering. So let’s confirm that I have indeed done some software engineering.

Academic Software

The first time I was paid for writing software, it was an emacs major mode. This was for syntax highlighting a language called GLE, a programmatic graphics engine for charts and other illustrations. Looking back at it now it isn’t the most capable of modes, but it got the job done! I went on to spend a few years administering UNIX servers in the same department, because software is nothing if it isn’t deployed.

My current project is, a real-time epidemiology data platform for analysing the spread and development of infectious diseases. Developed to support scientists working on COVID-19, this open source platform will be adaptable to other outbreaks. I lead engineering on an international collaboration to keep G.h up to date.

Software Security

Early in my career I was senior Mac software engineer for Sophos. I led the development of SAV for Mac 6, the first version of the Anti-Virus application written specifically for Mac OS X and laying the ground for the company to offer Sophos Home for Macs free of charge. While I was there, I also helped the architects over at Utimaco design the Mac version of their full-disk encryption software. I’ve also helped plenty of app makers and service providers with information security audits, including friends in the third sector.

Mobile Software

At Facebook, my team developed testing tools for automated end-to-end testing of Android and iOS apps at scale. This let us trim a four week release cycle for mobile down to 1.5 weeks, and let manual testers concentrate on novel and exploratory tests with less re-treading old test scripts.

That’s not the only test-focussed role I’ve had! Back at Brainstorm (now EngageHub), I designed, ran, and automated correctness and performance tests for a real-time SMS, MMS, and WAP messaging and campaigns platform. If a TV channel is running a “vote by text” campaign your platform has to count the votes correctly and quickly; I made sure that it did.

Oh, and just to namedrop: I met Terry Pratchett a couple of times, as lead developer of Discworld: the Ankh-Morpork Mapp for iPad while I was at Agant. “As full of sheer exuberant business as maggots on a dead dog.”

I also trained plenty of future (well, then future, now current) app developers, as an instructor at the Big Nerd Ranch. And I helped even more software engineers out by taking a turn at writing the docs for a certain fruity mobile platform company.


The first thing I did when I got to Allinea (now part of ARM HPC) was to take the lead on their integration test framework, helping the team get the regression test failures down to 0 and have confidence in the development of new features for their debugger and performance analysis tools. Then I got into writing those features myself, leading development of a NUMA memory use debugger for Intel Xeon Phi.


They said it couldn’t be done. Literally. Financial advice experts said that DB transfer advice was “impossible” to automate. So of course, that’s what I did, in my first few months as head of software architecture for Wealth Wizards. By the way, that was their first product to use machine learning too. I also had a hand in designing a few of the couple of hundred microservices in the platform.