I worked as a software engineer for a long time. For the most part, it was great fun: I was being paid to solve puzzles. And although the more lucrative career paths involved software design and implementation, I always had the most affection for debugging. There is something about immersing yourself in reproducing a problem, walking through the code, frowning over it, coming at it from different angles until you have that ah-ha! moment of clarity. 90 percent of bug fixing is figuring out what the bug really is; at that point, the solution usually becomes obvious.
But sometimes that moment of clarity shows you far more than you wanted to see. Sometimes that moment of clarity makes you realize that the entire design is faulty, that the software is misrepresenting its data, lying to its users. What started out as a small, niggling bug becomes a massive rewrite. And it usually starts with breaking the news to someone above you who really doesn’t want to hear it.
Debugging is black-and-white. The solution may be convoluted and heuristic and gorgeously creative, but debugging is straightforward: Find out what is making the software do this bad thing it’s doing.
The real world, of course, is less easily unraveled.
Far in the future, humanity has reached out into the galaxy. Faster-than-light travel is ubiquitous, and terraformers allow otherwise desolate planets to be colonized. Central Corps, the military branch of the government unifying the colonies, spends more time with diplomacy and humanitarian efforts than armed conflict. We have survived our checkered history of violence, wandered into the stars, and arrived at a point where most of us live in peace.
And people are still murdered.
Commander Elena Shaw has seen death by starvation, death by accident, death in battle. But the murder of one of her crewmates — on one of the colonies they are pledged to protect — is a new one, and she doesn’t take it well. When it turns out the local police have arrested the man she was in bed with at the time of the murder, she takes it worse — and determines to fix the problem.
Elena is a mechanic. She’s a debugger by nature. She’s spent her entire adult life in the safe bubble of regimented Corps life, keeping starships running, fixing them when they break. When her crewmate is killed, she resorts to the problem-solving skills she has honed for years. She speaks to the police because she knows they are operating on invalid information. Her expectation is that once she corrects their inputs, they will release the wrong person and find the right one.
But people are not machines. Nor are political structures, as it happens, and that’s what throws her off. Providing her lover with an alibi should solve the problem, but the police don’t function the way she assumes they should. Her fix doesn’t work, because she’s misidentified the bug.
Back up, reassess the problem.
Only every time Elena reassesses the problem, she sees more cracks, more fissures, more false fronts and misrepresentations. And the smaller problem of who killed Danny becomes entangled with the unexplained destruction of a starship 25 years earlier — and possibly the threat of galactic war.
Elena is focused and determined, and entirely unable to admit the possibility that there might not be a solution after all. As everything she’s believed in falls apart around her, she clings ever more strongly to the hope that if she finds the truth, she’ll be able to put it all back the way it was.
The other possibility is more than she’s willing to face: that the life she knows and loves may be built on lies. People are not machines, and some things cannot ever be repaired. Sometimes the bug is fatal. And in her case, it’s not that the people above her don’t want to hear it — it’s that they might already know.