Rage Against the God Machine
Content warning: mental illness, depression, abuse, PTSD, stuff like that. If you're sensitive to these topics you may want to skip this one.
On Wednesday I was depressed. Not the sadness lucky people conflate with depression, but the parasite thoughts, the kind that turns men into statistics. I'm better now, mostly, in that I'm able to feel things besides the clarity of self-loathing.
(I'm alright. This newsletter isn't an outcry for help, it's me processing my feelings and using them to inspire my writing.)
This is not new for me. I have serious depression and a battery of other mental illnesses. I've coped with this since I was a child. Some of it is neurological, glitches in my brain, others learned behaviors in an environment which taught depression as a defense mechanism. The kind where I still have nightmares 20 years later, where I still can't put my physical address online. I see a therapist and psychiatrist regularly and take battery of medications which keep the worst of it away.
Seven years ago I moved to SF for my first tech job. Many things went very wrong. Cut off from my social circles, losing my old therapist. I fought the housing market three times in a year. The drip feed of antipsychotics to my brain improperly calibrated. And I'd find myself again and again at that edge, tangent to reality, where the air is clear and the shadows are too deep. Like I can hate myself enough that it would rip the space around me, utterly consume me and leave just my usefulness left.
So I had an idea. All my hobbies eventually become tools to fight back, and I had not yet weaponized programming. I wanted to make a mental health tool that was truly adapted to my particular needs and that worked around the specific idiosyncrasies of my depression. Things like not wanting to bother my friends, not having the energy to even let others know that something is deeply wrong with me. Things like my mistrust of people making things worse.
(Managing someone else's episode is really hard. It's not something most people know how to do. If you don't, you're going to make things worse. The image in my mind is a boy scout digging past my skin with rusty pliers, thinking to himself "I'm helping!")
The tech was simple: just a Python service running in the cloud, listening to text messages sent from my phone. It could randomly select trusted friends to notify about my depression. It could monitor my usage of it in a way that made sure that I was not collapsing into a heap on the ground.
I called it Safehouse.
It lasted about three years before I retired it for personal reasons. I don't think it's useful as-is anymore, as it was built around the idiosyncrasies of Twilio and Heroku. But maybe there are still fragments there that would be useful to anybody else who needs it. The point of this isn't Safehouse, my depression or anything like that. The episode remind me of a deeper problem with software.
Software infuriates me. It is enraging that there is this thing out there, able to think thousands of times faster than I can, the combinatorial power to reproduce the world every heartbeat. And I still had to work for months, slaving over code, screaming at bugs, to help me with the barest of my issues. Worse still, I am a programmer whose job it is to understand the computer. That kind of effort is completely inaccessible to most people. We don't have the power, we don't have the design of the computer such that we can wrap it around our own needs. It is a commodity, only able to do what commodities can do. That supernatural thinking is locked away from us as individuals.
To some extent this is understandable. We don't know how to design things in such a way that they are easily customizable by everyone. It is far easier to make things that address 70% of everyone's needs. That's what computers currently do. And even that's a huge challenge, because writing something that satisfies 70% of everyone still takes a lot of time and investment. That's why the tools for specialists are so damn bad.
I wonder if this is a flaw in our computers. I also wonder if it's a flaw in our programming languages. Everything is designed for collaborative work, because collaborative work is the only thing that scales. The things that are designed for collaborative work, designed for scale, have to make necessary trade-offs that make them worse for individual work. Every ounce of legibility encoded into a language is a lost pound of expressiveness. Every point of consistency is lost power. I wonder if it might something be better to have an inconsistent language with foot guns if the 80% case of expected use is significantly more powerful. Something that makes the machine work in the same way as my inconsistent brain.
When I look into the mirror I see the scars of my mind. Fragments of the self-loathing I feel in mental episodes. I work hard to get better and spend a lot of time on improving my mental state. And in the other room, in my office, sits the God machine, something that can create perfect worlds, something that can inerrantly guide a missile or spit hundreds of communication lines across thousands of miles, but is somehow too weak to help me survive myself.
If you're reading this on the web, you can subscribe here. Updates are once a week. My main website is here.
My new book, Logic for Programmers, is now in early access! Get it here.