Days open: 91
The bug hid from the debugger. Ethan went back to his office, his debugger, his bug, but the system never crashed while the debugger was watching it. A quantum effect? Something in UI-1017 that was like an electron whose path is altered by the presence of an observer?
Ethan was certain -- at each step -- that the next one would bring on the crash. I'll put in a breakpoint here, he thought; the program will pause; I'll step to a line of code here, and certainly there it will be: the crash, the exact point where some mislogic had wound its way through the layers of code, finally percolating into functional absurdity. Some pointer would be NULL when it should have the value of an address in memory. Some Boolean variable would evaluate to FALSE when it should be TRUE. Some return code would show an error condition that was not checked by the program. And then all he had to do was think his way back through the layers, discover why it was NULL, FALSE, unchecked.
Step, he typed.
Line of code, the debugger answered.
Step, he typed.
Line of code, the debugger answered.
He ran his hands through his hair. Stared at the screen. Entered a new breakpoint.
Step.
Line of code.
Step.
The afternoon wore away, then the evening. His two officemates left, one then the other. The windows faded to black; the lights blinked off in office after office across the floor. Step, step, step, he went, walking through the code one programming statement at a time. It must be here, he thought. No, here. It will crash the next time. Okay, then the next time.
There was a roar at the door. The lights flashed on.
"Lo siento," said the office cleaner.
She ignored him, he her. He lifted his feet, she vacuumed around him, turned off the lights, and moved on.
The moment the room went dark again, Ethan felt a surge of panic. What time was it?
Eleven. He should call Joanna.
The phone rang and rang. No answer. He dialed again. Again no answer. Where was she? Where was she?
Better fix that bug, his boss had said. The company president is acting like he never saw a bug before. The VCs are watching. Tomorrow he was supposed to meet with Harry about the schedule. He could not stop and simply leave a note for himself. No, the only note he could leave himself could be the bug report itself, with its message to the testers saying, "Fixed."
Step, step, step.
Some part of him knew that he should get away from the debugger. He should get away from the machine, stop and think on a yellow pad, a white board. He wasn't making headway this way. He kept beating against the same certainties -- here, else here, else here. Writing and sketching might break his thinking patterns, force him into other channels. But there was something seductive about the debugger: the way it answered him, tirelessly, consistently. Such a tight loop: Step, he said. Line of code, it answered. Step, line of code; step, line of code. It was like the compulsion of playing solitaire: simple, repetitive, working toward a goal that was sure to be attained in just one more hand, just one more, and then one more again.
And so the paradox: The more the debugger remained the tireless binary companion it was designed to be -- answering, answering, answering without hesitation or effort late into the night -- the more exhausted and hesitant the human, Ethan Levin, found himself to be. He was sinking to the debugger's level. Thinking like it. Asking only the questions it could answer. All the while he suffered what the debugger did not have to endure: the pains of the body, the tingling wrists and fingers, the stiffness in the neck, the aching back, the numb legs. And worse, the messy wet chemistry of the emotions, the waves of anxiety that washed across him, and then, without warning, the sudden electric spikes of panic.