The Two Buckets

Bob had been a junior engineer for barely six months when his manager, Alice, asked him to help with a small internal tool.

“Nothing big,” she said. “Just fix whatever feels off.”

Bob nodded even though he had no idea what felt off meant.

The tool looked simple: a form, a button, a table of results. But every time he changed one part, something unrelated broke. Fix the button? The table flickered. Fix the table? The form crashed. Fix the form? The button vanished like it never existed.

By the third day, Bob felt stupid.

He was still stBobg at the screen when Alice walked over with her usual thermos of bitter tea.

“You look like someone who lost a fight,” she said.

“I don’t understand this tool,” Bob admitted. “Every part depends on another part. Touch anything and the whole thing collapses.”

Alice sat next to him and drew two circles on a sticky note.

“One for the problem,” she said, tapping the first. “One for the symptoms.” She slid the paper toward him. “Which bucket are you fixing?”

Bob blinked. “I… don’t know.”

“That’s the problem.” She smiled gently. “Most juniors fix symptoms. They patch the part that screams the loudest. But seniors? They hunt the root.”

She took his mouse and scrolled through the code slowly, like she wasn’t even reading it—just feeling it.

“This whole thing,” she said, “is held together by small, accidental decisions. Someone copied a piece of code. Someone else added a condition to avoid a crash. Someone added a workaround on top of that. It’s not one bad thing. It’s many tiny almost-harmless choices.”

Bob frowned. “So what do we do?”

Alice leaned back. “There are two ways engineers work: One solves what’s broken. The other solves why things break.”

Bob let that sit. He realized he’d spent the whole week patching wounds instead of treating the illness.

That afternoon, he didn’t touch the interface at all. He mapped the flow, drew small notes everywhere, followed the data from start to finish. The more he traced it, the more the “random issues” started forming a shape—like a maze that was once reasonable but had been expanded by people who never saw the original map.

By evening, he found it: a single confusing function in the middle of the codebase handling far too many responsibilities. Everything depended on it. Everything broke because of it. Not a bug—just a bottleneck. Not a crisis—just bad design.

He refactored it carefully, step by step. No magic. Just patience.

When he pushed the changes, the tool finally behaved like a normal piece of software.

Alice walked by and asked, “Which bucket did you fix?”

Bob smiled. “The root one.”

“Good,” she said. “That’s how you grow.”

ദ്ദി ˉ͈̀꒳ˉ͈́ )✧ M.T.

© 2025

Instagram 𝕏 GitHub Linkedin