Etsy Logo

Code as Craft

Opinion: When should a software engineer switch into management? main image

Opinion: When should a software engineer switch into management?

  image

A lot of talented management bloggers before me have focused on who should make the transition to engineering management, and what that job entails, and how to be successful once you’ve made the switch. But recently a team member came to me with a different spin on the question: if you already know that management is for you, when should you make the switch from software engineer to manager?

To help answer this question, your level of interest in programming is actually a more useful indicator than your level of interest in management.

The case for waiting

A good rule of thumb is to at least make it to the level of Senior Engineer before switching. Even if you already know that management is your intended career path, there are still many reasons why I recommend waiting as long as you possibly can before making the transition.

Once you give up your primarily technical job, and stop coding on a daily or even weekly basis, it’s exceedingly difficult to keep your technical knowledge up-to-date. If you stopped writing JavaScript during the jQuery days, it’s certainly possible to keep up with different ways to manage state with React, but you won’t have the benefit of personally trying out different technologies in your day job.

Some people may find the distance from hands-on technical work to be appealing! Countless articles have focused on how managers make meaningful impact without writing code. But unless all of your future management roles are purely people-focused (every company and team has different expectations for this), you’ll still be expected to keep your technical knowledge relatively current. At the minimum, you must be able to speak with engineers intelligently about technical decisions, and communicate those decisions to other managers.

Furthermore, many companies still give engineering managers technical interviews. So once it comes time to find your next role, it’s very likely that you’ll at least have a systems design round, and often companies will ask data structures and algorithm questions. Prepping for these interviews becomes infinitely more challenging when you haven’t written a line of code in years. The more years you have under your belt as a programmer before you make the switch to management, the more solid your technical foundation will be for the rest of your career, to help minimize the amount of “brushing up” you’ll need to do.

Coding to management can be a one-way street (although Etsy allows people to switch back and forth). If your programming skills atrophy, it’s very difficult to switch back into a technical role to deepen your knowledge if you find yourself coming up short. That’s why it’s in your best interest to make sure you’re ready before making the switch.

But don’t wait too long

On the other hand, management is a different skillset than programming. I’ve heard from many folks that they have no interest in being a senior engineer, because they’re more passionate about people than code. Some programmers who would be excellent managers take a very long time to get promoted to Senior Engineer, because they either don’t have the interest or the aptitude to develop their technical skills beyond a certain point.

After a few years spent learning the basics, every year spent on the “wrong” side of the IC/management divide is a year that you’re not practicing the craft of management. Additionally, opportunities to transition to management can be few and far between, so if you decline an opportunity because it’s too early, you may not get another chance for a long time. If you’re sure that you’re no longer interested in hands-on programming, you should seize the first chance to transition that presents itself to you. After all, at some companies, engineering managers don’t even come from technical backgrounds. If you’ve spent any time as a software engineer, you have more context than engineering managers who were previously Product Managers or Technical Program Managers.

So, what should I do?

Obviously the choice is very personal, and is highly dependent on the opportunities in front of you. But if I have to make a recommendation: even if you’re very interested in management, wait until your technical skills are as developed as you ever foresee yourself wanting them to be. Once you’re sure that you’ve lost interest in programming, at that point, take the first reasonable opportunity to switch into management that presents itself.

If you have questions, or disagree with me entirely, feel free to leave a comment or get in touch! I’m curious how long all of you waited before making the switch, and if you’d do anything differently today?

P.S. If I’m really being pressured to give an absolute number, I made the switch to management after 5 or 6 years of working as an engineer. Retrospectively, I would say that’s on the early end, but not unreasonably so.