Saturday, 11 February 2017

Curriculum Vitae

I'll soon be available for new work opportunities. I'm looking for primarily remote software engineering or technology roles, in either Python or Python and Go. I can be reached at michael AT python DOT org.

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.

Career Highlights in a Nutshell

10+ years Python development experience. 4+ years web development experience with Django. 3 years Go development experience, working on a container orchestration and cloud deployment system (Juju) . Python Core Developer with a special focus on testing and unittest. 4 years C#/.NET experience on Windows.

Author of mock, now part of the Python standard library as unittest.mock. Author of IronPython in Action (2009, Manning Publications). Advanced and Introductory Python training, on behalf of David Beazley and primarily for HP (8 times 2013-2016).

Regular organiser, speaker and presenter at EuroPython, PyCon UK, PyCon US and various other conferences. Microsoft MVP 2008-2010, Python Software Foundation Community Service Award received in 2010.

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

My personal obsession with computers and programming began in the early 1980s learning BBC Basic (a structured programming language on an 8 bit microcomputer) followed by 68000 assembly language on the Amiga (which had the first consumer operating system with pre-emptive multitasking).

Employment History

March 2013 – February 2017

Software Engineer, for Canonical, working on Juju

Juju is a service orchestration tool for deploying and managing systems in the cloud, on bare metal and with containers. Juju is written in Go, making heavy use of the Go concurrency primitives, and interoperates with (amongst other things) lxc/lxd and KVM containers and virtualisation, Amazon Web Services, Azure, OpenStack and the Canonical Metal As A Service project. From early 2016 on I was part of the team with a special responsibility for the networking features of Juju.
The Juju project was managed with tools including git & github, Leankit Kanban Board, Launchpad and Jenkins for Continuous Integration. Juju is built on top of mongodb.


Python Trainer, for David Beazley LLC

Delivering Python Mastery (advanced) and Introduction to Python (beginner) courses on site throughout Europe. Courses delivered 8 times from 2013-2016.


Software Engineer, for Canonical, Web Development

Working as part of a team doing web development with Django. We primarily worked on the payment service and single sign on systems. We broke these monoliths down into microservices and worked with our system administrators on revising our deployment practises to enable us to rapidly deploy updates using current versions of dependencies whilst maintaining system security. One achievement I am particularly proud of during my time on this team was the large scale refactoring of payment services to replace the business logic scattered throughout the codebase with a single state machine. This made invalid transaction status transitions impossible, as well as reducing duplication and making the system more stable and easier to maintain.
Both SSO and Payment Service were built on top of Postgres and provided REST APIs as well as a web front end.


Freelance Developer

My largest customer has been a German firm,, working remotely developing business web applications with Django and Silverlight. I travel regularly to Germany (about two weeks every two months), but most development is remote including some remote pair programming. Particularly fun was building a test suite into the Silverlight application, so that functional tests of the graphical front end could run in the browser.

April 2006-November 2009

Senior Software Engineer and Community Champion for Resolver Systems

Working as part of a small team of programmers, creating a spreadsheet development environment (a programmable spreadsheet) aimed at the financial services industry.
This was programmed almost entirely in IronPython (for the Microsoft .NET platform) with some C#. It used Windows forms for the presentation layer. The whole team has played a part in the architecture decisions and constant refactoring to maintain code quality and readability.
Because of my contacts with the Python and open source community, I was also the team 'Community Champion' (Technology evangelist).
We used agile development techniques like pair programming, test driven development (both unit tests and functional tests), continuous integration and iterative development.
This has involved some work directly with the Win32 API, primarily for automation in the functional test suite but also for remoting and a few other areas.


Sales Manager for TBS Ltd, an independent builders merchant

