Ficool

Chapter 17 - Chapter 17 — “Blame Game”

By the end of his second week in Mumbai, Arun had a routine.

Get up.

PG bathroom queue.

Bus or train, whichever looked less suicidal.

Office.

Work.

Observe.

Avoid unnecessary speaking.

Come back.

Stare at ceiling.

Sleep.

The work itself wasn't the problem. The people around it were.

Phoenix had become his main focus now. Every other task seemed to orbit around that project. Whenever something broke, someone said, "Check if it affects Phoenix." Whenever something went right, someone said, "Let's mention this in the Phoenix report."

It was obvious why. Phoenix had money attached to it. And reputation. And Aditi.

That meant it also had fear attached.

Around Thursday afternoon, the fear got a target.

The first sign came as a forwarded message in the team channel.

"URGENT: Phoenix reporting discrepancy found in yesterday's dashboard. Need RCA by EOD."

There were screenshots attached. One set showed the client reporting tool; the other showed internal metrics. The numbers didn't match. Not by a little. Enough to make people nervous.

Arun clicked through them once and saw the problem quickly.

The internal dashboard was lagging behind real-time usage. The delta looked like incorrect billing on the client side. From their perspective, it meant: you are either losing money or cheating us.

Neither interpretation was acceptable.

Neha gathered the team near the board.

"Client saw this today. They flagged it in the morning call. We need to explain it before it becomes a bigger issue."

"Is the data wrong?" someone asked.

"The client-side data appears right," she said. "The problem is ours. Or at least, it looks like it."

Eyes moved around the circle.

Arun stayed quiet.

Neha continued, "This is in the reporting layer of Phoenix. Not infra, not core backend. It's the aggregation job."

Rahul frowned. "That's not our part, no? That's under analytics."

There was a small silence. The kind where everyone knew who owned it, but nobody wanted to say.

Neha took a breath.

"That job was last updated by Arun."

Heads turned.

The reaction wasn't dramatic, just automatic. Faces shifted. Some surprised, some curious, some suddenly neutral.

Arun watched Neha, not the others.

He didn't argue.

She looked at him. "You wrote the optimization script and changed the grouping logic last week, right?"

"Yes," he said.

"Could something there cause this?"

"It can," he said. "But I'd have to check if the job ran with the old logic, the new logic, or both."

She nodded. "Okay. You and Rahul dig into it now. Rajiv wants an explanation before his 5:00 pm call. And heads up—"

She hesitated.

"—this mail was CC'ed to the Phoenix oversight group."

No one said the name.

They didn't need to.

Aditi was in that loop.

The team dispersed.

Rahul rolled his chair toward Arun's desk. "We didn't touch your part. Only you know that job. Let's see?"

They pulled up logs side by side.

The job had been changed last week: Arun's optimization, documented properly. It consolidated multiple smaller increments into batched writes, reducing load. The logic looked solid.

Arun scrolled further.

The job itself ran from a scheduler process.

He opened that.

The scheduler had been altered three days ago.

"Who changed this?" he asked.

Rahul leaned in. "Scroll up."

There was a commit ID. The author name wasn't his. Wasn't Rahul's either.

It was one of the Mumbai seniors—Ritesh. Not in Phoenix core team, but often pulled for cross-project work. Known for being loud in meetings and invisible when things broke.

Arun pointed at the job schedule.

"It was set to run every fifteen minutes," he said. "Now it runs every hour."

Rahul stared. "Oh."

Arun tried another query.

"Run history is incomplete," he said. "Half the logs are missing."

Rahul scratched his head. "So that means?"

"It means we have two problems," Arun said. "One: someone changed the schedule. Two: we don't know when it actually ran."

Rahul leaned back. "Then it's not on you."

Arun didn't respond.

He opened the dashboard again. The discrepancy pattern matched exactly what would happen if reports updated hourly while client metrics updated live.

It was basic.

Stupid, almost.

