Kamalore
Sign in

Code Red

by Vermilion Fiction

24 min · Premium · first 40% free

It was two in the morning and I was thirty-eight hundred lines into Rudy's garbage code.

Code Red · 0%

It was two in the morning and I was thirty-eight hundred lines into Rudy's garbage code.

Not garbage. That's not fair. It was worse than garbage. Garbage at least has a shape. This was a haunted house. Every function I opened had something dead hiding behind the door.

I was twenty-eight, six years into this job, and I still hadn't learned to just close the laptop and go home. Instead I was sitting alone in the Reliable Systems office in downtown Khalid, surrounded by forty empty desks, muttering at a screen like I was insane.

"Who names a variable temp2," I said out loud. "Nobody. Nobody does that. Only a man who learned to code when Reagan was president."

There. I said it. Yeah, it's an age joke. It's always the age joke with me and Rudy. He started it years ago and I've kept it going ever since, because it's the only weapon he actually feels.

The code freeze was in three days. The merge between our two codebases was the whole launch, and his half of it was the half that worked, mostly, sort of, when the moon was right. My half was clean and documented and it didn't matter, because his half had a race condition somewhere and every test came back red. Code red. I'd named my branch that as a joke. Nobody got the joke. Nobody ever gets my jokes.

I fixed one more broken loop. Then I heard the elevator.

Nobody comes back at two a.m. The cleaning crew had been through at eleven. The building was mine. So when the doors opened and Rudy walked out of them, I just stared.

He was fifty-two, tall, silver at the temples, wearing the same kind of shirt he always wore, some kind of flannel thing that hadn't been in style when I was born. He smelled faintly of whiskey, stale, left over from dinner. Not heavily. But it was there, under the office air.

"You're still here," he said.

"Clearly."

"Where's the merge branch."

"Where it's been all week. Except it doesn't build, because your threading code has a race in it and I've spent four hours finding out it's actually three races wearing a trench coat."

He came over to my desk. He didn't hurry. Rudy never hurries. He looked at my screen for a while and then he made a noise, this little dismissive noise he makes, like a man tasting soup he didn't order.

"You refactored my parser," he said.

"I fixed your parser."

"You wrapped it in three layers of abstraction nobody asked for."

"Two layers. And one of them is a lock, which is the only reason it isn't crashing right now."

"Young people." He pulled a chair over from the next desk and sat down, uninvited, taking the keyboard like it was his. "You learn a design pattern and suddenly everything needs to be a museum exhibit."

"And you learned to code in nineteen ninety-four and never updated since."

"Nine ninety-four was a good year." His fingers were moving. He rolled back two of my commits. "See. Simpler."

"Simpler and wrong. Run the tests."

"I know what the tests say. I wrote half of them."

"Then you know they're red, every one, since Tuesday."

He ran the tests anyway. He watched the red cascade with his jaw set, and I'll admit there was a moment where I felt something like victory. It lasted about four seconds.

"Environment issue," he said.

"It's not an environment issue. It's the same on every machine. It's your shared buffer."

"It's the CI runner."

"Rudy. I have run it locally. It's the shared buffer."

He turned in the chair and looked at me properly for the first time that night. Rudy has these pale eyes that never quite match his face, which always looks half asleep. The eyes don't sleep at all.

"You've been here since when?" he asked.

"Since seven. You've been drinking."

"Two bourbons at dinner, six hours ago, with a full meal and a lot of water. I'm fifty-two, Juliana, not unconscious." He said my name slow, like he was tasting the spelling of it. He always does that. I hate that I notice it. "Why are you still here?"

"Because the launch is Friday and your code is held together with hope."

"Hope and thirty years of production experience."

"Experience doesn't fix a race condition."

"No," he said. "But it would have kept you from spending four hours hunting three bugs that are one bug."

I opened my mouth. Closed it. Because that was actually right. All three stack traces came back to the same buffer. I'd known it for about an hour. I hadn't said it out loud, and he'd read it off my commit history in ninety seconds.

"Fine," I said. "One bug. Congratulations. It's still yours."

"It's ours. That's what a merge is."

"Ours." I laughed. I didn't mean to laugh that meanly, but it came out that way. "Rudy, we've been on this project for six weeks and you've spent five of them telling anyone in earshot that my architecture is a fad and I'm a resume-driven engineer."

