Lately I’ve been doing some career counseling for people off Twitter (long story). The central drama for many people goes something like this:
“I’m a senior engineer, but I’m thinking about being a manager. I really like engineering, but I feel like I’m just solving the same problems over and over and it seems like the real problems are people problems. I have to be a manager to get promoted. I hope it isn’t terrible, once I make the switch. I hear it’s terrible.”
I’ve been meaning to write this post for a while. There’s a lot but let’s start with: Fuck the whole idea that only managers get career progression. And fuckkkk the idea you have to choose a “lane” and grow old there. I completely reject this kind of slotting.
“Your advice is bad and you should feel bad”:
The best frontline eng managers in the world are the ones that are never more than 2-3 years removed from hands-on work, full time down in the trenches. The best individual contributors are the ones who have done time in management.
I’ve done this a few times myself now; start out as an early or first infra engineering hire, build the stack, then build the team, then manage the team, then … leave and start it all over again. I get antsy, I get restless. I start to feel like I know what I’m doing (… a telltale sign something’s wrong).
It’s a good cycle for people who like early stage companies, or have ADD. But I don’t see people talking about it as a career path. So I’m here to advocate for it, as an intentional and awesome way of life.
(h/t to @sarahmei who was tweetstorming this up at the EXACT SAME TIME as i was writing this. Yes Virginia, internet feminists ARE linked by a mystical hive brain.)
On being a manager (of technical projects)
Promoting managers from within means you get those razor sharp skills from the people who just built the thing. That gives them credibility, while they struggle with their newly achieved incompetence in a different role.
That’s one of the only ways you can achieve the temporary glory of a hybrid manager+tech lead. This is an unstable combination, because your engineering skills and context-sharpness are decaying the longer you do it.
You can only really improve at one of these things at a time: engineering or management. And if you’re a manager, your job is to get better at management. Don’t try to cling to your former glory.
Management is highly interruptive, and great engineering — where you’re learning things — requires blocking out interruptions. You can’t do these two opposite things at once. As a manager, it is your job to be available for your team, to be interrupted. It is your job to choose to hand off the challenging assignments, so that your engineers can get better at engineering.
On being a tech lead (of people):
Conversely: the best tech leads in the world are always the ones who done time in management. This is not because they’re always the best programmers or debuggers; it’s because they know how to get shit done, which means they know how to communicate and manage other people.
A tech lead is a manager … but their first priority is achieving the task at hand, not grooming and minding the humans who work on it.
They still need the full manager toolset. They’ll need to know how to rally people and teams and motivate them, or how to triage and restart a stalled project that everybody dreads. They still need to connect the dots between business objectives and technical objectives, and break down big objectives
So these tech leads usually spend more time in meetings than building things, and they will bitch about it but do it anyway, because writing code is not the best use of their time. Tech is the easy part, herding humans is the harder part.
Senior engineers who have both these toolsets are the kind of tech leads you can build an org around, or a company around. They get shit done. And they are rare.
Almost all of them have spent considerable time in management.
We don’t talk about this nearly enough: the immense breadth and strength that accrues to engineers who make a practice of going back and forth.
Being an IC is like reverse-engineering how a company works with very little
Being a manager teaches you how the business works. It also teaches you how people work. You will learn to have uncomfortable conversations. You will learn how to still get good work out of people who are irritated, or resentful, or who hate your guts. You will learn how to resolve conflicts, dear god will you ever learn to resolve conflicts. (Actually you’ll learn to YEARN for conflicts because straightforward conflict is usually better than all the other options.) You’ll go home exhausted every day and unable to articulate anything you actually did. But you did stuff.
You’ll miss the dopamine hit of fixing something or solving something. You’ll miss it desperately.
One last thing about management. There’s a myth that makes it really hard for people to stop managing, even when it makes them and everyone around them miserable. And that’s the idea that management is a promotion.
Management is NOT a promotion.
Seriously, fuck that so hard. It is SUCH an insidious myth, and it leads to so many people managing even though they hate managing and have no business managing, and also starves the senior eng pool of the great mentors and elder wizards we need.
Management is not a promotion, management is a change of profession. And you will be bad at it for a long time after you start doing it. If you don’t think you’re bad at it, you aren’t doing your job.
Managing because it feeds your ego is a terrific way to be sure that your engineers get to report to someone miserable and resentful, someone who should really be writing code
or finding something else that brings them joy.
There’s nothing worse than reporting to someone forced into managing. Please don’t be one of the reasons people burn out hard on tech.
It isn’t a promotion, so you don’t have any status to give up. Do it as long as it makes you happy, and the people around you happy. Then stop. Go back to building things. Wait til you get that itch again.
Then do it all over again. <3