And that made it dangerous.

Because basic mistakes are the easiest to blame on the last person who touched anything.

Around 4:10 PM, Neha called him into a smaller room. Rahul came along. Rajiv was already there. So was Ritesh.

Ritesh stood near the whiteboard, arms folded, talking quickly.

"…timing gap is obviously from the new logic. Before last week, we never had complaints like this. After that script change, client noticed errors. It's simple correlation."

Arun and Rahul entered.

Neha said, "Let's sit."

They didn't. Everyone remained standing.

Rajiv pointed at the charts on the board. "Client thinks we're misreporting. They're not accusing us yet, but they've asked how it could happen."

He looked at Arun. "You were the last one in the reporting logic. We need clarity."

Ritesh added, "Honestly, this is why critical parts shouldn't be passed around like this. Chennai devs should get a detailed checklist next time."

Arun studied him for a second.

He spoke calmly. "The discrepancy isn't from the logic itself. The aggregation math is correct."

"That's your opinion," Ritesh said.

"That's in the code," Arun replied.

"You changed the code."

"Yes."

"Then maybe it's a mistake inside your—"

Rahul cut in. "Wait. We checked. The logic matches expected results. The bigger issue is the run interval. The job changed from 15 minutes to 60 minutes."

Ritesh shifted.

Rajiv frowned. "Who changed that?"

Arun projected the scheduler history on the screen. The last edit showed the author name clearly.

Everyone saw it.

No one spoke.

Ritesh broke the silence. "That was a temporary adjustment. But even then, it doesn't explain the wrong totals. The job should still calculate correctly whenever it runs."

Arun zoomed in on the logs. "The job didn't run consistently with the new schedule. The process crashed once yesterday. That gap matches the client's missing period."

"How do you know that?" Ritesh asked.

"Because the last success write is 14:02, and the next is 15:09," Arun said. "We have missing data in between. After restart, it resumed but didn't recompute the gap."

Rajiv rubbed his forehead. "Can we fix that?"

"Yes," Arun said. "We can rerun the job for that window with a corrected script."

"Will it change current totals?"

"Yes."

"Will the client see that?"

"Yes."

Ritesh laughed under his breath. "So we're admitting we sent wrong numbers, then."

Arun didn't answer.

Neha spoke. "Forget politics for a minute. We need something concrete for Rajiv's call. Arun, can we say the discrepancy was caused by job scheduling changes and a missed recomputation?"

Ritesh interjected, "That makes it sound like scheduler's fault. The base logic is still new. There could be compounding error. We're assuming his code handles edge cases."

Rajiv turned to Arun. "Is that a risk?"

"Yes," Arun said. "There's always risk. But I can show you with a replay locally."

"How long?"

"Thirty minutes," he said.

Rajiv checked the time. "I don't have thirty. I have fifteen."

Ritesh shrugged. "Look, we're wasting time. Client wants a face-saving line. Just say—we recently introduced optimizations, some of which caused a temporary sync delay. We're rolling back to the previous stable version while we revalidate everything. Simple."

That line did two things:

Blamed the recent changes

Framed rollback as safety

Which meant:

Blamed Arun.

Neha's jaw tensed slightly, but she didn't speak for him.

Rajiv considered it.

Arun watched all of them, then looked back at the scheduler screen.

He said, "Rolling back will not fix the discrepancy. It will only hide the actual cause."

Ritesh smirked. "You're very confident for someone whose code hasn't seen a full audit yet."

Arun didn't change tone. "The report lag would still exist if we revert only logic and keep this schedule. If we revert both, we lose the improvements for no reason. And the root cause remains undocumented."

Rajiv exhaled. "I need something I can tell Phoenix oversight without sounding clueless. I don't care whose name is on which file. I care whether this makes sense at their level."

He turned to Arun. "Can you prove your version fast?"

Arun thought for a second.

He could.

