Ferrett Steinmetz: A Messy, Incomprehensible, And Unfathomable Endeavor

Let’s be clear: A Messy, Incomprehensible, And Unfathomable Endeavor, would be a very good book title. Also extra points if it’s the title to a book about 2020. BUT I DIGRESS. And now, a guest post from Ferrett Steinmetz that is about code, and stories, and more than that, too. Enjoy!

***

We all know the internet is a burbling cesspool of questionable decisions – but I’m not talking about the anti-vaxxer Qanons fucking with your Facebook feed.

I’m talking about the code that runs your web pages.

The funny thing is, in science fiction, technology usually just works – unlike real life. You never see Captain Picard bellowed “SORRY, WHAT WAS THAT?!?” at a pixelated image of a Klingon as he tries to establish a streaming videoconference, but I bet your Zoom calls have had a couple of whammies. Artoo never freezes in the middle of bickering with Threepio before Luke sighs and reboots him.

Yet our technologies come with a pre-baked level of uncertainty, don’t they? Twitter is up most days, but every few months it’ll mysteriously shit the bed for a few hours… and maybe the app you use to view Twitter will crash, or slow down to the point of uselessness, or just not send that clever bon mot you tossed off on the toilet.

Why is that?

It’s because code, by and large, is a messy, incomprehensible, and unfathomable endeavor.

Trust me, I’m a programmer. And the outside world seems to view us programmers as Scotty the Engineer, who’s so familiar with every Jefferies tube in the Enterprise that he can tell them apart by smell. When your PlayStation 4 bricks, surely there’s some engineer at Sony who understood exactly why the blue light stopped glowing.

But…

Have you seen how much technology there is out there?

You could study your cell phone for thirty years and still not understand it fully. There’s the deep arcana of the operating system, and the delightful physics involved in your touchscreen, and the network protocols that allow it to talk to other web pages, and the SDKs that create the apps, and the API calls those apps use to get data….

And that presumes everything stays still! I told you it’d take thirty years to understand every aspect of your smartphone, but I’ll note that Apple’s made a major upgrade to the iPhone operating system every year. As a programmer, you’re inundated with upgrades, updates, new standards, better software development tools, zero-day security risks.

There’s no way any human could keep up with all of it.

We all want to believe in Scotty, the all-knowing programmer. But lots of programmers are more like stoned wizards, frantically scanning the grimoires of Stack Overflow to find three lines of commands to type in blindly, because they’re C# programmers and this is a DevOps task. When we tell you to reboot your computer, we’re not blowing you off – sometimes rebooting the system does fix things, and we don’t know why. Almost every serious technician I know has encountered a bug that cropped up, then mysteriously went away, for no reason that anyone could explain.

It’s not that programmers are dumb. (Though, let’s be honest, some are.) It’s that getting any non-trivial program to work nowadays involves resting it on multiple layers of unfamiliar technology written by fallible human beings. (Also see: some dumb programmers.) You hope it all works smoothly, but you know there will be glitches. Not every day, maybe not even often, but… enough.

That is the reality of modern technology.

And Automatic Reload is about what happens when that technology is used to kill people.

Now, on some levels, Automatic Reload is pretty well-worn territory – it features a cyborg hero bristling with armed prosthetics, packing multiple redundant targeting systems that can pick off enemies before their slow, slow nervous systems have time to react.

The problem is, his computerized weaponry operates far faster than he could hope to intervene. If he gets into a firefight with another body-hacker, his enemy will be dead – or he will – before he knows it. As it is, the first sign he’s in danger is usually his mechanized limbs flinging him to one side as he yelps in confusion.

So all he can do is program in parameters – frantically trying to explain to his computer, well in advance of combat, what looks like an enemy. And even in Automatic Reload’s near-future world, image-processing is still not necessarily a perfect technique. So the difficulty of defining “Who gets a bullet to the dome” in precise terms, on top of the usual software bugs, gets extremely tricky. 

And if his programming’s not up to snuff, well… He just shot a kid in the face.

Our protagonist – Mat, his name is Mat – has accidentally gotten people killed in the past, and is determined never to do it again, a morality that puts him way ahead of his bodyhacker mercenary friends. They’re generally “We’re in a war zone, anything that gets in our way should be toast.”

Mat is trying to be a hero.

Mat is trying to rescue innocent people on his missions.

My book Automatic Reload is about a lot of things, really. It’s clearly about the ethics of technology. It’s about the unique flavor of PTSD cropping up in drone pilots now, from people who are responsible for the technology that killed people even if they weren’t really there for it.

And, weirdly, it’s a romance. Because on one of his missions, Mat is tasked to deliver a package, and it turns out the package is a genetically engineered killing machine – or, rather, someone who’s about to be brainwashed to become a genetically engineered killing machine. A good Catholic girl named Silvia who suffers from panic attacks, which is not at all a good thing to have when her newly-reformed body can instinctively snap necks.

They both have mental disorders, serious ones, and a large part of Automatic Reload is about how two very differently fucked-up people can come to love and support each other.

(Even if no love can necessarily fix a serious mental illness. But having someone who understands your mushy brain-parts can be a great help.)

Yet for the purposes of this essay, Automatic Reload is about the stress of being a programmer, magnified. Because we’re not Scotty. We’re barely keeping up, constantly inhaling documentation, trying to keep our online shops safe and your data secure. What we need to know expands exponentially every year- and while it’s often a fun challenge, there are days when the site is down and everyone’s all up in your Slack channel asking “WTF MATE FIX IT NOW FIX IT FIX IT” and you’re desperately searching Stack Overflow for some arcane error message to discover the last mention of this esoteric code was DenverCoder9, posting in 2014 in a thread that was never resolved.

Automatic Reload is about what it’s like to be a programmer in the future, which is to say it’s about what it’s like to be a programmer now, which is to say a lot of guesswork and a lot of Googling, but with a lot more guns.

And, hopefully, just enough of a splash of romance to make it all worthwhile.

Ferrett Steinmetz: Website

Automatic Reload: Indiebound | Bookshop | Amazon