Excellent knowledge of the full software development life cycle for large C++ and Qt applications, with particular expertise in testing and maintaining large C++ code bases, especially legacy code.

In all my roles as developer, manager, scrum-master, product owner, and team lead, I have been most motivated by shipping software - releasing new, effective capabilities to users of the software I worked on. I’ve always been a keen advocate for more effective, sustainable development practices, whatever I have worked on.


  • University of Oxford Chemistry degree, with computational chemistry research project.


  • Independent consultant, helping teams streamline their work with legacy and hard-to-test C++ and Qt code.
  • I am a force-multiplier, always looking for ways to help teams find time- and work-saving short-cuts in their work, whilst learning and improving quality.
  • I share experience and learning from past transformations of leading teams in removing decades old code and data formats.
  • Now a regular C++ conference speaker, presenting on testing legacy code with Approval Tests, and general good practices with testing.
  • When not consulting, I now focus on contributing to open source C++ testing frameworks.
  • Strong network of contacts in the C++ community. Have been attending C++ conferences for many years, and one of the core founders of #include <C++>.


  • Excellent knowledge of the full software development life cycle for large C++ and Qt applications
  • Particular expertise in testing and maintaining C++ code, especially legacy code.
  • Excellent knowledge of principles of software build systems, and have written, and worked on, a variety of these systems.
  • Reviewed a number of technical books, including “Software Design X-Rays” by Adam Tornhill (author of “Your Code as a Crime Scene”)


  • More than 20 years of C++ and Qt experience.
  • Original author of the widely used Mercury crystal structure visualisation program.
  • Experience with systems based on multi-million-line C++ code.
  • Experience with dividing up large code bases into smaller projects.
  • Successfully lead a collection of teams to move from annual releases of desktop releases.
  • Implemented and/or lead multiple version-control migrations, always retaining all data that still had value. (Vax/VMS CMS to RCS, RCS to CVS, CVS to Mercurial – and that last stage, we were able to divide the original ~8GB repo successfully, using domain knowledge, and cross-team communication).


For a little more information, see Background.