A great path to software engineering management is through increasing levels of responsibility / scope in your engineering career. Dev, Sr. Dev, Lead of some small portion of code, Lead of more code, even more, etc. Mentoring Jr. folks, on-boarding new folks, backup to your manager, etc.
Management has a lot of legs. You start managing 2-3 engineers maybe informally as a “lead” while your manager still does the $ stuff. If you’re good at it, hooray, you’ve been promoted to manager, and now you have 8 direct reports and 4 open recs… After you’ve managed 8-12 people for a while, you’re, hopefully, going to say “hey, I should make a couple of these folks leads so I can get other stuff done”. Things are nice for a while, you’re getting a lot done. Suddenly, your manager tells you:
There’s a new emergency project and, guess what? It’s yours, congratulations! Now, go hire 20 people and get it done!
Your Manager
Ok, you’re going to need some managers under you, no way you can survive with 30+ direct reports (think of all the 1-1s!!!). Hopefully, you have been grooming a successor and building a leadership pipeline, so, it’s a snap. Ta-da, you are now a Sr. Manager (a manager of managers). You become great at delegating, setting priorities, getting rid of road blocks, delivering without surprises. You get more responsibility, own more of the tech stack… And, it continues, Director, Sr. Director, VP, Sr. VP, CTO…
Imagine it’s about 2yrs between transition points and you’ve got a lot of runway ahead of you. And your resume will be sweet when you say “managed a technical team of 100 and delivered <insert big recognizable pieces of tech that the person reading this may have even used>”. There are lots of folks that stay at a certain level for a long time. They don’t want the headaches/responsibility so they stay put.
I can tell you that the rewards are plenty. Hiring, training, molding new grads to seasoned old-timers. Helping someone succeed. Delivering insanely huge projects that would be impossible to do yourself or with a small team. It’s a lot of work, too. And not all pretty. You may have to give someone negative feedback, or fire someone (good managers do). You think about their families, livelihood, etc.
Management is a profession / skill just like coding. I think of it as programming the people. “How am I going to get this group of people to execute this huge project? Have fun and learn while doing it, and want to do it all over again later?” It has provided me with decades of constant learning and growth. Read some articles about it (hbr.org is a good resource). Learn what it means to delegate, mentor, manage time, measure results, etc.
Will you ever code again? It depends. I was a hands-on developer for ~10yrs before I became a more hands-off manager. I still code today (30-yrs later) and have always had my hands in the code. It’s up to you, but I found it invaluable to keep my chops up. An engineer says something is “impossible” and I’ll say, let’s look at the code. I’ll file a bug report and include the line number with the problem. It earns you respect and people know you aren’t BSing and that they can’t BS you. Plus, you can mentor people, arbitrate big tech decisions, and make sure the team is moving in the right technical direction. If you don’t attain that level of tech skill, learn how to hire it. Even if you do, you still should hire it in because you’ll have so much other stuff to do!