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 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 and consulting work in the UK and Europe.
For training packages available, including custom training and coaching:
- Python core developer and past maintainer of “unittest”
- Teaching Introduction to Python and Python Mastery training courses since 2011
- Author of IronPython in Action for Manning Publications
- 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
- Passionate about testing for ensuring quality of systems
- Passionate about good engineering practises and sound system design thinking
I’m also available for team coaching, individual and group mentoring and code review.
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.
2011 - present
Python teaching and training, from 2011-2018 on behalf of David Beazley. Primarily for 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.
- The Role of Abstractions: Lightning Talk PyCon US 2018
- PyCon UK Panel 2015
- To the Clouds: EuroPython 2015
- Automated Deployments with Juju: PyCon UK 2014
- Python and Pythons: PyCon NZ 2013
- Testing with Mock: PyCon US 2011
- New and Improved unittest 2: PyCon US 2010
- Michael Foord on IronPython: Hanselminutes 2009
- Michael Foord on IronPython: TechEd 2007