At the transition of 2017-2018, prompted in part by upheaval in my personal life, I did some reflecting on my intellectual journey as a software developer over the last decade. I originally wrote this up as part of a New Year's not-quite-resolutions post, but that post felt like both too much and not enough. In this update I've preserved the retrospective part of that post, and added a new conclusion.
Finding and Losing Joy
In 2007, after nine years as a relatively anonymous coder, I started building a public profile for myself as a programming enthusiast. I dabbled a bit in being an advocate for robust engineering practices, following in the footsteps of many of the programmers I admired. But where I really found my “voice” crystallizing was when I wrote posts and conference talks about the sheer unbridled joy of programming. I think that became my unofficial brand for a long time.
Joy and passion are closely linked. As time went by, I started noticing more and more how programmer “passion” for software had been fetishized, productized, and exploited. I saw how the kind of joy I was talking about had been widely co-opted to keep talented people heads-down on ultimately frivolous projects.
Somewhere around 2015, I fell into a crisis of conscience. I became acutely aware of the systemic biases embedded in programming culture, worse than even other STEM industries. I spent a lot of time thinking about how the cultural values of software development and the Open-Source community—values like “meritocracy”—far from breaking down walls, actually served to exclude voices, encourage groupthink, build invisible-but-rigid caste systems, and reward toxic behavior.
What was worse, though, was that I started to question whether anything I was doing actually served to improve the world. You can talk about “joy” all day long, but if you're helping nuclear weapons technicians take greater joy in building warheads, are you actually making the world a better place?
Which is not to say I think all programmers are building weapons of mass destruction. But as I started to dig into the all-too-obscure literature on the intersection of computing and humanities, I really started to worry about whether the programming industry was creating a net good in the world. Our software doesn't just assist in getting things done. It doesn't just mediate, either. Increasingly, it defines the boundaries of reality. It tells people how to categorize the signals they perceive. It lays down the channels and chokepoints for human connection and information dissemination. It arbitrates, more than ever before, what is a thing, and what is not a thing.
It occurred to me that programmers are, by and large, manifestly unqualified to be constructing reality. But that's what we are doing, at a ferocious rate. In that light, did helping them do it faster, more successfully, and while having more fun actually make sense as a positive life choice?
I channeled a lot of my worries into my 2015 talk “The Soul of Software“. Writing that talk burnt me out on composing new conference talks for the next two years. It felt good to voice my concerns, but it didn't really give me a sense of resolution, let alone redemption.
In 2016 and 2017 I continued in my path as an educator and trainer, but always with a hollow sense of unease and restlessness deep down. Was I really doing anything worthwhile? I was born to be in ministry—was this really the ministry I wanted to have? I spent a lot of time pacing my deck, wondering where to find the point of leverage that would really do some good in the world. I drew in, stopped podcasting, scaled back my use of social media, and generally became less visible.
As I write this at the start of 2018, I think it's time to come down off my hill of solitude (both figuratively and literally). But I'm not looking to smash any stone tablets. What I've realized is that as heartsick as I am about the state of the industry I'm in, neither despair nor fury fit me well. Nor do they help me to make things better.
The joy hasn't gone away, despite all my misgivings. I love writing code. I especially love seeing other people's eyes light up when I share the empowerment of coding with them; as elegantly expressed incantations on a screen take on a life of their own and become part of mutual reality.
What we do as programmers is wondrous, and thrilling, and powerful, and just plain fun. Going forward, I want to share the -joy of code in a way that keeps it intimately connected to the joy of living. I want to find ways to treat coding not as an isolated intellectual exercise, but as an extension of deeper human values. I want to explore how code can be compassionate, and welcoming, and generous.