"You are. Conflated abstractions, defensive layers, config for things that will never change."

"And you're a fossil. You'd write the whole company in C if they let you."

"Would compile faster than your code."

"It would also be illegible and unmaintainable and I'd be cleaning it up after you retire, except nobody retires anymore, they just get old at their desks until someone gets brave."

The words came out hotter than I planned. The office went quiet after them. Even the fridge in the break room, which hums like it's dying, seemed to shut up for a second.

Rudy stood up. He's taller than me by a good margin and he doesn't use it, usually, he slouches, he does this old man thing where he folds himself into chairs. But he was standing now, hands loose, and he was not slouching.

"Say that again," he said.

"You heard me."

"Say it again and say it to me, not to the room."

"You are obsolete, Rudy. You resent every good idea that didn't come from you, and you've been sandbagging this merge for weeks because if it goes smooth it means my design carried it, and you'd rather the launch limp than admit that."

He took a step closer. I should mention I did not step back. I want that noted somewhere, for whatever it's worth. I stayed exactly where I was, on my feet by my desk, arms crossed, twenty-eight years old and vibrating.

"That's what you think this is," he said. Quiet. Too quiet.

"I know it. I watched you reject my event bus for two weeks and then quietly implement half of it when you thought nobody was reading your branch."

"Your event bus leaks memory."

"Your branch leaks contempt. Every review comment is a little knife. Fix naming. Questionable. Nonstandard. Do you know how that reads? Do you know what it's like to get forty of those in a week from a man who never once says what would be better?"

"Yes," he said.

That stopped me.

"Yes, what?"

"Yes, I know what it reads like!" He turned away, walked a few steps, stopped at the window. Downtown Khalid at two a.m. is mostly dark. A few towers lit up, nothing moving. "Every review I've gotten for six years reads like that. Younger reviewer, every time. Sharper tools, every time. Questionable. Legacy. Why does this still exist."

I didn't have anything to say to that. Which was a new feeling.

"Except," he went on, still facing the glass, "I earn it. Half the time I earn it. Tonight I earned it. Your buffer fix was right and I rolled it back because it wasn't mine."

"Yeah," I said. "I know."

"You knew?"

"Rudy, I've been pair-debugging with you for six weeks. I know exactly how you operate. It's why I'm still here at two a.m. instead of at home asleep."

He turned around. The whiskey was mostly gone from his voice now, or maybe it had never been the whiskey. He came back toward the desk but didn't sit. He stood close. Closer than two colleagues stand. I could smell the old bourbon on him properly now, faint and warm.

"So what do we do about this bug," he said.

"We fix it. Together. Tonight. And then we never speak of any of this again."

"Which part of this?"

"All of it. The merge. The knives. This conversation." I unfolded my arms. "The fact that we've been fighting for six weeks for reasons that have nothing to do with the code."

"And what reasons are those?"

I looked at him. He looked at me. The fridge started humming again, like it had just been waiting for its moment.

"Pull up the buffer code," I said. "We've got maybe four hours before the sun comes up and somebody sees us."

"That's not an answer."

"It's the only one you're getting right now."

He pulled up the buffer code.

He typed with two fingers. I stood behind his shoulder and read over his arm and we were actually getting somewhere, which should have felt good, and did, for about nine minutes.

Then he did it again.

He deleted one of my helper functions. Not refactored it. Deleted it. He rewrote it inline, in his own style, and pushed the comment "simplify" on the commit.

"No," I said. "No. Revert that!"

"It's cleaner inline."

"It is not cleaner, it is uglier, and it is mine, and you do not get to erase me from my own branch every time my name shows up too often on the blame log."

"It's the team's branch."

"The team. The team. You mean your branch, that I've been bleeding into for six weeks while you called my work a fad."

He spun the chair around to face me. "You think everything is about you. I wrote that buffer before you were born."

Oh. Oh, that was the wrong thing. That was the worst possible thing.

"Say something like that to me again," I said, "and see what happens."

"What, exactly? What happens, Juliana? Do you submit a complaint? You do your little HR dance? You've been sharpening knives at me for weeks and now I'm supposed to what, apologize for being older than you?"

"You didn't apologize for anything your whole life, why start now."