Managing the sales team at the Daventry depot of TBS, including:
  • Day-to-day management
  • Sales reporting
  • Appraisal, training and personal development of staff
  • Management of performance
  • Ensuring excellent customer service from all team members
  • Working with customers on project requirements including:
  • Initial contacting phase
  • Specification and product requirements
  • Quoting and Price negotiation
  • Project management of orders including post delivery follow up
  • Negotiating with customers and suppliers
  • Monitoring the stock profile
  • Researching and advising on new products
  • Responsible for winning new business and new customers
  • Resolving problems and disputes including customer service


First year of a law degree at Corpus Christi college, Cambridge UK completed.
A-Level Maths, Physics and English all at Grade A.
GCSE Maths, Physics, Chemistry, English Language, English Literature, Economics, History, Technology all at Grade A.

References available on request.

Thursday, 9 February 2017


One of the reasons I call myself a feminist is the horrible damage that the "normal" expectations of the male stereotype did to me when I was younger.

Those expectations actively ruined my life for a while (which was entirely my responsibility and fault that I let it happen). Whilst at university I was so ashamed of being a virgin that I let pursuing sex (very, very badly because of how bound up I was) take over my life - to the extent that the humiliation of the things I did and said in pursuit of that were a substantial factor in my drug psychosis which resulted in homelessness and years spent rebuilding my psyche (obviously the copious quantities of LSD were also a substantial factor).

So I can personally attest that the societal pressure to conform to the male role is, and can be, horribly damaging to men. Feminism, the pursuit of real equality and the destruction of "normal gender roles" is the movement I see actively working against this - and it can be of tremendous benefit to men as well as women.

I also identify as pro-choice. Pro-choice doesn't mean being pro-abortion, it simply means supporting a woman's choice - regardless of whether it be abortion, adoption or giving birth and raising a child. I don't feel like I have any right to make these kinds of difficult decisions on anyone else's behalf.

I strongly believe this is the morally righteous attitude and I will fight for it whenever I can.

A Momentary Lapse of Reason

All that exists is now. All that ever will exist, or ever has existed, is this tiny moment. And how precious it is. How worth fighting for, this fleeting instant

It dances, it is and we are.

Sunday, 5 February 2017

Theodicy and the Problem of Evil

Theodicy in a nutshell. If God created everything, then God created suffering.

If, as Christian doctrine teaches and indeed is the pursuit of the Christian practise, we are headed for a state where suffering and evil is not even possible, why did God not choose just to start there instead of putting us through all this? (Assuming that perfect love is God, as is the experience and premise of Progressive Christianity.)

Because evil is even a theoretical possibility the only theoretical solution is that we must live in a universe where evil is defeated. What we now experience is the outworking of that. That is one philosophical answer.

To put it another way. Even if God just created heaven and paradise, if evil was even just a theoretical possibility then eventually - given enough time - it would happen. Creation would fall and evil must be defeated. And so, here we are.

In order for evil to not even be possible it must have happened and been defeated. So the way things are is the only way they can be if we are to have true perfection.

Christianity cuts the Gordian knot by saying that evil is defeated by God incarnate dying to pay the very real price for suffering. There is a price and it is exacted in blood, the blood of perfection itself.

Friday, 27 January 2017

The Power of Your Love

Another recording of me singing. This is probably my favourite worship song of all, and one I can get totally lost in. 

"The Power of Your Love" by Hillsong Music, from around 1992.
Lord I come to You
Let my heart be changed, renewed
Flowing from the grace
That I found in You.
And Lord I've come to know
The weaknesses I see in me
Will be stripped away
By the power of Your love.

Hold me close
Let Your love surround me
Bring me near
Draw me to Your side.
And as I wait
I'll rise up like the eagle
And I will soar with You
Your Spirit leads me on
In the power of Your love.

Lord unveil my eyes
Let me see You face to face
The knowledge of Your love
As You live in me.
Lord renew my mind
As Your will unfolds in my life
In living every day
by the power of Your love.

Theology and Apologetics Yet Again

