46. Sergei

SERGEI

The fourteenth floor had mostly emptied out by the time I opened a new email at the spare desk I had borrowed across from hers all week, addressed it to Elena's Halcyon account instead of walking twelve feet to say something out loud, and sat there with my cursor over the send button like it was a detonator.

The subject line read Bug report, RiskModel sandbox, priority high.

The body ran three sentences, flat, professional, with no exclamation points.

Attached to it was an application I had built in secret over eleven nights, disguised as an internal analytics tool, containing exactly one deliberate flaw and one thing I had never told anyone in my life.

I had rewritten the email four times. I had rewritten it a fifth time in my head just now, sitting there, and decided the fifth version was worse than the first, which told me nothing except that I had run out of ways to stall.

I had thought about saying it out loud. I had stood in front of the bathroom mirror two nights earlier and tried the actual sentence, will you marry me, and saw my own face refuse to cooperate, jaw tight, voice flat in a way that would have sounded like a hostage negotiation instead of a proposal.

Words had never been the tool that worked for me.

When I asked Elena to stay for good, I had managed one plain sentence in the dark and nothing more.

Everything after it I had said with my hands, clearing a drawer, making room in the closet, putting her name on the building directory next to mine, because that was the only language I trusted myself not to get wrong.

This was the same instinct, scaled up until it required eleven nights of after-hours coding and a small, stupid amount of risk that Ash would find the file first.

Ash would have called this the least romantic possible delivery method for what it was. Elena would call it, later, the most Sergei thing I had ever done, and she would not mean it as a criticism.

I clicked send.

Ash had already tried to ruin it twice that afternoon, which I only found out about because Tank told me, in the same tone he used to report a server outage.

The first time, Ash had wandered past my desk while the build was open, spotted the file name RM_final_v9_ACTUAL.exe, and announced to the room that he was going to "stress test it real quick, purely as a favor.

" Tank had appeared behind him within four seconds, not visibly hurried, and walked him out of the building by the collar of his jacket while Ash protested that he had rights as a cofounder.

An hour later he tried again, sneaking back in through the loading dock and claiming he'd forgotten his charger, and made it as far as my monitor before Tank materialized a second time, plucked him off the ground by the back of his shirt like a cat carrying a kitten that had misbehaved, and deposited him on the sidewalk with Steve the basil plant's watering can somehow still clutched in Ash's hand.

Nobody had asked how the watering can got there. Tank had simply taken it back, said, "That's Steve's," and gone inside.

Between the two removals, Ash had apparently also tried to rig the whole thing with one of his elaborate physical countdown timers, the kind with the gears and the little flags that Tank hated on sight, on the theory that a proposal needed a visible clock ticking down for dramatic tension.

Tank had unplugged it, carried it to the supply closet, and told Ash, according to the version I got secondhand, that this was not going to be Operation Basil twice.

I had spent both interruptions convinced Ash was going to say the word ring loudly enough to travel through drywall. He had not, in the end, though only because Tank got to him first both times, and I made a note to buy Tank something considerably better than a bonus.

Elena's desk was across the open floor, near the window, and I kept half my attention on her over the top of my own monitor, aiming for something that looked like indifference and was, in fact, the opposite of indifference.

She had her headphones around her neck instead of on, which meant the little chime from her inbox reached her the normal way.

She glanced at the screen, saw my name, and I caught her face doing the thing it always did with my emails: a flicker of mild curiosity, nothing more.

She opened it.

"A bug report," she said, mostly to herself, in the voice she used for talking to code instead of people. "At six at night. From you. Sure. Why not."

She clicked the attachment. The application opened, and I noticed her posture change exactly as it always did, shoulders dropping an inch, chin tipping down, the particular focus that made her genuinely terrifying to sit across from during a client audit.

She scrolled. She read.

"Null value error," she said. "Okay. Where's it throwing?"

I said nothing, because I had learned a long time ago that the correct response to Elena narrating a debugging session was silence, and because I did not trust my own voice right now to stay level.