If he had room to freeze time, he could trim the analysis down to nothing from their perspective. The conference room had glass walls facing the floor, though.

Too exposed.

He asked, "Can I use the war room instead?"

Neha understood immediately. "I'll block it."

Rajiv hesitated, then nodded. "Fine. You get your thirty minutes. After that, we freeze the narrative."

He left to prepare for the call.

Ritesh stayed where he was, arms crossed.

As they stepped out, he said, "You Chennai guys love overcomplicating things. Just accept rollback. Phoenix doesn't care who did what. They care that it doesn't repeat. Right now it looks like someone messed with critical reporting and didn't test enough."

Neha replied before Arun could.

"Ritesh, enough. We'll look at the facts first."

He gave a small shrug and walked away.

The war room was a smaller cabin with a door and no direct glass view. Just a thin frosted strip.

Neha booked it and left them inside—Arun and Rahul.

Rahul locked the door.

Arun sat down, set his laptop, and checked the time.

4:21 PM.

"If this goes wrong," Rahul said quietly, "they'll pin the whole thing on you."

Arun adjusted the chair. "I know."

"You're still calm?"

"Talking won't change the facts."

He opened the data export tool and pulled the raw logs for the disputed window.

If he did it the regular way, it would take nearly half an hour to clean, isolate, replay, and verify.

He didn't have half an hour.

He placed one hand under the table, fingers pressed lightly to his jeans. His breathing settled.

He let the rest of the building fall away.

The wall clock in the room froze mid-tick.

The low hum of the AC turned into silence.

The faint footsteps outside stopped.

Rahul remained frozen mid-lean, eyes on the screen.

Arun worked.

He pulled the logs into his local environment, rewrote a narrower replay script, and reran the aggregation twice: once with the previous logic, once with his optimized version.

The outputs matched.

The totals diverged only when he altered the schedule to hourly and simulated a crash.

That confirmed it.

He compared delta graphs, snapped a screenshot, and prepared a minimal explanation—numbers first, words second.

He paused, checked everything again, then released the freeze.

The clock resumed ticking.

The AC hummed.

Rahul shifted.

"How long was that?" Rahul asked.

Arun glanced at the time.

Barely a heartbeat had passed from Rahul's perspective.

"Enough," Arun said.

They walked Rajiv through the replay quickly.

"This line," Arun said, pointing at the graph, "shows old logic. This one shows new. Both are accurate against raw usage once recalculated properly. The discrepancy only appears when we change frequency and skip recomputation after a failed job."

Rajiv watched, silent at first. He wasn't a deep tech person, but he understood patterns.

"So the simplest statement is…?" he asked.

"The reporting job was rescheduled incorrectly," Arun said. "And it didn't rerun after a crash."

"It wasn't the new logic?" Rajiv asked.

"It wasn't the logic," Arun said. "We can add a safety net to re-run missed blocks. But this problem is about process, not computation."

Rahul added, "If we throw the new logic under the bus, we'll still have weak scheduling. It will happen again eventually."

Rajiv's expression gave away a small conflict—politics versus facts. He rubbed his face, then let his hand fall.

"I'll take this to the call," he said. "You be available on chat if they ask specifics."

He rushed out.

Rahul sat back. "Do you think he'll mention the scheduler change?"

"If he doesn't," Arun said, "this will come back later with more weight."

Rahul didn't disagree.

The call with Phoenix oversight happened behind closed doors. Most of the floor didn't know what was said.

But word spread quickly that the explanation had been "accepted for now."

That kind of phrase meant: You got away this time. We're still watching.

Near 6:15 PM, Rajiv came to their section. Neha gathered the relevant people.

He spoke matter-of-factly.

"We explained it as a scheduling misconfiguration and a missed recovery. Arun's analysis and graphs backed it up. They were not happy, but they respected the breakdown."

He didn't look at Ritesh when he said that.

Ritesh asked, tone light, "Did they ask about the new script?"

