The short answer is no. Some people say you have to become a manager in order to advance in your career as a software engineer. This is not necessarily true. It depends on what company your work for, the type of work you do, and your personal preference. After reading this post, you’ll know the path to advance as a software engineer regardless of becoming a manager or not.
Why advancing in your career benefits everyone
When you grow, you’re able to deliver a better quality product, your company gets better as a result of that. In addition to it, you solve harder challenges, make more money, have more impact at the company, and it’s more fun!
In technology companies (i.e. companies where technology plays a major part in product development) engineering management recognizes the value of growing their engineers regardless of them becoming managers or not. Here comes a typical engineering ladder:
Different companies have different levels and ladders. Underlying principals stay the same. The goal of the ladder is to provide a framework for engineers to grow within the company.
As you can see, all engineers start from Software Engineer I and make it’s way to Staff Software Engineer. A Staff Software engineer demonstrates a great level of individual contributions in addition to leading moderate size projects and teams. At this point, the engineer has a choice of focusing on management skills or technical skills. If the engineer decides to take the management track, the engineer becomes an Engineering Manager, then a Director of Engineering, VP of Engineering, and CTO. All management related roles include growing the team, hiring, people management, resource planning, and so on.
One of the basic principals of people management is keeping the team motivated. I highly recommend reading the book called Drive by Daniel Pink.. It’s a great book talking about what drives us as human beings. You want to make sure to provide people on your team with autonomy, mastery, and purpose to keep your teammates motivated. It goes over the reasons behind it with some case studies and some suggestions on implementing it at your workplace. Another good read is the all-time classic called Peopleware.
Alternatively, the engineer has a choice of staying on the technical track to become a Principal Software Engineer and then a Senior Principal Software Engineer. In this role, the engineer makes technological and architectural contributions across the entire company and improves engineering performance as a result of that.
It’s important to note that a Principal Software Engineer also has to have some managerial skills since the impact of this person’s work spans across the entire organization. There are numerous books on the subject. My favorite is The Art of Scalability. It starts by describing different functions of the technical organization, how they are all connected together, and how it connects with technology. It’s interesting to note that even though the technology aspect is quite hard to implement, it’s connecting technology with business functions of the organization is what gives the best results.
No matter which way you go, as long as you grow within the company, you’ll have more impact, bring more value and you’ll get paid more. At the end of the days, it’s just a personal preference. If you like coding and you’re not a big fan of people management, you can safely stick to the technical track. If you’re passionate about hiring, mentoring, and people management then talk to your manager about getting on the management track when the right time comes.
We spend so much of our life working on products. You want to make sure you’re happy at your workplace. Talk to your manager about your long-term career goals and plans. Everybody wins when you grow. Work hard, have fun and the right things will happen.