"Theology must mean knowledge of God, not knowledge of scripture, or it has no value"
Theology and apologetics is one of my least favourite topics, but as a Christian and a person who moves in Christian circles, it is a topic I often return to.

However much I dislike "theology", I am a Christian. Here is a statement of my faith and my struggle with faith and what seems to be the normal expression of faith.

As a Christian I uphold the Apostles' Creed and the Nicene Creed. I believe that Christianity as a practise and a philosophy stands or falls on the divinity of the Christ and on the resurrection as a historical event. I understand that to the non-Christian this leaves a case to be proven, and I understand why these claims alone would cause many of my thoughtful and loving atheist friends to reject Christianity. They understand that I disagree and we are able to love and respect each other despite our differences.

I also uphold The Eight Points of the Progressive Christian Network (PCN Britain) as a beautiful expression of faith and practise.

  1.     Seek God, however understood, guided by the life and teachings of Jesus
  2.     Affirm that there are many ways to experience the Sacred and that we can draw on diverse sources of wisdom on our spiritual journeys.
  3.     Recognise that following Jesus leads us to act with compassion and to confront evil.
  4.     Place hospitality at the centre of our communal and worshipping life and see the sharing of bread and wine as an expression of our common humanity.
  5.     Seek to build communities that accept all who wish to share companionship without insisting on conformity.
  6.     Know that the way we behave towards others is the fullest expression of our faith.
  7.     Gain more insights in the search for understanding than we do in certainty.
  8.     Work together within and beyond the Church to achieve a just, peaceful and sustainable world.
What I repudiate as a great error and failure of understanding (an intellectual and moral abdication) is the Chicago Statement on Biblical Inerrancy of 1978, which makes claims about scripture that scripture does not make of itself! Unfortunately, for many in the Charismatic Evangelical Christian movement, a movement that started in genuine and great love, the attitude exemplified by the Chicago Statement is the foundation of their faith.

On this point hinges much of the divergent way of seeing the world between myself and Christians from a more "traditional" Charismatic background. Ironically, many of those who see themselves as part of the "progressive movement" are part of traditions much older than the Charismatic movement (birthed in the seventies), which they feel is so "philosophically immature" as to barely count as part of the Christian tradition at all (not my words I assure you).

Point seven of the PCN eight points highlights what I consider to be this grave (although well intended) error of the Charismatic movement (and again, lest I be accused of arrogance for thinking this - this is a view shared by many, many other Christians - the witness of those of our brethren supports me). Point six of the eight points I find to be the most significant and the most convicting.

 So there you have it. My faith and my struggle with faith.

My great hope for the near future of my church is that where there are doctrinal differences we can genuinely - nay even officially - acknowledge that it's alright for us to not all think and believe the same things. To accept that we can have unity of heart whilst being in different places on our own respective journeys into the heart of God. My desire for doctrinal tolerance comes, at least partly, because I think that doctrinal issues actually matter not one jot in the grand scheme of things and the only thing that really matters is the substance and depth of your love, for this is the extent to which you actually know God who is love. (A view supported by scripture.)

