The Life, Ideas, and Legacy of Pieter Hintjens (from ZeroMQ to “A Protocol for Dying”)
Just four months before his death, Pieter Hintjens appeared on “Software Engineering Daily” and took part in a podcast interview called Death and Distributed Systems. It seemed like an odd title to me, especially since I had just come to find some podcast that provided a quick overview of ZeroMQ, but I quickly discovered the reason for the title. Hintjens, who was one of the co-founders of ZeroMQ, had been recently diagnosed with terminal cancer.
His voice rarely wavered and his manner seemed matter-of-fact. I groaned near the end when the interviewer made the analogy of “not leaving any dangling pointers behind,” but it embodied the feeling of the interview — it was calm, it was a little technical, but in terms of subject matter it was pretty heavy. I felt anxious, for example, when the interviewer asked Hintjens if he had a scientific fascination with his diagnosis and tried to study as much as he could about the disease (perhaps this is how the interviewer would have responded to the news if it had happened to him). Hintjens answered, quite simply, that he didn’t learn much about his illness because it was terrifying to him.
But hang on…who is Hintjens, what is ZeroMQ, and why do I find either of these two things interesting? The latter thing is not particularly profound — I might need ZeroMQ for some project, practically speaking — but the former might be answered by this picture.
Read the above. You can already tell this is not just your ordinary guy, right? Now read this excerpt from that same piece of documentation:
Today we face another software crisis, but it’s one we don’t talk about much. Only the largest, richest firms can afford to create connected applications. There is a cloud, but it’s proprietary. Our data and our knowledge is disappearing from our personal computers into clouds that we cannot access and with which we cannot compete
— http://zguide.zeromq.org/page:all
Pieter Hintjens was passionate about certain software topics, like open source, he believed strongly in the community and human aspects of software engineering, and he was an extremely eloquent and witty writer. He described himself as reclusive, perhaps autistic in his earlier years, but he eventually recognized that he loved interacting with and helping people.
He also had some really strong opinions. Here’s a transcribed bit near the end of that Software Engineering Daily interview:
Software projects…please make [them] open source. Don’t make [them] closed source. I know that people will pay you to make them closed source, they will pay you, they will bribe you, they will try to convince you there’s more money and profit. But you won’t see that money and profit, it’s going to go to somebody else almost all the time. And as soon as you turn your back, that stuff’s going to go in the garbage bin.
I don’t know if I agree 100% with such a broad statement, but I admire the conviction.
Essay: The Power of Living Systems
In a blog article called The Power of Living Systems, Hintjens uses actual living systems as an analogy for one way to make a software system. He compares the so-called living system, which resembles the real world in all of its diversity and complexity, to the bloated and unrealistic Planned System, which often gives rise to rigid, insecure, flawed software. In other words, “we build a planned system, whereas a living system grows itself.”
Hintjens understands that the Internet is our greatest living system. The Internet is as diverse and as rapidly changing as a massive biological system, and it holds a mirror to our interests, desires, and motivations. Like living things, which are as capable of bringing joy to a child in the form of a fluffy corgi puppy as they are to causing terminal cancer, the Internet is both wonderful and terrible. The people who use it make it that way.
The binary Hintjens creates between living systems and planned systems in this article may seem to suggest that he advocates a sort of ad-hoc anarchy for software development, but this is not the case. Rather, Hintjens puts it like this:
A Living System looks more like Adam Smith’s free market than Stalin’s Five Year Plan. Economics, politics, and psychology are as important — perhaps more important — in growing successful Living Systems as technology. A free market depends on several key things: clear laws, standards, contracts, and fair regulation. A Living System likewise depends on these.
A living system is based on individuals and contracts, with regulators to maintain order. Some people will try to act dishonestly within the system, perhaps by claiming a buggy and unmaintainable software component is better than it is, but this is where the regulators come in.
Hintjens goes on to write this:
Top-down authority is one defense against cheats. However it has a significant vulnerability: cheats can, and often do, capture the authority itself. In Living Systems, cheats can try to capture the regulators, and this happens in real life all the time.
When cheats capture the regulators of real-life Living Systems, the usual response is to move away, if we can. In open source software systems, we can fork and continue under a better regulator. This is why forking is an essential freedom, rather than a failure.
The model Hintjens pushes for is not unregulated chaos, nor does it consist of giving all community members equal and elevated privileges. The model is flexible, decentralized, and sustainable.
Essay: A Protocol for Dying
This is Hintjen’s most famous blog post, and it is as sweet as it is poignant. To be honest, I don’t know if I’m a huge fan of the title: A protocol for dying? There should not be a protocol for dying, and if there has to be then we should rewrite it. People should get healthier as they age, so that their retirement can be enjoyed fully; terminal cancer shouldn’t require treatment that makes a person weak and sick, because that is cruel to a person who is already dying.
But if Hintjens is describing a protocol for himself, then the title fits. When you dedicate your life to a craft, and that life reaches its conclusion, what is there to do but define your life in that craft’s terms?
And yet…beneath the software jargon, beneath the specifics, there is something greater underlying thing that Hintjens sees.
I love the conferences because you don’t need an excuse. Everyone there wants, and expects, to talk. I rarely talk about technical issues. Read the code, if you want that.
And so I’m proud of my real work, which has been for decades, to talk with people, listen and exchange knowledge, and then synthesize this and share it on with others. Thousands of conversations across Europe, America, Africa, Asia. I’ll take whatever credit people want to give me for being creative, brilliant, etc. Yet the models and theories I’ve shaped and documented are consistently drawn from real-life experience with other people.
Software exists to solve problems, to help people, to serve them in any way we can. Hintjens describes his own recommended steps that he himself carries out: He accepts his fate, he makes sure his affairs are in order and that his projects are able to be passed on, and he tackles a few last projects with even more passion and a harder deadline (this is elaborated on a bit more in the podcast). Hintjens, as the interviewer so lamely quips, makes sure he has no dangling pointers.
Closing Thoughts
For the first time since starting this blog, I am not sure what to write in this section. You can read Hintjen’s books here, which he made available on Gitbook. The ZeroMQ one is not included; I think you have to buy that on Amazon.
I could close by trying to write something deep about the passage of time, but I am pretty young and would not feel qualified. I could write on the continuation of ZeroMQ by other developers, but as you can probably I am just now learning about the whole library. So perhaps Hintjens’ own words say it best:
…And everyone needs to learn what it means to die. It is a core part of being a full human, the embrace of one’s mortality. We fight to live, of course. And when it’s over, we embrace the end. I’m happy that I can teach this lesson to my children, it is one that I never had.
— Pieter Hintjens, software engineer, author, idealist, former CEO, father
1962–2016