Software Engineering

Software Engineering

I believe that software engineering is as much of an art and a craft as it is a science. I believe that engineers should care about usability, and that encompasses the whole of the human computer interface from direct user experience to API design. I’m passionate in my belief that testing must be part of engineering if we are to really care about quality. I believe, and my experience has been, that we can ensure quality in what we produce through good practises and processes, whilst understanding that there are always trade-offs involved. Quality means systems that work, that are stable and that can be easily maintained and extended.

I’m available for training, coaching, mentoring and consulting work in the UK and Europe.


  • Python core developer and past maintainer of “unittest”
  • Teaching Introduction to Python and Python Mastery training courses since 2011
  • Creator of “mock”, now in the Python standard library as “unittest.mock”
  • Four years experience of rigorous application of XP (Extreme Programming) agile programming including TDD
  • Four years of web application development with Django
  • Three years of experience developing with Go
  • Four years of experience developing Windows desktop applications with .NET
  • Passionate about testing for ensuring quality of systems
  • Passionate about good engineering practises and sound system design thinking
  • Author of IronPython in Action for Manning Publications

I’m also available for team coaching, individual and group mentoring and code review. I can help teams put in place best practises infrastructure and development practises, including standard Python tooling and continuous integration systems.

Professional Software Engineer with Python since 2006, programming with Python since 2002. Three years of Go experience. Four years of Windows desktop development with IronPython and C#. Awarded the Microsft MVP 2008-2010 and the Python Software Foundation Community Award in 2010. Regular speaker at PyCon, EuroPython and PyCon UK.

Familiarity with industry standard tools such as git, mercurial, postgresql and jenkins. Three years spent wrestling MongoDB for Juju.

Organiser and compere of the Python Language Summit 2010-2014 and the Dynamic Languages VM Summit at PyCon 2011. Keynote speaker at PyCon New Zealand 2013, PyCon India 2014.