Rajiv replied, "Yes. I told them we're keeping the optimized logic, adding an additional guard for backfill if a run fails. Arun will patch it."

That settled the technical part.

The political part was less clear.

Ritesh pursed his lips slightly, then smiled. "Great. As long as Phoenix is satisfied."

Arun watched him.

It would be easy now to let the story dissolve into "everyone had a part" memory, where nobody took responsibility and nobody got blamed.

Except someone had nearly decided, an hour ago, to solve it by saying: "We rolled back Arun's work."

Arun didn't forget that.

Neha dismissed them.

People returned to their desks.

Aditi hadn't been in the room during the internal debrief.

She had joined Rajiv's call remotely, listened to the explanation, and asked a small number of questions.

Someone else on that call had wanted a harsher response. She'd heard that in the tone.

"Shouldn't we ask who authorized the change?" someone had said.

Rajiv had replied carefully, "We're treating this as a system misconfiguration, not a single-person failure. The patch will include safeguards."

That line was safe.

Polite.

Neutral.

After the call, she received a summary email with attachments: the discrepancy screenshots, Arun's comparison graphs, and a brief note.

"Primary root cause: schedule change & missing backfill.

New logic validated via replay.

Patch ETA: tomorrow."

She read it once.

She didn't respond.

But later, when she stepped onto the Mumbai floor for a quick visit before heading out, she saw something she wasn't meant to see.

Arun was by the pantry, filling his bottle from the water dispenser. Most people had left. The floor was in that half-quiet state between "working late" and "going home."

Ritesh was near the window with another engineer, talking just loud enough for their own circle.

"…this is why letting new people handle core reporting is risky," Ritesh said. "If I hadn't noticed the scheduling difference earlier, this could've gone worse. We covered it, but next time—"

The other engineer nodded along.

Arun heard it.

He didn't turn.

He took his bottle, capped it, and walked back to his desk without changing pace.

Aditi, walking from the opposite side with Rajiv, heard it too. She didn't stop. She didn't react mid-step.

Rajiv was speaking about something else. "…we'll send the formal RCA tomorrow, and after that they'll calm down."

She let him finish.

As they passed, she glanced once toward the pantry area. Ritesh didn't notice. He was still talking.

She also saw Arun at his desk—as usual, quiet, eyes on the screen.

Nothing in her face indicated she'd connected any of this.

But later, when she sat in the car, she opened her phone and searched her mail for Arun's name.

It appeared on the RCA attachments. On the migration patch notes. On the Phoenix incident replay.

She scrolled once.

Then locked the screen.

The driver started the car.

She rested her head back and closed her eyes for a moment.

In her mental map of the project, a line shifted slightly.

Previously, "Arun" had been just a technical resource.

Now, he was an engineer whose work survived pressure.

And someone others were comfortable using as a shield if needed.

She didn't plan to intervene.

She didn't believe in rescuing people from every rough edge of office politics.

But she didn't forget patterns.

In his PG room that night, Arun lay on his bed with his arm over his eyes.

Rohan was on the other bed, reading some tax law case with the concentration of a monk.

"You look tired," Rohan said without looking up.

"Office," Arun said.

"Bad day?"

"They tried to find someone to blame," he said.

"Found you?" Rohan asked.

"For a while," Arun said.

"Then?"

"Then they found facts."

Rohan nodded slowly. "Good. Facts are cheaper than lawyers."

Arun didn't answer.

He wasn't angry.

He wasn't relieved either.

He was taking notes—in his own way.

About Ritesh.

About Rajiv.

About Neha.

About how quickly blame seeks the quietest person in the room.

And, somewhere, on the second layer of his thoughts, about the woman who had watched all of this from a higher floor with cleaner shoes and more power.

He didn't know what she thought of any of it.

He didn't expect to know.

He also didn't realize she was starting to pay closer attention to the name that kept showing up whenever Phoenix problems were solved.

His.

More Chapters