"It's throwing on line forty," she said, and there it was, the exact cadence I had built the whole thing around, the low mutter she used when a piece of logic offended her personally.

"Line forty. Of course it's line forty. It's always line forty, Sergei, why do you people keep writing decay functions that assume every input has a value, the entire point of a decay function is that things go to zero, zero is a value, null is not a value, null is the absence of a value, this is not hard. "

"You wrote that speech once already," I said. "The week we met. About a different decay function."

She didn't look up. "Because nobody ever fixes the actual problem, they just patch around it, and then I'll still be doing this in six years."

I did not tell her that six years from now was, in fact, the point.

She dug in properly then, tracing the null back through the function just as she had the first time I had ever watched her do this, back when the broken risk-modeling dashboard on her screen had been the only thing either of us cared about in the room.

She talked the whole way through it, half to me, half to the machine, cursing softly under her breath at a stubborn conditional, flipping between two windows, running a test, swearing again when the test didn't do what she expected.

"There," she said, after four minutes that felt considerably longer. "Found it. Somebody, and I have a guess who, forgot to initialize the base case before the recursive call, so the first pass has nothing to decay from. Rookie mistake. I'm insulted you sent this to me like it was a real bug."

"It is a real bug," I said. "Was."

"Was." She caught the tense.

Her eyes came up off the screen and found mine for exactly one second, sharp, assessing, the look she gave systems that were behaving strangely. "Why are you being weird about a null value error?"

"I'm not being weird."

"You're being weird. You're doing the thing where you go still and pretend it's normal.

" She looked back at the screen anyway, because she is Elena, and an unsolved problem will always outrank a suspicious tone of voice.

"Fine. Whatever you're not telling me, I'll find it faster if you stop hovering. "

I did not stop hovering. She patched the conditional. She hit run.

The screen didn't return a fixed confirmation, didn't spit out a green checkmark or a resolved log line. It went black for a second, long enough that she said, "Did I break it worse?" and then it opened.

A box appeared, rendered in careful, unnecessary detail, the kind of thing that took considerably longer to build than the bug it was hiding behind.

It had velvet texture on the lid and a small mechanical click sound I had spent an embarrassing amount of time getting right, and then the lid rose, slow, on a hinge that did not exist anywhere except in code I had written at two in the morning while she slept in the next room.

Elena went completely still.

"Sergei," she said, very quietly, not a question yet. "What is this?"

"Keep going," I said. My voice came out steadier than I expected. I noticed, distantly, underneath the noise of my own pulse, that my hand on the desk wasn't doing anything.

No tapping. No counting. I used to run primes under moments like this, two, three, five, seven, a ladder to climb while the room got too loud, and right now the room was the loudest it had ever been and my hand was just resting there, still, like it had nothing left to manage.

Beneath the open box, where a confirmation dialog should have been, a second window had appeared, black background, cursor blinking, a column of numbers scrolling down in groups. It was not clean binary.

It was not anything a standard decoder would touch. It looked, if you didn't know what you were looking at, like corrupted output from whatever had crashed.

Elena leaned in.

"Okay," she said. "Okay, this is definitely not a null value error."

She scrolled up, scanned the column, and I noticed her try the obvious thing first, because Elena always tries the obvious thing first and then gets furious at it for not working.

She split the string into standard eight-bit blocks and ran it through a converter in her head, lips moving slightly, and came out with garbage, a string of symbols that meant nothing.

"That's not it," she muttered. "That's not... hang on."

Second pass. She tried it as hex, then as a Caesar shift keyed to something, our anniversary, my birthday, and I could see each attempt fail behind her eyes before she even finished typing it out.

She was getting frustrated in the specific, focused way that meant she was close, not lost, and she pushed her sleeve up out of habit while she worked, same as always, and that was when her eyes caught on my wrist instead of her own.

I hadn't hidden it, not exactly. I'd just never explained it, and she had never asked, because it sat low on the inside of my wrist, small, black, unremarkable enough to read as a scar if you weren't looking closely.

