Software Engineering and the Scientific Imagination: Past, Present, and Possible Futures, or, How to Stop Building Faster Horses

My forearms tingled. “Press your palms together with your fingers pointing up,” he said. This is a common test for repetitive strain injuries that my father was at this point well versed in, having spent nearly thirty years writing software professionally. As my palms struggled to meet, a searing pain shot from my pinky and ring fingers on both hands up the outside of my wrist towards my elbows. “FUCK! And I was just starting to really enjoy emacs!” I cursed.

This pain is the early stages of cubital (not carpal) tunnel syndrome, also known as ulnar nerve entrapment, and I had experienced it before. Long hours spent hammering away on essays at the last minute for a media studies class in my second semester at the University of Rochester had caused me to develop a mild case of ulnar claw in addition to the pain, numbness, and tingling. I spent several weeks sleeping each night with my right arm outstretched perpendicular to my torso, pinky and ring finger curled towards my palm involuntarily, trying to avoid compressing the ulnar nerve in my elbow and causing excruciating pain.

As I sat wondering whether my new favorite tool was going to eventually injure me so badly as to require corrective surgery, my dad mentioned that Xah Lee had put a lot of effort into making text editors (specifically Emacs) more ergonomic. But I wondered why it fell upon an individual who was disabled by work-related injuries to quest after fixing the problems that caused them and not the institution of software development and computer-based work more broadly that causes these injuries. It doesn’t have to be this way. As workers with college degrees who are often paid well to the extent that we ourselves sometimes do not think we deserve the sheer magnitude of our compensation, we are prone to ignoring those aspects of our jobs which should be considered unacceptable and need to change. Though not everyone shares such a pessimistic view, it is hard for me not to see the institution of software development as a massive farce, shambling forth on the limited strength of its own hubris and greedily consuming the energy and passion of those cursed to love it while crushing their bodies and spirits in its never-ending sprint for the novel and innovative.

Emacs is one of the few truly great things to come out of software development in the last 50 years. It’s an infinitely flexible environment for manipulating text of any kind, from emails to webpages to computer programs to chatrooms to newsfeeds and Twitter and poems and essays and love letters and so on. It is my belief that any serious typist or computer user could benefit from learning it, not just programmers. At the same time, it’s hard to sell the benefits of software dating from the latter half of the Ford administration and which is famous for requiring knowledge of arcane and sometimes literally painful keyboard shortcuts which themselves risk causing RSI in some users.

There is a broader point in this history and bellyaching that connects to some of my other passions for software correctness and verification. In the year 2018, we as software engineers and computer scientists of all levels find ourselves falling in love with tooling and practices which, in the relatively quick lifecycle of empirical science and especially the software development industry, can only be considered ancient at this point. Why is it that better tools haven’t been developed?

In what is seemingly a rare flash of insight into the actual failures of software development, Rob Pike needles the stagnation of systems software research in a presentation from February 2000. This piece, entitled “Systems Software Research is Irrelevant,” tracks the failure of computer science theory to generate useful ideas and tools for improving the practice of software engineering, and as such represents the first time I find myself nodding in rigorous agreement with Pike, whose language Go (in cribbing liberally from C) often seems a testament to the principle of tradition for tradition’s sake. Lambasting the homogenization of his field around a few-good enough tools and the monoculture that results from them, he writes:

In science, we reserve our highest honors for those who prove we were wrong. But in computer science…

There are a few broad categories of flaws I think are worth discussing when it comes to the failure of software to make use of empirical research that would help develop it into a true engineering discipline. The main two are the technological and social elements, roughly specified as the ways in which current tools and processes inhibit our ability to produce correct and reliable software of all kinds in a timely and repeatable fashion, and the management practices and structures and devices which bridge our access to these techniques. In the former category I would put things like programming language theory and type theory research, as well as concomitant research in verification of hardware designs and novel technologies in the field of human-computer interaction. In the latter falls things like project management strategies, communication systems, documentation, education, and tools for managing the whole process and lifecycle of software.

Condensed, software development is composed of the technologies that directly make up completed systems and the systems of human social interaction that surround and support those systems. I want to go into much greater depth in both of these areas, exploring the depths to which our tools, ideas, and ideologies fail us in not being able to keep up with the ever-increasing demands of the free market upon the bodies and minds of the working developer. While we may not be doing heavy manual labor, the structures of capitalism are still more willing to extract a devastating toll on our bodies and minds rather than treat us humanely and invest in solutions to ensure our safety.

to be continued…


On the Failure of “do what thou wilt” in Relationship Anarchy

Do what thou wilt shall be the whole of the Law

— Aleister Crowley, “The Law of Thelema”

I’m an anarchist. This label is overloaded with connotations for a lot of people, frequently conjuring images of the above Law: a society in total chaos yoked by nothing, the individual id unleashed from moral obligation. As it happens, that’s not what my anarchism is, nor is it a particularly common version of anarchy among anarchist scholars and activists. I don’t take the failure of bourgeois democracy to be a failure of the concept of democracy, and my “ideal society” (though I have reservations about labelling it as such) is some mixture of Max Stirner’s theoretical union of egoists and a more typical anarcho-syndicalism, where the means of production are controlled democratically by workers. Nonetheless, in the popular eye, anarchy is frequently seen as teenagers in masks running around with spray paint; a desire to project the angst and rebellion of youth onto the structure of a new society. Correcting this belief is a big part of engaging politically with liberals, and it doesn’t always end fruitfully.

