Three months into perpetual crunch, the engineering team is fracturing. Tomasz threatens to quit if one more feature gets jammed in. Mariana flags a game-breaking bug. Lukas overrides it: 'Ship it, we'll fix it later.' The update launches next week. Katja knows something is terribly wrong, but she can't see the full picture through the chaos.
The Berlin gaming studio’s engineering floor hummed with the particular tension of permanent crisis. Not the focused intensity of a real emergency — that would imply an end point. This was different. This was month three of what management kept calling “temporary crunch.”
Flourescent lights buzzed overhead, casting everything in that institutional white-blue that made everyone look slightly dead. The air smelled like cold coffee and the faint sweetness of energy drinks. Keyboards clattered in an uneven rhythm. Someone’s phone alarm went off — the third snooze this morning.
Tomasz Kowalski sat at his desk, staring at the Jira board on his secondary monitor. 147 tickets. 89 marked “critical.” 42 flagged “urgent.” The numbers blurred together. His eyes burned from too many late nights staring at screens. And now, vibrating insistently on his phone: another Slack message from Lukas.
His coffee had gone cold an hour ago. The mug sat forgotten beside his keyboard, a film forming on the surface.
Lukas Weber (CEO) Need to discuss adding multiplayer tournament mode to this week's sprint. Players have been asking for it. Huge revenue opportunity.
Tomasz’s hands hovered over the keyboard. His jaw tightened. A muscle in his temple throbbed. Three months ago, he would have typed a careful explanation about technical debt, velocity, and sustainable pace. Now, his fingers moved almost involuntarily, adrenaline making them shake slightly:
Tomasz Kowalski No.
Lukas Weber ?
Tomasz Kowalski I said no. We're already working 60-hour weeks. The team is exhausted. Mariana found a critical bug on Friday that we still haven't fixed. If you jam one more feature into this sprint, I quit.
He hit send before he could reconsider. His heart hammered against his ribs.
His phone stayed silent for exactly eighteen seconds. Then it rang. Lukas. The vibration felt like a small electric shock in his palm.
Tomasz let it ring four times before answering, watching the screen pulse with each ring. “I meant what I said.”
“Let’s talk in person.” Lukas’s voice had that forced calm that meant he was furious. “Conference room B. Five minutes.”
The line went dead.
Mariana Silva Santos looked up from her monitor two desks away, dark eyes sharp behind wire-frame glasses. “Did you just—”
“Threatened to quit.” Tomasz stood, grabbed his coffee mug even though it was cold. His legs felt unsteady. “Want to place bets on how long before I’m replaced?”
“You’re not getting replaced. You’re the only person who understands the entire codebase.”
“Exactly why I can make the threat.” Tomasz’s smile didn’t reach his eyes. “They need me more than I need this shitshow.”
Lukas was already there when Tomasz arrived, laptop open, Apple Watch glowing blue on his wrist. He looked up, all business casual authority in his untucked white button-down and artfully graying temples. The conference room smelled like the mint tea Lukas always drank. Floor-to-ceiling glass walls overlooked the engineering floor — deliberately transparent, deliberately exposing.
“Close the door.”
Tomasz did, the magnetic latch clicking shut with a soft finality. But he didn’t sit. Standing gave him height advantage. “I’m not negotiating.”
“Neither am I.” Lukas closed his laptop with deliberate care. “You think you’re the only one exhausted? I’m running a company that’s burning through €1.2 million per month. We have eighteen months of runway if we don’t hit our growth targets. The board is watching every metric. Our last update underperformed, and players are asking for features we promised six months ago.”
“Features we promised because you said yes to everything without asking if we could deliver.”
“I said yes because that’s what product companies do. We listen to customers. We move fast.”
“Fast?” Tomasz laughed, sharp and bitter. “We’ve been ‘moving fast’ for three months straight. You know what moving fast actually means? Linnea crying in the bathroom last week because she’s so tired she can’t think. Anton shipping code with half the unit tests commented out because there’s no time to fix them properly. Hassan, our only DevOps engineer, mentioned as a blocker in every single standup because he’s one fucking person managing infrastructure for 85 people.”
Lukas’s expression didn’t change. “So we hire more.”
“We can’t onboard ten new developers when we’re already drowning. Training takes time. Ramp-up takes time. You keep adding people like throwing gasoline on a fire will put it out.”
“Then what’s your solution? Tell the board we’re slowing down? Watch our competitors ship the features we’re ‘too tired’ to build?”
Tomasz set his coffee mug down on the glass table with more force than intended. The sound cracked through the room. Cold coffee sloshed over the rim. “My solution? Stop saying yes to everything. Stop jamming features into sprints that are already overloaded. Give us time to fix the technical debt that’s strangling us. Let us breathe.”
“We don’t have time.”
“Then you don’t have me.”
The words hung in the air between them. Through the glass walls, Tomasz could see developers at their desks, oblivious. Lukas’s watch buzzed. He glanced at it, then back at Tomasz. When he spoke, his voice was quieter. “I need you here, Tomasz. You know that.”
“Then stop treating engineering like a magic box where features go in one end and revenue comes out the other.” Tomasz picked up his mug, ignoring the coffee pooled on the table. His hands were steady now. Calmer. “I’ll be at my desk. Let me know if you actually want to change anything, or if this was just another meeting where you pretend to listen before doing exactly what you planned anyway.”
He left before Lukas could respond, the glass door clicking shut behind him.
Mariana had been staring at the pull request for twenty minutes. Her second monitor glowed with line after line of code, syntax highlighting making it look deceptively clean. The code wasn’t complicated — a simple inventory system update for their RPG hybrid game. But line 247 made her stomach drop.
inventory_items = player_data['items'][:100]
The function assumed player inventory arrays would never exceed 100 items. No validation. No error handling. Just a hard assumption baked into the slice.
She’d seen this pattern before. Six months ago, in the payment processing module. A developer assumed transaction IDs would never exceed six digits. When they hit 999,999, the entire payment system crashed for four hours. Support tickets flooded in. Players demanded refunds. The company lost €47,000 in a single afternoon.
This was worse. Players who hoarded items — and mobile RPG players always hoarded — would hit this limit within weeks of the update. Their inventory would silently corrupt. Progress would vanish. No error message. No warning. Just hundreds of hours of gameplay evaporating.
Her pulse quickened. She grabbed her water bottle, took a long drink, and set it down carefully.
She opened the code review comments:
Mariana Santos CRITICAL: Line 247 assumes max 100 inventory items with no bounds checking. Players regularly exceed this in our analytics data. This will cause silent data corruption when inventories exceed the limit. Recommend adding validation + error handling before merge.
Priority: CRITICAL
Blocking: YES
She hit Submit Review, marked the PR as “Changes Requested,” and immediately opened Slack to message Anton, the PR’s author.
Mariana Santos Hey Anton - flagged an issue in your inventory PR. It's critical. Can we pair on it tomorrow morning?
Anton Mikhailovich Petrov Saw your comment. Makes sense. But Lukas wants this shipped by Wednesday for the update. No time for refactor.
Mariana Santos This isn't a refactor. This is preventing data corruption. If we ship this, players will lose progress.
Anton Mikhailovich Petrov I know. But deadline is deadline. Already got pushback from Katja for being "too slow" last sprint.
Mariana stared at the screen. Her pulse hammered in her temples. Heat crept up her neck — that familiar flush of anger mixed with helplessness. Three months of this. Three months of “ship it now, fix it later.” The “later” never came. It just piled up, invisible and growing, until something catastrophic forced everyone to notice.
She picked up her phone with hands that trembled slightly and called Katja directly.
Katja Müller was in her fourth meeting of the day when her phone buzzed. Mariana. She glanced at the Zoom gallery on her laptop screen — product roadmap discussion, mostly Lukas talking while everyone else half-listened, cameras on but eyes glazed. Her office window showed gray Berlin sky. Rain streaked the glass.
She muted herself, the red icon appearing beside her name. “Sorry, urgent call. Five minutes.”
Lukas kept talking, not even pausing to acknowledge her.
Katja answered, pressing the phone to her ear. “What’s wrong?”
“Anton’s inventory PR. Critical bug. Silent data corruption if player inventory exceeds 100 items. I flagged it. He says Lukas wants it shipped Wednesday regardless.”
Katja closed her eyes. “How bad?”
“Players lose all inventory progress. We’re talking thousands of hours of gameplay vanishing. Support nightmare. Review bombs. Refunds.”
“I’ll talk to Lukas.”
“Katja.” Mariana’s voice was steady but sharp. “This is the third time this month you’ve said you’ll talk to Lukas. The tournament leaderboard bug shipped. The daily reward duplication shipped. Both caused exactly the support nightmares I warned about. When does talking to Lukas actually change anything?”
The words hit harder than they should have. Because Mariana was right. Katja felt it like a physical blow — chest tightening, breath catching. Mariana was right. Katja had talked to Lukas. Every time. He’d listened, nodded, promised to “balance speed with quality,” and then made the exact same call: ship it anyway.
“I hear you.” Katja’s voice sounded tired even to herself. She pressed two fingers against her temple, where a headache was beginning to build. “But I have to try.”
“Do you?” Mariana asked. “Or are these conversations just theater so we all feel like we pushed back before doing what he wanted anyway?”
Katja had no answer for that. Her throat felt tight.
Mariana sighed. “I’ll document the bug in the ticket. When it blows up in production, at least we’ll have proof we saw it coming.”
She hung up.
Katja sat in the silence of her office, phone still pressed to her ear, listening to dead air. Through the wall, she could hear Lukas’s voice from the conference room, energetic and certain, outlining the update launch plan. His voice was muffled but recognizable — that confident cadence that made everything sound achievable.
She unmuted herself and rejoined the Zoom. Nobody had noticed she was gone.
Lukas found Katja in her office an hour before most people left for the day. She was debugging something, two monitors full of terminal windows and stack traces, green text on black backgrounds scrolling as she typed. Her desk was cluttered — coffee cups, Post-it notes, a half-eaten protein bar still in its wrapper.
“Do you have a minute?”
She looked up, adjusted her glasses. Dark circles under her eyes. “For you or for another crisis?”
“Both.” He closed the door, the click echoing in the small space, and sat in the chair across from her desk without being invited. The leather creaked under his weight. “Tomasz threatened to quit this morning.”
“I know. He told me.”
“Did he tell you why?”
“He’s burned out. The team is burned out. You keep adding features to sprints that are already overloaded, and then you’re surprised when people break.”
Lukas’s jaw tightened. “I’m trying to save this company. The board expects growth. Players expect features. Competitors are moving faster than us. I don’t have the luxury of slowing down.”
“And I don’t have the luxury of pretending we can sustain this pace indefinitely.” Katja closed her laptop with deliberate care, gave him her full attention. The screen’s glow disappeared, leaving them in the dimmer overhead light. “Lukas, I need you to listen. Really listen, not just wait for me to finish so you can explain why you’re right.”
“I’m listening.” But his leg was already bouncing — that tell he had when he was impatient.
“Mariana flagged a critical bug in Anton’s inventory code this afternoon. Silent data corruption. Players will lose progress. She’s blocking the PR.”
“How long to fix?”
“That’s not the point.”
“It is the point. Wednesday is the launch. We promised players this update. If we delay again—”
“We delay and fix it properly, or we ship and watch it blow up in our faces two weeks later.” Katja’s voice was sharp. Her hands were flat on the desk, fingers splayed. “Lukas, this is the third critical bug this month that I’ve brought to you. The tournament leaderboard. The daily rewards. Both shipped despite my warnings. Both caused exactly the disasters I predicted. How many times are we going to do this?”
Lukas stood abruptly, the chair scraping against the floor. He paced to the window. Berlin traffic hummed below, red taillights streaming through the darkening streets, the city preparing for evening. Rain had started again, droplets catching the streetlights. When he turned back, his expression was unreadable.
“What do you want me to do, Katja? Tell the board we’re slowing down? Watch our churn rate climb while we ‘take our time’? I’m making the best decisions I can with the information I have.”
“Then get better information.” The words came out sharper than she intended. “You’re making decisions based on what you want to be true, not what’s actually happening in engineering. You have no visibility into our real capacity, our real technical debt, our real risks. You just see deadlines and revenue targets and assume we’ll figure out the details.”
“I trust you to figure out the details. That’s why I hired you.”
“You hired me to build a CTO organization. But you keep overruling me every time I tell you we can’t do something. So what’s the point of having me here if you’re going to ignore my judgment anyway?”
The question hung between them. Silence except for the rain against the window. Lukas’s watch buzzed. He glanced at it, then back at her. His jaw was set.
“Ship the inventory fix. Make it happen. Wednesday is non-negotiable.”
He left before she could respond, pulling the door open and walking out without looking back.
Katja sat alone in her office, staring at her closed laptop. Her reflection stared back from the black screen — glasses askew, hair escaping from its clip. Outside, the sky was darkening to that deep blue-gray that meant night was coming. Inside, the glow from the hallway lights painted everything in cold fluorescent white.
She opened Slack.
Katja Müller @Anton @Mariana - What's the absolute fastest we can fix the inventory bug without cutting corners?
Anton Mikhailovich Petrov 6-8 hours if we skip unit tests and manual QA.
Mariana Santos That's cutting corners.
Katja Müller I know. But Lukas won't delay the launch. So it's skip corners or ship corrupted.
Mariana Santos Unbelievable.
Katja Müller Anton, you and Mariana pair on this tomorrow. All day. Get it done. I'll handle Lukas if he complains about other work slipping.
Mariana Santos We'll fix it. But Katja — how long are we going to keep doing this?
She closed Slack before either of them could respond.
The update was launching Wednesday. The bug would be fixed by then. Everything would be fine.
Except Katja knew it wouldn’t be. Because this wasn’t about one bug. It was about a pattern. A system. A way of working that assumed engineering could absorb infinite pressure without breaking.
And she had no idea how to see the full scope of the damage when all she had were fragments — individual bugs, individual complaints, individual fires that demanded immediate attention but revealed nothing about the larger structure burning around them.
Her phone buzzed. Mariana again.
Mariana Santos We'll fix it. But Katja — how long are we going to keep doing this?
Katja stared at the message. She had no answer.
Hassan Al-Rashid was the only person left on the engineering floor. The open-plan office was dark except for his monitor’s glow — harsh white against the darkness — and the red blink of the server status LEDs across the room. The building’s heating had shut off at 20:00. The air was cold enough that he could see his breath when he exhaled. His coffee had gone cold hours ago.
His terminal showed the deployment pipeline. Again. For the fourth time that day. Red error text filled the screen.
ERROR: Deployment failed at step 7/12
Database migration timeout (600s exceeded)
Rolling back...
He’d been fighting this deployment system for three months. Manual scripts duct-taped together by five different engineers over three years. No CI/CD pipeline. No automated testing. Just a bash script with 2,000 lines and comments like “# TODO: fix this hack” dating back to 2023.
Every deployment took eight hours. Eight hours of Hassan babysitting shell scripts, manually checking logs, praying nothing failed at 3 AM. His eyes burned. He blinked hard, trying to clear the blur. His neck ached from hunching over the keyboard.
And now they wanted to deploy twice per week. His laugh came out as a harsh exhale.
Elif Yılmaz Hassan — any update on deployment fix? Need to push event tomorrow morning for player retention.
Hassan Al-Rashid Still broken. Won't be ready until Wednesday at earliest.
Elif Yılmaz That's too late. Players churn if we don't ship live ops content on schedule.
Hassan Al-Rashid Then hire another DevOps engineer. I'm one person.
Elif Yılmaz You know I can't hire. That's Lukas.
Hassan Al-Rashid Then tell Lukas I can't scale this system alone.
Elif Yılmaz I have. Multiple times. He keeps saying you're 'handling it.'
He was “handling it” the way a drowning person handles water — desperately, ineffectively, and not for much longer.
His screen showed the deployment log, red text scrolling past like accusations. He’d rewritten this migration script twice already. It should work. The code was clean. The logic was sound.
But the system was fundamentally broken. You couldn’t polish a turd. You couldn’t scale a mess. And you definitely couldn’t do it alone while everyone else assumed “Hassan’s handling it” meant everything was fine.
His hands were shaking. Not from cold. From exhaustion so deep it felt like gravity had doubled.
He closed his laptop. Saved nothing. Just shut it. The screen went black.
If it failed again tomorrow, it failed. He’d fix it when he wasn’t seeing double from exhaustion, when his hands stopped trembling, when he could think in straight lines again.
The office was silent except for the server fans humming across the room, a mechanical drone that never stopped. Hassan grabbed his jacket from the back of his chair and left, his footsteps echoing in the empty space.
He didn’t see the Slack message that arrived two minutes later:
Lukas Weber @Hassan - Can you deploy the hotfix tonight? Marketing needs it live before 08:00 CET. Thanks!
Katja hadn’t slept more than four hours. She’d spent the night replaying conversations — Lukas dismissing her warnings, Mariana asking when talking to Lukas would change anything, Tomasz threatening to quit. Every time she’d closed her eyes, the words came back, looping endlessly. At 04:30 she’d given up and gotten out of bed.
She sat at her kitchen table in Kreuzberg, laptop open, coffee going cold beside her. Gray morning light filtered through the window. The apartment was quiet except for the occasional rumble of the U-Bahn beneath the building. Her cats, Turing and Lovelace, watched her from the windowsill with vague disapproval, tails twitching.
She opened her notebook — actual paper, fountain pen, the physical act sometimes helping her think. Tried to write down what was actually wrong. Her handwriting was messier than usual, fatigue making her grip unsteady.
Team is burned out.
Shipping bugs we know about.
Lukas won’t delay launches.
No visibility into real capacity.
Status meetings are theater.
She stared at the list. It was all true. But it didn’t capture the real problem. Her stomach tightened with frustration.
The real problem was that she had no idea what was actually happening across the organization. She knew fragments. Symptoms. Individual fires. But she couldn’t see the pattern. Couldn’t see how deep the dysfunction ran.
Every department lead blamed another department. Every bug seemed isolated. Every delay looked like a personal failure instead of a systemic issue.
But Katja had been an engineer long enough to recognize a pattern when she saw one — even if she couldn’t articulate it yet. That familiar itch in the back of her mind when the data didn’t add up, when something was wrong beneath the surface.
This wasn’t about one bad sprint or one wrong decision. This was about an entire organization running blind. Making decisions based on gut feelings, status reports that hid reality, and meetings where everyone performed competence while privately knowing they were drowning.
She closed her notebook and stared at the list again. The words blurred. She rubbed her eyes, felt the grit of exhaustion.
She had no idea how to fix this. The weight of that realization settled in her chest like lead.