2 years ago I started writing regularly on LinkedIn. The first year or so is on my LinkTree (https://linktr.ee/leemckeeman), it’s sort of hard to navigate to very old posts on LinkedIn itself, but you are welcome to poke around from my profile (https://linkedin.com/in/lmckeeman).
In the last few days I noticed a post from
on LinkedIn discussing managers coding, specifically at Meta, and the advantage of this. I posted a contrary comment sharing my own experience. It reminded me of one of the first posts I made, and felt like starting to give some of my older posts new life and a permanent home here on Substack.Here is the text of my comment there:
I have a slightly different take. When I moved to SDM at Amazon, I was… I don’t want to be rude, but we’ll call it at least in the top 3 engineers on the team. I thought I could do both. I thought I could contribute code here and there and that would make me a greater asset to my team.
I was wrong. The way I could make the biggest difference is identifying why the team was overburdened and find release valves beyond me trying to code a feature. Maybe it was a shift in the oncall schedule or changing an escalation path to give some cover. Maybe it would be drawing a line in the sand on what was reasonable to deliver, and saying that if new feature X was required, these are the things that will not get done. Maybe it was brokering a deal with a partner team to provide them expedited support for their work next quarter and getting them to pitch in beyond their normal responsibility on an integration. Or taking a privacy or security review instead of trying to code. Maybe it is being more involved in ensuring code reviews are done quickly with a better prioritization system, or getting help from knowledgeable adjacent teams to avoid a code review echo chamber.
I don’t mind if a manager knows how, but I hope they don’t have to.
Text of my original post follows. Original can be found here: https://lnkd.in/gucCJfJQ
I am seeing a lot of posts with a screen grab of Elon Musk’s tweet saying that all software engineering managers should be ready and able to code along with those they manage. Most of the posts themselves are saying “It’s true!” or something, with some debate happening in the comments.
I was tempted to get into it in comments, too, but there’s too many of these posts, so I’m just writing here. I am going to pull in another oft-quoted tweet stating “If a team has been running itself for 6 months you shouldn’t be trying to hire a manager, you should be promoting”.
No. The role of a software engineer and an engineering manager are not interchangeable, and one is not a sub or superset of the other. They are dedicated roles. Being an engineer might help you on the path to engineering manager, but it doesn’t mean being a great engineer makes you a fit for an engineering manager role, and there are many other paths to being a successful engineering manager than being a great engineer.
Different jobs. Different skills. I have heard many engineers moan about reporting to a manager that hasn’t coded in years, or came to manage an engineering team by managing QA first, or being a TPM first. How can they measure me if they can’t do it themselves? How can I learn from them if they aren’t a better coder than me?
That isn’t what they are for! They can teach you things that are different than coding. They can protect you from unreasonable demands. They can manage up and out and you never have to know about it.
Yes, there are companies where the IC engineering track is a dead end, so people do see a move to management as the only way to keep moving up, or these places may pay managers more. This is a problem with that place, not an indicator that management is better. Large tech companies have deep technical ladders that can last your whole career, and leveling that acknowledges equal but wildly different contributions of senior engineers and engineering managers.
I have had or known great managers that weren’t coding and maybe never had. I have had or witnessed awful managers that had been great engineers. Elon is not the world’s best automotive engineer or aeronautical engineer or social media engineer, and yet…
Roles are different. Competent PMs, QAEs or SDETs, TPMs, Eng managers, and others are all allies playing an important role as a partner to engineers. Them being coders or not is not the measure of their capability.
I want to note that a lot of folk want to draw a false dichotomy between a person being “technical” or “technical enough” and writing code (or having written code). I consider this a very poor proxy. I know plenty of very technical TPMs or folk in other roles that didn’t get there through coding, but are absolutely technical, understanding intricacies of system designs and interactions better than many engineers. An incompetent manager may know how to code. A competent manager may not, even if they used to.