
The Manager I Hated and the Lesson He Taught Me
1. The Story Begins with a Code Review
I was working as a software engineer. I had spent days developing a complex feature, writing hundreds of lines of code, considering every edge case, and even optimizing for performance. I was pretty proud of it. So I confidently clicked "Create Pull Request."
But the feedback that came back was completely unexpected.
"Over-engineered. Too many moving parts. Needs refactoring."
That was it. No "good job," no "nice try." Just a blunt rejection. I fumed internally: "Does this guy enjoy crushing people?"
But this was only the beginning.
2. He Was Different from Other Leaders
He was completely different from leaders I had encountered before.
- He didn't hold your hand through the process.
- He flatly rejected incomplete ideas.
- He despised complexity for complexity's sake.
- The only thing he valued: Clean, maintainable, efficient code.
In sprint retrospectives, he didn't mince words. When we missed a deadline, he said:
"We scoped it wrong. Let's fix it."
When we built something that didn't scale, he said:
"This is tech debt. We can't afford it."
At first, I thought he was simply a "notorious manager" -- the kind that torments engineers. But over time, I realized he wasn't just being difficult.
3. The Decisive Moment: Sprint Review
In a sprint review, I confidently demonstrated a new feature. I was sure I could impress him this time. But he interrupted me mid-demo.
"This is fragile. What happens under load? What's your rollback plan?"
I stammered, but couldn't produce a proper answer. He paused and then said:
"You're thinking like a coder. Think like an engineer. Build something that can survive failure."
That moment really stung. I stayed up all night replaying his words. I was angry at first, but over time I realized he was right. I had been fixated on "clever" solutions and neglected building solid, resilient code.
4. The Beginning of Change
From that day, I completely changed my approach to work.
- Instead of writing "clever" code, I started writing readable code.
- I designed with failure scenarios in mind.
- Instead of coding for myself, I coded for the next person who would inherit my code.
And something remarkable happened. When he reviewed my pull requests, the feedback was much less. He hadn't gone soft. I had finally raised my game.
5. Remembering That Experience as a Manager
When I became an engineering manager, I often thought back to that experience. I didn't want to be a leader people hated. But I also didn't want to be a leader who was too soft.
So I took only the effective parts of his approach.
- Blunt honesty, but with context.
Instead of "This is bad," say "This creates hidden tech debt. Here's why."
- Emphasizing systems thinking. I encouraged engineers to think not just about solving tickets, but about how their code contributes to the overall system.
- High standards, but human feedback. Not just pointing out problems, but proposing solutions together.
6. The Essence of Leadership
Leadership is complex. Ego, pride, deadlines, and pressure are all intertwined. But good managers identify the core through all that chaos.
They teach you:
- Think about scalability. Don't just implement features.
- Write maintainable code. Not just clever code.
- Prepare for edge cases and failure. Because failure will happen.
These managers care more about whether your code can survive in production than about your feelings. And that's not a bad thing.
7. Advice for You Right Now
If you're currently working under a tough manager, try this:
- Don't take it personally. The feedback is about the code, not about you.
- Ask the reason behind the feedback. Most tough managers respect curiosity.
- Anticipate failure points before they point them out. Start learning their way of thinking.
If you're a manager:
- Set high standards, but explain why. Engineers accept standards better when they understand why they matter.
- Give specific feedback. Vague criticism frustrates people.
- Celebrate growth, not just success. When someone catches a problem before you do, praise it.
8. The Final Lesson
Looking back, that brutal pull request was one of the biggest turning points in my career. Thanks to that experience, I stopped treating coding as a personal art project and started thinking as a systems builder.
A tough manager won't make you feel good. But they will make you a better engineer. And if you set aside your ego and accept their teachings, those lessons will stay with you throughout your career.
"Sometimes a rejected pull request brings the greatest growth."