Most engineers have a complicated relationship with their managers. And by “complicated,” I mean somewhere between mild annoyance and seething resentment. Having been on both sides of this — more than a decade as an engineer before switching to management — I’ve experienced this tension from every angle.
Here’s the uncomfortable truth: engineers often have good reasons to be frustrated with their managers. But understanding why this happens is the first step toward fixing (or just coping with?) it.
Let me walk you through the most common management anti-patterns that make engineers want to flip tables — and stick around, because I’ll also share what the best managers do differently to actually earn their engineers’ respect.
If you’re an engineer, you’ll probably nod along thinking “finally, someone gets it.” If you’re a manager, well… you might recognize yourself in here. And that’s okay — awareness is the first step.
You’re deep in flow state, finally understanding that complex bug that’s been haunting production for weeks. Your headphones are on, the world has disappeared, and you’re this close to—
“Hey, quick sync?”
Your manager appears, needing “just five minutes” to discuss priorities. Those five minutes turn into thirty, and by the time you get back to your desk, that beautiful mental model you’d built? Gone. You’ll need another hour just to remember where you were.
Bad managers don’t understand that programming requires deep focus. They treat engineers like factory workers who can pause and resume at will. They schedule meetings during prime coding hours and wonder why velocity is down.
Another one that drives engineers crazy: managers who’ve never written code making technical decisions. It’s like having someone who’s never driven deciding what car you should buy based on the color of the seats.
I’ve seen managers promise features that are technically impossible, commit to deadlines without consulting the team, and worst of all — suggest “simple” changes that are actually really hard. When engineers push back, they’re labeled as “not team players.”
The tragedy is that some of these managers were engineers, but they’ve been away from the code so long they’ve forgotten what it’s actually like. They remember coding through rose-tinted glasses, where everything was simpler and faster than it actually was.
Nothing kills an engineer’s motivation faster than watching their manager take credit for their work. You spend nights and weekends making that impossible deadline, crafting elegant solutions to complex problems, and in the all-hands meeting, your manager presents it as “what I’ve delivered this quarter.”
Good engineers solve problems. Bad managers claim they solved them. And this isn’t always malicious — sometimes managers genuinely believe that “enabling the team” means they did the work. But tell that to the engineer who actually wrote the code.
Engineers joke about it, but it’s painfully real: the manager who could have sent an email but scheduled a meeting instead. Then invited the whole team “for visibility.” Then made it recurring “so we stay aligned.”
Your calendar becomes a graveyard of productivity. Stand-ups that take 45 minutes. Planning meetings to plan other meetings. Retrospectives where nothing ever changes.
Engineers chose this profession partly because they love building things. Every unnecessary meeting is time stolen from what they actually want to do.
Annual reviews are where trust goes to die. Your manager, who you’ve barely seen all year except in meetings, suddenly has opinions about your “growth areas.” They cite that one PR that took too long (ignoring the context) or mention you need to “be more visible” (while giving you no time to do anything visible).
The feedback is generic, clearly copy-pasted from some HR template. “Meets expectations” even though you single-handedly prevented three outages. The promotion you were promised? “Maybe next cycle.” The raise? “Budget constraints.”
Meanwhile, that new hire with half your experience but twice your political skills just got promoted to Senior.
Here’s where things get complicated. After switching to management myself, I discovered something that made me uncomfortable: I was displaying (some of) the same behaviors I used to complain about.
Management is lonely. It’s a job where you’re constantly making decisions with incomplete information, balancing competing priorities, and yes — sitting in those same soul-crushing meetings that engineers hate.
Most managers aren’t evil; they’re often just as frustrated as their engineers, caught between demanding executives and burnt-out teams. They’re measured on metrics they can’t directly control, asked to do more with less, and criticized from every direction.
The managers who drive engineers crazy? They’re usually struggling too. They interrupt because they’re being interrupted. They make bad technical decisions because they’re pressured to make any decision. They claim credit because that’s how they’ve learned to survive in the corporate game.
Understanding this doesn’t excuse bad management, but it does give you some perspective. And more importantly, it points us toward what good management actually looks like.
The best engineering managers I’ve known — the ones engineers actually like — have figured out a few things:
- They protect focus time like it’s sacred. They batch communications, decline unnecessary meetings, and push back on interruptions. When they need something, they’ll drop it in Slack with “no rush, when you get a chance.”
- They stay technical enough to make informed decisions. They might not code daily, but they understand the trade-offs. They ask questions instead of making assumptions. Most importantly, they trust their team’s technical judgment.
- They give credit lavishly and take blame personally. In public, it’s always “the team delivered.” In private with their boss, it’s “I should have caught that.”
- They make feedback actually meaningful. They don’t wait for annual reviews to share observations — they give specific, timely feedback based on work they’ve actually paid attention to. When review time comes, there are no surprises, and they fight for their team’s promotions.
The truth is, engineers don’t hate managers — they hate bad management. And having been on both sides, I can tell you that the transition from engineer to manager is harder than most people realize. You’re essentially learning a completely new job while everyone expects you to be perfect at it immediately.
But that’s not an excuse. If you’re a manager reading this and recognizing yourself in these complaints, it’s time for some honest reflection. And if you’re an engineer frustrated with your manager, consider that they might be drowning too — sometimes the best thing you can do is have an honest conversation about what you both need to succeed.
The best teams I’ve seen aren’t the ones where engineers and managers are friends (though that can be nice when it happens). They’re the ones where both sides understand their roles, respect each other’s challenges, and work together toward a common goal.
When that happens — when engineers feel heard and managers feel supported, when technical reality meets business needs without crushing either side — that’s when teams ship incredible things. Not because they have to, but because they want to.