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.