As someone who also strives to practice ethical non-monogamy in a style heavily influenced by relationship anarchy, I’ve noticed that despite the fact that anarchism doesn’t actually entail destructive chaos, practitioners of relationship anarchy end up in situations that suggest it does. Indeed, a lot of people conflate non-hierarchical polyamory with relationship anarchy, and while the two are compatible, they are quite different in definition. My version of relationship anarchy is about not confining partners to implicit expectations, and about specifically making any implicit expectations explicit so they can be discussed and agreed or disagreed upon. Wikipedia says (forgive me):

Relationship anarchy (sometimes abbreviated RA) is the belief that relationships should not be bound by rules aside from what the people involved mutually agree upon.

Here we have a rejection of societal relationship norms and the implicit expectations that follow, and a desire to individualize relationships instead of coercing them to conform. But in no way are explicit expectations disallowed, in fact it follows from this definition that relationships should be bound by what the people involved have mutually agreed upon. This exists because relationships without explicit communication of rules and expectations are actually not healthy. When expectations are not set explicitly, wants and needs go unfulfilled, communication can break down, and decisions can be made that hurt other partners.

Not agreeing to any rules at all, or assuming that all of your partners will fend for themselves as regards the impact of your decisions (about romantic relationships or otherwise), is in my opinion a dysfunctional mode of relationship anarchy that I call the “do what thou wilt” style. Decisions will be made, partners consulted or no, and it is upon everyone involved to either deal with it or break up. I believe that this is not a healthy way to relate to anyone, especially not romantic partners to whom we make such strong emotional commitments. Instead, expectations and rules should be codified and discussed, and big decisions should be vetted not by individual partners through “veto power” but through the rules that have been put in place to deal with them. Even then I would personally take into account emotions and how my partners would feel about making a particular choice, because I want to remember the distinction between can and should. I suggest that a lot of dysfunctional polyamorous relationships have characteristics of the “do what thou wilt” style, and it is upon our community to stand up for better education on ethical non-monogamy and communication skills.

friends don’t kiss

cuddle, well,


arm finding lonely arm.

less lonely loneliness.

but friends,

friends don’t kiss.

is this home?

we hug with heat.

now as friends.

i want to kiss them again.

but friends,

friends don’t kiss.

lip meeting lip

as friends:

you wanted them

to be that.

to you.

just friends!

(…who kiss)

but friends,

friends don’t kiss.

Heavy Rotation 1/26/2018

Apple Music tells me I’ve been listening to these artists a lot recently:

  • Joy Division
  • The Smiths
  • The Strokes
  • Rostam
  • St. Vincent
  • Perfume Genius
  • Alvvays
  • Interpol
  • Radiohead
  • Arcade Fire
  • Julian Casablancas + The Voidz
  • LCD Soundsystem
  • Black Grape
  • Ty Segall

If for some reason you happened to be curious.


i’m going to be off facebook for a while. you can still follow me on twitter or tumblr if you’d like.

music to my years

as for the year’s politics, what can be said that hasn’t already? no, seriously, i’m not kidding. i’ve been spared many of the cruelest and most boringly depraved acts of the year at the hand of the trump administration in exchange for my whiteness and associated complicity in white supremacy, alongside considerable class power. ultimately though, the obsession with trump as a spectacle became too much, and with local politics around Rochester exploding after the Jaeger scandal, i committed myself to doing what i could, where i was, and with what resources i had.

i don’t fear trump. this is probably mostly due to the aforementioned considerable power i hold in our society, despite being a trans woman, but it’s also because i make an effort to channel fear into love and solidarity and i have more fear of people emboldened by him. those creepy men who stare at me if i go in the men’s bathroom, glare at me when i exit the women’s, and direct me which one to use no matter what i do. it’s always men.

i’d never protested before this year, and now i’m beginning to see their purpose and power. i wrote one of many scathing pieces against joel seligman and the UR administration, which was both satisfying and somewhat guilt-inducing, being so non-confrontational normally.

i listened to more music than ever, mostly thanks to my best friend who is a massive music geek and inspired me to seek out new stuff to listen to instead of just pumping “Is This It” on repeat. (though i did a lot of that too, likely more than is healthy) it’s too much to put here, so if you’re interested i suggest checking out my apple music profile @bklebe if you use apple music.

Goofy shit that doesn’t deserve a whole post

estradiol patch downsides: sticky, itchy, falls off in the shower

upsides: estrogen-powered iron(wo)man core

Open wounds and closed-off people

i spend every day
Fucking around
Waiting for the apocalypse
I will die
I live

I put down the window
Into her life
I peer into it too often
“Borrow a cup of sugar?”
—every hour
She always obliges

I say goodnight three times
Before making good on that promise

What cantankerous pantomime of destruction hath clothed me in my own nakedness?

there’s a thin line between gay and lesbian, for me

God is other people

yesterday and forever ago

(note: this was written in the middle of October)
about a week ago i looked down at my sneakers and realized they were looking worn. they were looking about as worn as my last pair, which i had owned for a year or so. i could chalk this up to a decline in build quality but instead i checked my phone to see how much i’ve walked in them. they’re pretty much my only pair so the number is pretty accurate. i’ve walked about 310 miles since the week of august 25, when i returned to school and bought these shoes.

this is about what happens when you carve an adult from a confused teenager’s ego in about eight weeks without anyone else helping you. in fact, you did it to yourself.