For those who profess to adhere to the Chicago Statement, I would say that if the role you ascribe to scripture requires you to say that Numbers 5:11-31 was ever the heart of God towards women then you know a different God to me. That's before we look at the intellectual dishonesty required to ignore Paul's attitude to women (which no church follows now because it's abhorrent) whilst still claiming it is the word of God (the mental trick is to invent a cultural context that makes him mean something other than what he says).

I find philosophical proofs of any aspect of Christianity (i.e. pretty much the whole field of apologetics) unsatisfying. Either we prove God, and Jesus, is real through our life and the reality of how we love people (i.e. God must be evident, and therefore evidenced, through us) - or any other form of proof has no value anyway. So either people are convinced that God is real because of who you are and how you love, or your words are worthless. Very few people (but not none) have been debated or argued into the kingdom of heaven.

This is why I say, the only theory worth a damn is the theory of the practise. Trying to practise the theory is entirely the wrong way to approach Christianity. It may seem like a subtle distinction but in my experience it makes all the difference in the world.

The reason it makes a difference is because if you attempt to practise your theory and it doesn't seem to work, your likely conclusion is that you're not doing it right or not trying hard enough. This is a vicious trap, and it's the same old trap there's always been: "law". Just try harder, you're not doing it right, you're getting it wrong. It's a lie, that's not who God is. God is love. So *only* concentrate on loving, and work on understanding the nature of love in practise. And then you'll know God. At least that's what John says in scripture. (The ones who know God are the ones who love. A slight paraphrase of 1 John 4:7.)

If you attempt to practise your theory you project your view of the world onto it (something we all do anyway to some extent or other), and you limit what you can see and experience. If you seek to understand the practise of loving, finding the theory of the practise, then you work  hard to accept reality however you find it - and no matter how much truth differs from your preconceptions. 

When I say concentrate on loving people, I don't mean that in a weak and wishy-washy way. I mean work hard at it, make it your goal, you're only goal dammit! Then we can make it real.

The danger is that theology becomes a form of tribalism: we're right, they're wrong and these are all the reasons why... By this means Christianity becomes (as all tribalism is) a way to reject and exclude people instead of a path to love and include. A horrible tragedy.

I love tribes, I hate tribalism.

Visions of Heaven and Hell

"The truth is like a Lioness, you don't have to defend her. Let her loose and she will defend herself."
 In 2016 I went on a meditation retreat in Norwich and spent three days focused on prayer, meditation and furthering my pursuit of knowing God. I typically meditate for an hour a day, doing mindfulness of breathing. This is an exercise of the mind, deliberately stilling the soul in order to focus. During this practise I've had minor and brief visions, often of water, thrown up by my subconscious mind.

During this three day retreat I had an extraordinary series of visions like nothing else I've ever experienced. I've been reluctant to talk about them lest people would accuse me of lying or think me delusional or worse. But they happened and I don't appear to have gone mad.

Visions are regarded by mystics, and those who study mysticism, as the least reliable source of divine knowledge. This is because they are, like any spiritual experience, completely subjective. Visions come through, and perhaps are the product of, the depths of the subconscious mind. The meaning and significance of any vision is rarely objective truth, but a subjective expression of the state of the recipient. Not unlike dreams, but carrying more significance and potency as they are experienced by the conscious mind rather than the unconscious.

So I present this writing here merely as a very brief and inadequate record of an extraordinary experience.  I do not need to know, nor care, how "real" any of it is or was. However, I am happy to let the experience change me and work in.

I looked into the fire and I was all ashes. I have been unmade.

I made friends with death and the destroyer and I think I'm no longer afraid of death. Death makes things new. As strange as it seems death and the destroyer are good and they're on our side.

I felt the rule of heaven. We've won.

I saw angels and gods and they helped. I was bitten by the snake of beauty, but I couldn't look at beauty. I don't think you can, I think you die.

I was in the mouth of the lion.

I've never felt more ill than I did on the second night. But the third night was gentle. Agony and torment but never too much.

I saw the trickster and I did not go mad. I danced with the nightmare.

I saw the mouth of hell, but I wouldn't look and I won't go there. And I felt heaven destroying hell. Hell is not something to fear. Hell is good, it is where the evil goes. First we must rescue the people trapped there.

I saw people choosing hell, choosing ugliness. And we must let them.

I spoke death to evil men who must die before we can be free.

I went very deep, right to the edge of the realms of the dead, and that made me very ill. However, I felt that there was a path there and a path back and that gave me much hope.

I saw and felt the godhead incarnate who was dead and yet lives and who makes all things new.

"When it comes to life, my most considered conclusion, the one on which I have spent the most time and effort and the one of which I am most firmly proud, is that I really do not understand in the slightest. Not one little bit."