Eleven numbers ran in a single line, with no punctuation between them: two three five seven eleven thirteen seventeen nineteen twenty-three twenty-nine thirty-one.

"That's the same shape," she said slowly, pointing at my wrist without touching it, then at the screen. "Sergei. Those are primes. That's your tattoo. Why does your bug have your tattoo in it?"

"Third pass," I said, instead of answering. "Try grouping by those instead of by eight."

She looked at me for a second, that same sharp assessing look, and then she looked back at the screen and did it, splitting the column of digits not into even blocks but into chunks sized two, then three, then five, then seven, then eleven, cycling the way the numbers on my arm cycled, retracing the same order I had counted them in under a desk when I was nine years old and needed something orderly to hold onto while a stranger's gun stayed pointed at my father three feet from where I hid.

The first chunk resolved into a letter, then another. Elena's mouth opened slightly.

"Y," she said. "Y, O, U..." She kept going, faster now, hands moving over the keys, and I watched her face do something I had never gotten to see happen in real time before, the specific look of understanding arriving not as a single moment but as a slow flood, word by word, the way code compiles clean once you've finally found the thing that was breaking it.

"I found the flaw," she read, voice catching. "Nobody else... nobody else did."

She looked up at me. "That's where this started. That's the dashboard. That's us."

"Keep going," I said again, because I couldn't say anything else yet.

She went back to the screen, decoding the next line in pieces, sounding out groups of letters like a kid learning to read, and I watched her hands go still over the keyboard the closer she got to the end, the same stillness I'd felt in my own a minute ago, like whatever we'd both been running to manage the pressure had simply stopped being necessary.

"Marry," she said, and stopped. She decoded another chunk. "Marry... me..."

Her voice had gone thin, unsteady, nothing like the flat certainty she used on broken code. She stared at the last few groups of digits still scrolling on the screen, then stopped trying to read them at all, and looked up at me instead.

"Sergei."

"The code doesn't lie," I said. "Neither do I."

She was laughing before she finished the sentence and crying somewhere underneath the laugh, both at once, exactly as she did whenever something surprised her too completely for her face to pick just one reaction.

She hadn't decoded the final line yet. It sat there on the screen, unread, my clumsy, precise, eleven-night-long version of getting down on one knee, and she didn't wait for it.

"Yes," she said. "Yes, obviously, yes, you absolute lunatic, you turned a marriage proposal into a debugging exercise, of course you did, who else would, yes."

I got up from my desk. I don't remember crossing the distance between us, only that I was suddenly close enough to put my hands on her face, thumbs at her jaw, and she was half laughing, half something else, both hands fisted in my shirt like she needed something solid to hold onto while the rest of her caught up.

"You could have just asked," she said into my collar, muffled, not letting go.

"I did," I said. "It took you three tries to hear it."

"It took me three tries because you encrypted it," she said, and laughed again, wetter this time, and pulled back just far enough to look down at my wrist, tracing the line of numbers there like she was reading them for a second time on purpose. "How long have you had this?"

"Since I was twenty-two," I said. "Nobody's ever asked what it was."

"I'm asking."

"Later," I said. "Right now you still owe me a word for the ring."

She looked down at the screen, at the little velvet box still open, patient, waiting, and back up at me, eyes bright and ruined and completely certain.

"Yes," she said again, like the first one hadn't been enough, like she wanted it on the record twice. "Yes, Sergei."

Somewhere behind the glass wall of the conference room, I heard the unmistakable sound of Ash trying to whisper and failing, followed by Tank's voice, low and final, telling him to sit down and leave the basil alone.

Neither of us turned to look. I found the actual ring in my jacket pocket, the physical one, unremarkable compared to the version I had spent eleven nights rendering, and Elena laughed at it anyway like it was the better of the two.

Neither of us went back to decode the last line that night.

If ads affect your reading experience, click here to remove ads on this page.