I’m Michael Foord and I’m a Python trainer, coach and contractor. I specialise in teaching Python and the end-to-end automated testing of systems. I’m also available to mentor and coach teams in Python infrastructure, coding and development best practises.

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.


For training packages available, including custom training and coaching:

Contact me



  • 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.

Past Work

  • 2018 Working with Gurock on building an end-to-end automated test system, including web functional testing, API testing and load testing.

  • 2018 Training with JBI Training, Advanced Python, Begininng Python and Webscraping.

  • 2011 - present

    Python teaching and training, from 2011-2018 on behalf of David Beazley for customers like HP and HP enterprise in the UK and Ireland.

  • 2017 - 2018 Principle Test Automation Engineer for Red Hat Ansible

    Principal Test Automation Engineer in the Ansible QA (Quality Assurance) team for Ansible. Working on the automated verification, both tests and infrastructure, of Ansible Tower. Ansible Tower is enterprise web app automation software using the devops tool Ansible.

    The tests, and test system, were written in Python using py.test and various different cloud backends.

  • 2014 - 2017 Go Developer for Canonical

    Working on the Juju devops tool, written in the Go programming language and using MongoDB. Working with cloud providers including MAAS, Amazon, Azure and Google. Two years spent on the networking team.

  • 2010 - 2014 Django Developer for Canonical

    Web application and web service development, as part of the online services team. Primarily working on two Django projects, the Ubuntu Payment Service and the Ubuntu Single Sign On Service.

  • 2009 - 2010 Silverlight and Django Web Application Developer for COMsulting

    Developing line-of-business web applications using Django and IronPython in the browser with Silverlight.

  • 2006 - 2009 Senior Software Engineer for Resolver Systems

    A small team developing a desktop application for the financial services industry. We develop for .NET using IronPython, Windows Forms and C#.

To see my professional endorsements and more details of my career history, see my LinkedIn Profile.


A selection of some of the talks and interviews I’ve given on Python and software engineering across my career.