He stood up out of the chair. Fast, for a man of fifty-two. Too fast. The chair rolled back and cracked against the desk behind him.

"Careful," he said.

"You're careful."

I shoved him. Both hands, flat on his chest, harder than I meant to. He went back a step, caught himself on the counter, and looked at me with those pale eyes and something in them had changed. Something had come off its hinges.

Then he shoved me back.

Not hard. Not enough to hurt. But I hit the break room counter with the small of my back and the edge of it dug in and I grabbed the lip of it with both hands and he was right there, one hand on the counter beside my hip, one hand flat on the cabinet above my shoulder. Caged in. Not touching me anywhere. Breathing hard. I could have ducked out under either arm.

"Careful," I said. My voice came out wrong. Wrecked.

"You started it."

"I finished it. You just showed up late, like always."

He was breathing like he'd run stairs. So was I. A ghost of old bourbon on his breath and under it something else, something warm and human and unwelcome, and the fridge hummed and forty empty desks sat dark outside the glass and nobody in the world knew where we were.

"I'm not going anywhere," I said.

"Neither am I."

"Rudy."

"You shoved me."

"You erased me."

"Both true." His face was close. His flannel sleeve brushed my arm and I felt it through my shirt, that brush, stupidly, like static. "Both true," he said again, quieter, "and I am not going to move until one of us says what this is actually about."

"You know what it's about."

"Say it."

"You first."

He laughed. Short and mean and nothing like the mean laugh I'd thrown at him earlier, this one had air behind it. "We have four hours of buffer debugging left and a launch Friday," he said. "This is the dumbest possible moment."

"That's never stopped you from being dumb."

"Juliana."

"Rudy."

His hand came off the cabinet. He put it on the counter, next to my hip, deliberately, like laying down a card. Not on me. Next to me. A whole inch of careful.

"I'm fifty-two years old," he said.

"I know how old you are. You've mentioned it. Twice tonight."

"I'm fifty-two and I've been married to this job for thirty years and you are nearly half my age and my junior colleague and if I misread this I don't come back from it."

"You're not misreading it."

"Say what it is, then."

I looked up at him. My back against the counter edge and my pulse in my ears and the launch in five days and every single reason to stop, listed and numbered, and none of them worth anything.

"It's about six weeks of wanting to wring your neck," I said.

"Is that all."

"And one other thing."

"Which is?"

"You are the most infuriating man I have ever worked with and I have thought about your hands every night since Tuesday when your buffer fix actually worked."

That landed. I watched it land. His jaw did a thing and his breath went out slow through his nose.

"Since Tuesday," he repeated.

"The tests have been red since Tuesday. Don't do the arithmetic out loud, it's embarrassing for both of us."

He straightened up off the counter. I thought for

Free preview ends · 40%
60% left · about 14 minutes

Read the rest of the night.

Membership opens every story in full, plus every part of every series.

Choose a plan

One tap creates your account and continues to secure checkout.

New here? Pick a username and password and your account is made on the spot. There is no email, so a lost password can’t be reset: keep it somewhere safe.

You’ll finish on our payment partner’s page. Billed discreetly as [BILLING NAME].

Overview

The first 40% is free. The rest is for members.

It was two in the morning and I was thirty-eight hundred lines into Rudy's garbage code. Not garbage. That's not fair. It was worse than garbage. Garbage at least has a shape. This was a haunted house. Every function I opened had something dead hiding behind the door. I was twenty-eight, six years…

Read time
24 min
Words
5,914
Series
Standalone

More like this

  1. The Renovation Pitch

    I've been selling building supplies for six years, and in that time I've learned that most bids are won by somebody who's willing to be…

    Premium · Logic of Willow · Romance · 26 min · breathless and eager, latex, construction site

  2. The Wager at Dunemouth

    The tourists left Dunemouth in the middle of October, and by the first week of November the town had gone quiet in a way that took some…

    Premium · Route of Stone · Mature · 21 min · matter-of-fact, latex, neighbors

  3. Base Leave

    I turned sixty-two in March and I still work the night shift at Red Canyon Warehouse, out on the edge of Dry Mesa where the highway bends…

    Premium · River Atlas · Mature · 24 min · old classmates now adults, oil and massage, military base town