It took me a long, long time, but I finally came to realize that most people understood software development about as well as I understood most people: very little, approaching not at all. There’s this impression of the Hollywood programmer, typically a young white guy with a bag of chips and a case of whichever soda brand won the sponsorship, who has a brainstorm and starts furiously hammering away at a keyboard, writing line after line of code nonstop. There will probably be some sort of spectacur visual effects to keep the audience interested, and maybe some cheesy narrative about a “mind pace” or whatever, and the end result is that after a couple hours, he staggers out of his programming cave, clutching a USB stick that he cims will save the world, or stop the evil plot, or discover alien life or whatever.
(Someone at the lunch table told a joke, and I didn’t need to break my train of thought to giggle appropriately.)
That’s not to say that there aren’t times when a software engineer (that’s the professional way to say ‘programmer’) gets in the zone, hyperfocuses in on the code, and just starts writing and writing; I’d done that plenty of times myself, and it was always the best feeling in the world when it happened, but that isn’t what programming is. Programming is an art form like any other, but unlike a filmmaker who pys with emotion, a photographer who maniputes perspective, or a painter who controls perception, anyone who works in the software industry must befriend, beguile, or otherwise come to terms with uncertainty.
My terms for uncertainty were unconditional surrender.
(I carried my paper pte to the trash can in the corner of the conference room, smiling apologetically at whichever of my coworkers it was that I had to scoot past without otherwise registering their presence.)
That was the ideal, at least. There were, in fact, precious few things in the world that I could be absolutely certain about. That I existed was definitely one of them, but I couldn’t take credit for that; Descartes got there before I did. My name and pronouns I knew to be ‘Maya Brown’ and ‘she/her’, respectively, as they had been my whole life, but since I was the only person in the world who could speak to my identity with authority, that wasn’t a particur accomplishment. I was short, which I got reminded of any time I needed to reach a high shelf or match someone else’s pace; I was in my early thirties, and I could figure out the exact number by subtracting my birth year from today’s date, if I ever bothered to (which I didn’t); I was both curvy and beautiful, as my husband Chris liked to remind me whenever he got a chance.
(I waited patiently until Rashmi had a pause in her conversation, practicing my next conversational performance in the back of my mind.)
Beyond those unwavering constants of my existence, however, things got a lot less certain and a lot more contextual. As a software engineer, I worked for a company called Setheory Incorporated (which despite the name had literally nothing to do with set theory), and I knew that because they let me in the door every day. I was almost certainly one of the better programmers of my generation, given how often I was able to intuit the answers to problems that stumped my colleagues and my cohort, and how rarely anyone else had answers to problems that stumped me. I was, apparently, autistic; I’d gotten the diagnosis when I was young, but it always seemed like a bigger deal to other people than it was to me. People were just a little bit more unpredictable than computers, that was all, but I wasn’t about to give them up just because they were a challenge. I liked challenges.
(Rashmi turned towards me and I let myself gush effusive thanks for her delicious cooking, just as I’d been practicing.)
Sometimes, like now, there wasn’t that much else I felt very sure of at all. I was supposed to be working on building out a new software feature, but every time I tried to think about it, it felt like a huge massive cloud of uncertainty that I wasn’t sure where to even start with. Right now I was letting it cook on the back burner, and I refused to let myself consider it even a little. Right now I was indulging myself in a hobby: looking for ways in which my computer wasn’t behaving to my exacting specifications, diving into the code to find out why, and then figuring out how to fix it.
Having finished my social obligations, I fled the conference room, digging my computer out of a pocket and thumbing it on. The word processor—the Setheory word processor, I thought smugly—had a strange performance issue I’d been seeing sporadically. It wasn’t anything that would have been particurly obvious to anyone else, but I’d written most of the word processor code. I knew where it was efficient and where it needed work, and sometimes, it felt like my computer was gging even during what should have been efficient operations, ones I’d personally tuned and optimized. It rankled.
I thumbed open my standard test document, filled with a bunch of pceholder text and some extremely unusual formatting, just as I got back to my desk. I dropped my computer in its cradle and the monitor on my desk blinked to life, the document fleeing my computer’s own tiny screen for the much vaster expanse of a desktop monitor. I grabbed the standard-issue company headset off my desk and put it on, tucking my hair behind my ears and adjusting the boom mic to in front of my lips. This served the dual purpose of allowing me to use voice control if I needed or wanted to, but it also helped coax my brain into “engineer mode.”
I frowned at the document, my eyes narrowing, as I considered my approach. I’d already tried all of my usual diagnostic and debugging techniques many times in the past, like pushing the software harder and harder until the performance issues became gring, or taking random profiling samples during long editing sessions, or running leak detectors to monitor for wasted memory usage. I’d turned up a number of leads that way, and some of them even led to some useful discoveries and fixed bugs, but none of them had any sort of performance implications.
I was getting nowhere with my usual techniques, so maybe I needed to start trying some unusual techniques. Rather than come up with a pn for what I was going to look for and how I was going to find it, I just started clicking. I cleared my mind of everything, every expectation I had for what I might find, and every dead-end I’d explored in the past, and I just let my hand move the mouse on automatic, wandering through the user interface completely at random. My eyes gzed, but I never took them off the screen; I refused to think about what I was doing, letting my subconscious process what I was seeing without me peering over its metaphorical shoulder.
Some probable fifteen minutes ter, I found myself just clicking around in the text, watching the cursor move, sometimes double- or triple-clicking. I clicked inside the text; I clicked outside the text; I selected a sentence from front to back, and then I reselected the same sentence from back to front. It formed a rhythm that felt somehow satisfying in how deliberate and consistent it was. Mouse clicks, and cursor moves. Mouse clicks, and cursor moves.
Mouse clicks—
“Py that again,” I muttered. My voice was just barely loud enough for the headset to register, but not so loud that it would carry outside my cubicle. I’d been training my computer for years, though, and the input dispy dutifully popped up before I’d even finished speaking, the words ‘py that again’ annotating themselves with the sigils and keywords that showed how my machine had interpreted what I’d meant. First, the ubiquitous clockwise arrow of a “Redo” icon overid the word ‘again’. Then, in rapid succession, the word ‘py’ gained a rightwards triangle inside a perforated film-strip, an iconography whose origins had probably already been lost to the younger generations, and a small horizontal bar representing a timeline with a caption of ‘5s’ appeared under the middle word.
Five seconds would be more than enough. When I didn’t immediately correct the interpretation, the screen blinked back to how it had appeared five seconds before I started speaking, and I watched as the pointer moved and clicked itself the same way I had, and once again I was struck with that subtle feeling of wrongness. “Again,” I demanded, watching the sequence py itself out a third time. “Again, but slower.”
The input confirmation interpreted ‘slower’ as a request to py at half-speed, but I thought I’d probably need more than that. I nudged the mouse’s wheel forward a few clicks until the dispy showed ten-to-one, and as an afterthought, I added, “Overy input data. With timing information.” Then I leaned forward in my chair, watching the repy with the intensity of a snake waiting to strike. What had been a smooth animation was now a stop-motion video, and the phantom pointer movements now painted a visible trail across the screen, with small colored circles and numeric annotations showing the pces and times I’d clicked the mouse.1Voice control is not a particurly common mode of control in our computers; the architecture of modern operating systems like Windows, macOS, iOS, and Android tends to support single, standalone queries (“Siri, lock the front door”; “Alexa, set a ten minute timer”) much better than this type of interactive dialogue. Large Language Models (LLMs) like ChatGPT are today attempting to correct this deficiency, but your author remains skeptical.
“There!” I whispered, jabbing the spacebar to ensure it understood the request to pause. “Now let’s see…” I muttered to myself. The words popped up on the screen as always, but as my computer had correctly deduced that “now let’s see” wasn’t actually an instruction, both it and I ignored them. I shook my mouse to bring up the pyback controls, and I scrubbed back and forth over what I’d found. The yellow circle indicating a mouse-click appeared, but rather than updating in the following frame, the user interface didn’t change until the next frame after that. It was a discrepancy of only a dozen milliseconds or so, and there were all sorts of reasons why a computer might not be immediately ready for user input, but I was, after all, going with my intuition here. “Overy power consumption data?” I asked hopefully.
Other than confirming that it knew what I was asking for, my computer didn’t immediately respond. That was okay, expected even; despite the fact that all computers have some way to monitor live power consumption, they don’t typically record that data unless there’s a good reason to. Right now, my computer was going through its scratch memory, attempting to reconstruct such a log from whatever data points hadn’t been overwritten in the intervening time.2Modern computers in our world generally have no such capability to gather information from something that happened in the past. While power consumption monitors certainly do exist, any such “scratch space” would have been wiped clean as soon as it wasn’t being used. The closest approximation would be something like the Recall feature Microsoft introduced to Windows in 2024, which was received incredibly poorly due to their implementation having a number of truly unfortunate security fws. I waited, since joggling its metaphorical elbow (and its literal mouse, I supposed) would do nothing except generate more data in the very scratch space it was now attempting to interrogate.
I let out the breath I hadn’t realized I was holding when a small graph appeared onscreen just above the recording’s timeline, the telltale spikiness reminiscent of an EEG trace or something. It wasn’t definitive or conclusive, but I thought there might have been just a bit of a spike in power consumption at the same moment I’d clicked and the computer hadn’t responded. I swallowed, my mouth suddenly dry.
“Try that again, from here…” I whispered, and I dragged the pyback handle to a moment suitably far back in the recording, “...to here.” I scraped forward to just after the offending event, watching as the input dispy confirmed it understood what I meant. I took a deep breath, and before it could decide that I just wanted to py the same recording again, I added, “Live.”
My computer, quite predictably, panicked. I was asking it to make real-world actions on my behalf, one of the most dangerous capabilities of any computer, and it was legally required to get my consent before impersonating me.3Our world’s computers have no such requirement, and in fact “user impersonation” is one of the most common forms of automation in use today. The word ‘live’ and its accompanying sigil—the industry-standard, nguage-independent icon for user impersonation—highlighted themselves in a bright, dangerous red, and the rest of the screen froze and dimmed to make it more obvious, in case I wasn’t paying attention.
When I didn’t react to the warning sigils, the input dispy expanded to take up the whole screen, and the computer eborated, dropping into programmer-speak as it described exactly what the word ‘live’ entailed. It would need to rewind its own internal state to what it had been about five minutes ago; it would need to pretend that the time still was five minutes ago; it would need to pretend to be me, performing the same inputs I had; it would need to slow its own processor execution down to the same ten-to-one ratio. I whispered, “One hundred to one,” and the readout updated itself appropriately. I checked over everything again, and finally, not trusting my voice, I jabbed the Enter key.
The dispy cleared and the interaction sequence pyed again, but it wasn’t a recording this time. Despite being ten times slower than even the slow-motion recording, there was no stop-motion effect; the mouse pointer glided across the screen at a maddeningly slow rate, but its progress was perfectly smooth despite that, with a steadiness no human could possibly hope to emute. I watched as the phantom user performed the first click of a double-click pair; I shifted in my chair as I waited for the second.
At this speed, even the seemingly-instantaneous interactions gained a small, but noticeable, tency of around three or four milliseconds, judging by timestamps. The dey between input and response wasn't more than half a second even at this slow speed, but I could see it, even with my slow human eyes, and that gave me a better feeling for how much work the computer was doing each time I interacted with it. By the time the pointer was gcially crawling over to the st interaction point, I was heartily regretting my choice of such a slow pyback speed, but I knew better than to try and adjust it on the fly while trying to profile such a miniscule hiccup.
Despite all that, I was fully expecting the bug to disappear under such powerful magnification, just as the st seventeen performance hiccups I’d investigated had. Programmers like to call this css of defect—the kind that only shows up when you’re using the software, and disappears when you’re debugging it—a ‘Heisenbug’, after the famous Uncertainty Principle. Unlike their quantum-mechanics namesakes, though, Heisenbugs aren’t an immutable w of the universe; if you understand your computer well enough, any bug can be tracked down, and I understood my computer quite well indeed.
The pointer was two-thirds of the way over to the target position. I squeezed my eyes shut for a moment and rubbed them lightly to ensure they were well-lubricated, to make sure that I could watch the final test without having to blink, knowing that the defect, if there even was one, would show up as a barely-longer dey than the others. Heisenbugs usually emerge from race conditions, the general css of problem that arises when one event might happen either before or after another event. When humans are involved in race conditions, they’re usually on the scale of seconds: who arrives at the supermarket checkout line first, for example, or whether you get to the bus stop before the driver pulls away. Losing a second becomes losing a minute becomes losing an hour. When computers race, however, they operate on the scale of microseconds. Even at the slow rate of this pyback, it was a near-certainty that anything I could see would be over fast enough that I’d miss it if I blinked.
The pointer arrived and stopped, and I held my breath, my pulse now hammering in my ears. I could easily imagine the phantom user sloooowly lifting their finger, then pressing it down, against the mouse button, until…click. The yellow circle appeared as my computer pressed its virtual mouse button, and then I watched, as nothing happened. My heart beat once, twice, three times, and my spirits had just enough time to start to fall—it wasn’t unheard-of for software to simply fail to work properly under this type of close examination, and that would completely invalidate the test—when finally, at long st, the dispy updated. My eyes widened and flicked to the time readout, which showed a staggering twenty milliseconds (or, two seconds at this speed) since the click. It had to be a mistake. “Again,” I whispered, hammering down on the Enter key before the warning screen even had a chance to fully materialize, waiting through the entire sequence without moving a muscle.
Twenty-four milliseconds. This was no Heisenbug. Whatever was going on, this was real, and it was reproducible. “Whoo!” I cheered, my fists stabbing into the air in triumph, and as per my standing instructions, my computer animated a bst of confetti across the screen. “Debugger! Profile that!” I hissed excitedly, and I tucked my feet up underneath me, leaning forward in my chair as the computer performed the sequence once more, recording every action it took, every calcution it made, and most importantly, why it made them. My hands flew to the keyboard now that I had a solid lead, navigating from effect to cause and from response to trigger with a practiced hand.
The rest of the world disappeared around me as I dove into the code. Some part of me must still have recognized that I was typing on a keyboard and watching the dispy on a monitor, but I barely noticed; the familiar architecture of my computer’s operating code blossomed around me like a vast field of stars, extending in every direction I could name and many more that nguage couldn’t even describe. Here, the single bright star of a commonly-referenced axiom lived in countless flickering consteltions; there, the tightly interconnecting logic of the graphics compositor was a dense gaxy, with an infinity of spiral arms representing all the ways two onscreen windows could interact with each other. I could look at it and see in my mind not only the arms that were bright with stars, but also the pces where there could have, should have been light, but instead were dark as the shadow of a missing stair: use cases that no one had written yet, but which your code could fall through if you weren’t careful.
The code path my computer had profiled extended out from my position in the familiar nebu of our word processor, a glowing, golden line that took me from star to star and gaxy to gaxy, branching and converging as the logic dictated. For all that I knew it was imaginary, it was more real to me than the lists of names and code locations zipping past on my monitor. In some pces, the line branched so wildly that each individual strand was a faint, hair-thin thread, and in others, the convergence of several paths shone like a thick rope of light. I trusted my engineer’s experience and intuition to tell me which detours I should pass by, and which I should stop to examine more closely, and eventually, it led me to a single, shining star in the core of my computer’s universe. Something about it bothered me, and I dove in closer for a better look, close enough that I could see the pattern attempting to form itself within.
It was almost perfect. I envisioned the light pying around the star’s interior as my computer simuted profiling repys, and each time, just a little bit of light got lost as wasted effort, bursting uselessly from the surface like an errant sor fre, all because one single sunspot was just a fraction of a degree off from where I knew, I knew, that it should have been. I reached out with my celestial hand and, dashing out a quick line of code, nudged it back into pce. Perfect.
Two hours (by the wall clock) or two minutes (by my own reckoning) ter, I finally leaned back in my chair, stretching my legs out in front of me and my arms behind as my computer compiled and integrated the fix I’d written. I took a deep breath which turned into a yawn that I couldn’t suppress, and I wasn’t in the least surprised to find my sleeves damp from when I must repeatedly have wiped sweat from my brow. I gnced up at the small light pinned to my cubicle wall and was surprised to see it still dark; apparently, no one had stopped by while I was working. I shrugged and stood up, wandering off in search of a snack.
My mind was still whirling in the aftermath of my hyperfocus, and so I wasn’t at all surprised when my feet took me to the floor-to-ceiling windows on the outskirts of the floor, rather than the break room. I spread my hands on the railing and leaned forward slightly, closing my eyes in pleasure as the slight breeze from the ceiling vents whisked some of the damp from my face. Nameless software concepts and programming techniques flitted chaotically through my thoughts and I paid them little heed; my brain might have been feeling the need to jog for a couple minutes after such an intense sprint, but the only thing I cared about was the feeling of the afternoon sun warming my rapidly-drying skin.
Eventually, my thoughts clearer and my sleeves drier, I resumed my search for nourishment. Detouring to the windows also brought me past Raymond’s cubicle, where I found the engineer staring intently at a dispy of rapidly-scrolling text, occasionally hammering out a rapid-fire burst on his keyboard but otherwise motionless. I was aching to tell him about what I’d discovered, but I would no more interrupt his hyperfocus than he would have interrupted mine. I gnced at his attention light, affixed just outside his peripheral vision the same way mine was, but his was lit green; I double-tapped the “doorbell” button pinned to the outside of his cube, and the light upgraded to yellow. That’d have to do, since I’d left my computer at my desk.
I tapped a few other doorbells on my way to the break room, not bothering to check if the occupants were present, busy, or even (in Rashmi’s case) already looking in my direction, giving each a single tap that I trusted would light them green, if they were dark. The break room was empty when I got there, so I grabbed a Coke from the fridge and a bag of chips from the box on the counter before taking my usual seat: perched atop the counter in the corner of the room, legs dangling over the edge and swinging gently. It really was a perfect seat—it faced the whole room and the entrance, no one ever had to ask me to move, and I could talk to people who were standing up or sitting at the table, without having to shift position. The only downside was that it risked making me look a little child-like given my stature, but it fit so well with the “quirky” persona I’d cultivated ever since I started working at Setheory that it wasn’t really a disadvantage.
I cracked my soda and took a sip, the sugary sweetness tasting heavenly to my energy-starved brain, and I waited. Unsurprisingly, Rashmi was the first to round the noise barrier the break room had in pce of a door. Rashmi was our user experience designer, or “UX designer” in the parnce. “You know, Maya, you could just say ‘hello’ like a normal person instead of pressing my call button all the time,” she admonished me, her accent lengthening her vowels and her voice lilting up and down like a song.
“Yup, I could!” I agreed cheerfully. Rashmi clucked her tongue and shook her head as she made a beeline for the coffee machine, but she was smiling, so I knew she wasn’t actually upset. I was sure she would have preferred me to stop by her desk for a chat as a number of my coworkers did, rather than having to get up and chase me to the break room, but in all honesty, the idea filled me with a persistent, gnawing dread. I kept imagining getting trapped in an endless conversation and having no idea how to escape without being rude, and so at first, I’d just avoided her. “Also, saying ‘like a normal person’ is ableist.”
“Tch! What is this ‘ableist?’ Sounds like some American thing,” she replied with a chuckle as she poured herself a mug of coffee, and I dutifully giggled as well. Everything had changed between us when I’d had the brilliant idea, one day, of walking up to her cube, making an obvious show of checking that she’d already noticed me, and then tapping the doorbell. We both had a good ugh about it, and thus it became an inside joke, forever after transforming an otherwise-impolite behavior into a show of camaraderie. All hail the quirky persona, am I right?
“…was saying, it doesn’t have a source reference! At all! The field is just bnk!!” The sound of overused excmation points heralded the imminent arrival of Patrick, our newest hire, and Rashmi and I shared a good-natured eyeroll. The junior engineer was as well-meaning and enthusiastic as a puppy, but he still had a lot to learn about how software development worked in the real world. Also about volume control.
I couldn’t quite make out the reply, but a moment ter both speakers rounded the corner, Patrick eagerly trailing after our boss, Riley. Patrick was wearing the nondescript scks-and-button-shirt combo that seemed characteristic of junior developers, but my eyes hungrily drank in Riley’s outfit: a high-waisted pair of wrap pants that whispered smoothly against their legs as they walked, a shirt that hugged their torso with the slight sheen that spoke of high-quality fabric, and a light jacket covering their arms made of something that looked like the softest material ever. I didn’t have any sort of a crush on Riley themself, but I coveted their clothes. I could just imagine running my fingers along the fabric, the change in texture when petting the jacket in one direction or another, feeling the gentle swish as I lifted a piece of fabric and let it slip through my fingers—
“—think Maya needs a reboot.” Rashmi’s voice yanked me out of my reverie and I realized I’d paused mid-sip, the can of soda still pressed to my lips. I scolded myself mentally for getting distracted, feeling my cheeks heat up as I swallowed and lowered the can to my p.
“You’re supposed to step away from the code when you take a break, Maya,” Riley teased, filling their mug from the water cooler, their voice soft and flowing as always. They’d misinterpreted my distraction, but it’s not like I was about to correct them. “It sounded like you had a breakthrough, though?”
I cocked my head to the side, racking my brain to figure out what they were referring to, and only after they demonstrated pumping a fist in the air did I realize that I’d cheered aloud when the reproduction succeeded. “Oh, haha, sorry about that,” I offered, though I didn’t actually feel that bad about it—yes, the rule was to avoid making excess noise that could interrupt people’s concentration, but a single cheer wasn’t likely to break anyone’s train of thought. “But yes. I finally tracked down that weird performance hiccup I’d been seeing.”
Riley lifted an eyebrow, smiling. “You mean, the weird performance hiccup that literally no one else but you has reported?”
I considered sticking my tongue out, as I often did when they teased me about my white whale—it was unprofessional, but I could get away with it, because quirky. This time, though, I just grinned. “Yup! That one!” I took another sip.
Patrick looked between me, Riley, and Rashmi, utterly lost, and Rashmi took pity on him. “Maya is convinced that little gremlins are stealing her processor time,” she expined. “Apparently they’re very smart, and they always hide when you’re looking for them.” This time I did stick my tongue out.
“So, uh…what happened?” Patrick asked me, looking a little nervous. Poor kid probably thought the other two were actually being nasty to me, but we’d been bantering like this for years.
I gave him one of my easy smiles to show I wasn’t feeling hurt, and he rexed a little. “Okay, so, I was poking around at the word processor, yeah? You click once and it moves your cursor, you double-click and it selects the whole word. Right?” He nodded, and I went on. “Well, apparently, sometimes, if you click close enough to the edge of the window, the OS has to check to make sure that you’re actually clicking on the word processor, and not on something else. It has to do this huge computation because of that, and the end result is something like a twenty millisecond dey before the cursor actually moves.”
“Twenty…milliseconds?” Patrick asked uncertainly.
“Yes! There’s no reason at all that it should take that long. It usually takes three, four milliseconds tops.”
“So, just to make sure I understand,” he ventured, “you found a bug that results in a, uh, one-fortieth second of a dey?” He gnced over to Riley. “Does that…is that something I need to worry about? Like, if I’m working on the word processor?”
“Don’t worry,” Riley reassured him, and they indicated Rashmi with a thumb. “UX guidelines are a hundred millisecond response time in the normal case, up to five hundred in the worst case. Maya’s just a perfectionist. Can I assume then, Maya, that you found a reproduction?”
“I did!” I crowed, then I reconsidered. Before becoming a manager, Riley had been a software tester, rather than a software engineer, and they had strong opinions on what constituted a valid reproduction. “Well, sort of. I only managed to catch it once. But it was stable under repy!”
Riley sighed and raised a hand to their forehead, their exquisite jacket sleeve falling to their elbow. “Maya, you know a repy isn’t a repro. I’m happy to accept your twenty-millisecond fix, but you’re going to have to give me more than a repy snapshot to justify it.”
I waved their concerns away. “Eh, I’ll come up with the Steps To Reproduce ter; it’s always easier to write an STR once I know what’s causing the problem. But that’s not the coolest bit. Thing is, this isn’t even our code.”
Riley lifted both eyebrows this time, presumably intrigued. “Oh? Well, I’m certainly happy to submit a patch request, if it tests clean. Where’d you find it? Widget library? Surely not the compositor.”
I fshed them all a grin. “Even better. I found an off-by-one error…in axiom code.”
Riley gave a low whistle, and Patrick suddenly choked on the water he’d been drinking. He held up a reassuring hand when all eyes turned to him, managing to grate out, “I’m! Okay!” in the midst of his coughing fit.
“Rrrreally,” Riley breathed. “Must be one of the rarer axioms, then. I can’t imagine an off-by-one sting long in one of the common ones. What’s the integration extent?”
“It wasn’t done integrating when I got up,” I replied. I gnced down at my smartwatch, tapping it a couple times, then frowned. “Still not done, apparently. Huh.”
“I’m not accepting your patch if it breaks your computer, Maya,” Riley teased.
I made a moue. “Not even if it saves twenty milliseconds?”
“Not even then.”
I sighed and slipped down from the counter. “Well, I’d better go check on my computer and see what’s taking it so long. I will get those twenty milliseconds back, no matter how many hours it takes.”
I carried my soda and chips back to my desk, pondering. Axiom code, as the name implied, was the lowest-level code avaible to a computer, responsible for describing things that couldn’t be expressed in terms of other code.4The concept of “axiom code” does not exist in our world’s computer science to date. The closest comparison is kernel code, which runs with elevated privileges and is responsible for, among other things, interfacing with hardware peripherals. Axioms were for things like “how does math work?” or “what is a hard drive?” Whenever you changed an axiom in any way, the computer then had to review every bit of code that referenced that axiom, directly or indirectly, to see what else would need to change to fit, a process called integration.5Integration is another concept that doesn’t exist yet. The closest modern equivalent is a process called “link-time optimization,” which allows a compiler to make logical deductions and simplifications across a rger amount of code than cssic compile-time optimization, but not across the whole computer.
Integration generally didn’t take longer than a minute or two. The fact that it was still going meant that my fix had affected not just mouse clicks, but also some other rge fraction of my computer’s entire knowledgebase. I was put in mind of an exercise I’d been given in college, where we’d had to swap the meanings of addition and subtraction. That integration had taken hours, and unsurprisingly, it had resulted in an extremely non-functional computer. (The point of the exercise was then to restore that computer to working order without wiping the machine and starting over. It was pretty fun, actually.)
That exercise also boasted the rgest integration extent I’d ever seen: swapping plus and minus resulted in ninety-three percent of the computer’s code affected! Most changes, even axiom-level changes, had integration extents under twenty percent or so, as there wasn’t that much aside from the basic rules of math that got used that often. Generally speaking, anything over fifty percent probably meant you’d done something horribly wrong, and given that computers had gotten much faster since my college days, this was almost certainly going to be over twenty or thirty percent at a bare minimum, by this point. I popped a chip into my mouth and crunched it thoughtfully, emuting generations of developers past by nudging my office chair into an idle spin while my computer worked.
I should probably have just canceled the integration and done a little more work on figuring out where the proper fix was. My engineer’s instincts told me that there had to be a better, more localized pce to put that twenty millisecond fix, and I’d missed it in that mad two-hour dash to find and fix something that was more obviously broken. Going deep into a programming hyperfocus was something like being in a fugue state; the brain discarded inconsequential things like “thinking in words” or “paying attention to surroundings” or “acknowledging the body’s needs” in order to devote all its conscious attention to the task at hand. The end result was that, once I was lucid again, it was hard to remember exactly what I’d done and where the investigation had taken me, and it was even harder to describe it in human nguage. More than once, I’d come up for air and then had to use my computer’s history function to recreate some sort of narrative.
I heard a soft ding coming from the headphones still sitting next to my monitor, and the fan noise coming from the external processor tucked away under my desk slowly died away. When my gently-spinning chair rotated me back around to face the monitor, I saw the dialog box confirming the integration was complete. I snickered. In the carefree, innocent manner of a child who cheerfully hands you a bundle of flowers that you knew had to have been picked from the shoulder of a busy highway, the dialog box read:
Integration successful!Time epsed: 15m07sExtent of knowledgebase affected: 86.3%Apply changes to knowledgebase? Yes No I shouldn't. I really, really shouldn’t. I was using my personal computer, out of habit and familiarity, and if I “bricked” it (if I broke it so thoroughly that it became approximately as useful as a brick), I was going to need to go through the hassle of unbricking it before I left the office—a process that, depending on what I'd broken, could take hours. I gnced at my mostly-unused work computer sitting face-up on my desk, plugged into a charge cable but with its screen dark. The smart move would be to swap it for my personal one and do the integration there instead, so that I could just wipe and refsh it when—not if—something went horribly wrong. I considered it, but the idea of waiting around for another fifteen minutes while my work computer repeated the task at hand felt miserable. Besides, breaking things and then fixing them was kinda my brand.
I compromised. I grabbed my computer from its cradle and, before the monitor timed out and bnked its screen, I took a selfie alongside the dialog box, grinning and holding up a peace sign. I dropped the computer back in its cradle so I could use the keyboard to type out a quick message to Chris, to go along with the photo: “hey, honey! guess who’s about to break her computer?” That should do; if I went unexpectedly incommunicado, he’d understand why and know to reach out to me on my work computer. The lowercase chat style and jovial tone should be enough to let him know that it wasn’t anything he needed to worry about, but as an afterthought, I added a few silly emojis to drive the point home before sending the message. Then I took a deep breath, went back to the integration result, and clicked [Yes].
Nothing happened.
Well, to be accurate, the dialog box disappeared, but that happened before the computer applied the changes, so it didn’t count. Bricking a machine usually tended to have fairly obvious and immediate consequences, like the dispy scrambling itself, the speakers buzzing raucously, or often both, but nothing of that sort seemed to have happened. That left the less-obvious consequences, like freezing-in-pce or losing capabilities. I shook the mouse, relieved to see the pointer waggle in response.
Then my computer’s own screen lit up with a reply from Chris: “Sure thing, babe. Hope you’re home in time for dinner!” I breathed a sigh of relief. At the very least, my computer was still able to connect to the phone network and dispy messages, and given that that required a certain base level of functionality, I clearly hadn’t completely bricked it. I agonized over his message for a few moments; he didn’t tend to vary his writing style according to mood the way I did, but I was pretty sure the casual pet name and the excmation point at the end meant that he almost certainly wasn’t upset. I tapped at the message, reacting to it with a heart as per my custom, which I was pretty sure everyone interpreted as “I saw your message, I have nothing to add, and I like you.” Then I swiped the message away and turned back to the monitor.
First things first. I pulled up the history log, scrolling back to find the two live repys I’d requested earlier. There was a warning sigil next to each; my computer wouldn’t be able to repeat the repy with perfect accuracy anymore, since its knowledgebase had changed in the meantime. That was okay, since the whole point was that I was hoping things would change. I clicked into that entry, unchecking a few boxes to request that it run the repy with only the hundred-to-one speed ratio and the user impersonation. The warning screen popped up as expected, and I clicked through it, watching through the whole thing with bated breath.
When the final mouse-click in the sequence took the same two or three milliseconds to respond as the others, a grin spread across my face and I shook a fist in (silent) victory. I dismissed the repy and started pying around with the word processor on my own again; I clicked here and there to see if I could trigger the processing dey bug again, and I was pleased to find that I couldn’t. Then I went on to exploring my computer’s other functions, wandering around rgely at random to see if I could find anything else that had been impacted.
There didn’t seem to be anything. Disconcertingly, everything I tried worked just as it had before I’d caused my computer to rewrite eighty-six percent of its own operating code, as best I could see. I thought it might have felt a little snappier to use, the same way any computer does after you wipe and reinitialize it, but I discounted that. Human memory and perception are extremely fallible, and since I was actively looking for performance increases, I could absolutely expect to find them. Even if they didn’t exist.
Luckily, I had created a solution to that years ago. I put my headset back on, adjusted the boom mic, and subvocalized, “Computer, please run a level five diagnostic.” It responded with a suitably Star Trek-themed beep, and I giggled to myself as I always did. The joke was never going to get old. The fans under my desk whined as they spun up in response to the tests and performance benchmarks from my “level five diagnostic,” and I set my chair to spinning as well, for moral support.
The diagnostic had three functions. First, it was a collection of every conformance test I’d ever found that could verify the operation of a running computer, which ensured that the baseline functionality was still working properly. Second, it ran a suite of popur benchmarks which I’d chosen to maximize coverage, so that I could run stress tests on as many of my computer’s functions as I could. There were a few 3D graphics benchmarks, one for encryption and decryption, and of course a mathematics benchmark, among others. I didn’t care about comparing my computer’s speed to everyone else’s as much as I had during my college gamer days, but it was the third diagnostic function I cared about at this moment. In addition to verifying functionality and showing the raw benchmark results, it also showed the difference between the current results and the most recent successful diagnostic I’d run, giving me a way to track any performance changes.
Somewhere around my fifth or sixth rotation, the diagnostic finished. I stopped my spin and waited for the dizziness to subside, then pulled myself back up to the desk, gncing at the output. My eyes widened. I sat up straight in my chair; I took my headset off and id it on the desk; a shiver ran down my spine.
“What the fuck…” I whispered, scrolling through the diagnostic report. The first line was the truly important one, stating that all of the tests had passed successfully, but that wasn’t what had unnerved me. Sure, I was happily surprised that my computer was still functioning properly even after such a massive change, but that hardly mattered now. I was staring at the column which compared these results to the ones from—I scrolled back up to check—two days ago. Every single benchmark had reported improvement, which was extremely improbable. What pushed it over the line from ‘improbable’ to ‘impossible,’ though, was the scale of the improvements.
I gnced at the old, well-worn sheet of looseleaf sitting next to the monitor; it would have been incomprehensible to anyone else, but it was a precious treasure to me. It had a list on it, one I’d started a decade prior; on each line, I’d scrawled a date, a shorthand name, and a trio of percentages. The first entry, which I’d written shortly after college, was what had earned me my job at Setheory; I’d had a fsh of insight one day, and in one afternoon I’d written a new sorting algorithm which made data-heavy operations run about ten percent faster.
That wasn’t even the impressive part, though. The reason it had been so groundbreaking was that it was so well-tuned that the operating system itself ended up using it for most of its core functions rather than its existing sorting implementations, and so it had boosted the overall performance of the computer by a whopping five percent. Even that had only boasted a twenty-two percent integration extent, though, and so the three percentages on that line were twenty-two, ten, and five. It hadn’t made me famous or anything, though I had gotten interviewed by Ars Technica and, of course, hired by Setheory.
The other dozen or so lines weren’t nearly as impressive; there were no integration extents over five percent, and while there were a couple task-specific improvements that had gained as much as a forty percent performance increase, only one other line had an aggregate gain of over one percent. That wasn’t in any way surprising, as usually, the only way to improve the performance of a computer was to redesign its hardware, to make its circuits smaller or more efficient. Software-only performance gains were, by necessity, very small and incremental improvements, because the only thing you could do in software was to eliminate wasted processor time, which corresponded directly to wasted energy usage.
(Apparently, when I’d written and submitted my breakthrough sorting algorithm, I’d caused something of a shift in the global technology market, as every tech company in the world suddenly saw their computing costs drop by at least five percent. Not that it particurly mattered to me; all I personally cared about was the win.)
I scrolled to the bottom of the diagnostic report and grabbed a pencil. In the top margin of my win list, above every other entry and in an incredibly shaky hand, I copied the number that gred at me from the st line of the report, adding a couple question marks for good measure. The line burned itself into my brain, white text on a bck background:
Aggregate performance gain over all benchmarks: 25.0%cirne