Management is a common career transition for developers. It’s a rewarding career that allows you to combine your technical skills with your project management skills and people skills to lead and support a team, drive initiatives, and deliver results. While management is a popular career track, it isn’t for everyone. Some devs may prefer to remain as individual contributors and progress through their careers that way. In this article, we dive deeper into software engineering management to help you determine whether this career path may be right for you.
Let’s get started!
Learn what it takes to become an inspirational and effective engineering manager.
A software engineering manager is an experienced developer who manages the development and design of software projects. This usually involves leading a team of developers and helping them with their day-to-day tasks and projects. This role requires you to understand the complex technical elements of the projects your team works on and to effectively lead a team and appropriately delegate tasks and responsibilities to your team members. You’ll also be responsible for inspiring your team members and for creating and maintaining a positive team and work culture. As a manager, you’re also responsible for communicating updates on projects and assignments to your leaders and other stakeholders in the company.
To help paint a better picture of what companies look for in an engineering manager, here are some of the qualifications listed for a Senior Software Engineer Manager with Microsoft:
When transitioning into software engineering management, it’s important to realize that you’re really switching career tracks (and that’s okay!). While there’s no “one size fits all” career path for a developer, progression within the developer career track involves moving from a junior engineer, to a senior engineer, to a staff engineer, to a principal engineer, etc. While some devs view management as the inherent next step to success in their career, being a manager doesn’t necessarily mean you’re more successful in your career. That career move is more of a reflection of what you want out of your career and what skills you want to use in your career.
Some devs prefer the individual contributor route, while others want to lead and manage a team. Remember that everyone is unique and everyone’s path is different. Your journey within software development doesn’t need to look like anyone else’s. It’s important to stick with what you’re interested in and make the steps necessary to reach your own goals, not someone else’s goals!
As you progress through your career as a developer, you’ll be increasingly expected to understand system design concepts and how to apply them. Notice how the job posting for Microsoft is looking for someone with experience “designing and building highly available distributed systems at scale.” When you begin to interview for higher-level positions within software development (in management or not), system design becomes a larger part of your interview process.
Each role has its pros and cons. I want to start off by explaining that both career paths are lucrative. It’s a misconception that you have to get into management to make more money. Being a high-performing engineer and being a high-performing manager require different things from you. Some devs are happy remaining as individual contributors and progressing in their careers that way rather than transitioning into a management role. When you become a manager, it means that you’re no longer an individual contributor. As a manager, your decisions and work revolve around the best interests of your team and organization, not just your individual work.
Here are some questions to ask yourself when contemplating this career switch:
Do I like working independently or helping others solve problems?
Managers spend a lot of their time helping their teams solve problems. As a manager, you must get to know your team well enough to understand their strengths and weaknesses so you can effectively delegate tasks and assign responsibilities. Your team may come to you looking for guidance or advice, and you must be prepared to help them navigate through any problems they face. On the other hand, individual contributors may collaborate with their team or other teams, but they spend a lot of time troubleshooting and problem-solving complex technical problems independently.
Am I able to switch between various tasks easily and productively?
As a manager, you’ll have to context-switch constantly. Not only do you have to effectively manage a team, but you also have to effectively manage competing responsibilities, priorities, and deadlines, and figure out how to proceed. As an individual contributor, typically you’ll get to focus on getting your priorities done in order (unless your manager says otherwise). In general, there seems to be less context switching in an individual contributor role than a management role, but it really depends on your company, org, team, etc.
Can I be tough AND empathetic?
This is something that is really important within both roles but becomes a bit more prevalent as a manager. In management, you must know when to be a little tougher when various situations arise. It’s important to be able to read situations effectively and proceed appropriately. There may be times when you need to have tough conversations with your team, and you must be able to advocate for yourself and for your team, while also showing empathy for others.
Do I want to lead?
While there are opportunities to lead in both positions, managers take leadership, ownership, and responsibility of an entire team. An individual contributor will typically take responsibility for solutions and designs. Beyond this, in a management role, you must feel comfortable acting as a leader, mentor, guide, and teacher to a group of people. You must be able to connect with each member of your team to determine their strengths, find their potential, and also find appropriate ways to challenge them and push them to succeed. You must be level-headed and patient when leading a group of people, and you must be comfortable giving constant feedback and advice to others.
There are certain qualities that play a key role in managerial success. It’s important to realize that these qualities can be developed. If you’re interested in management but lack some of these qualities, take the time to develop them in your current role! Some of these qualities overlap with qualities of a good software engineer, while some are more important in a management role or take on a slightly different meaning when you transition into management.
Let’s take a look at some of the qualities of a good software engineering manager:
Learn what it takes to become an inspirational and effective engineering manager.
There are many great aspects of becoming a software engineering manager. There are also a lot of hurdles. Yes, you may experience similar challenges as a manager that you do as an individual contributor. But the overall job description is different. As a manager, you’re now a mentor and leader to a team. You must communicate more frequently with stakeholders and executives. You must take responsibility for decisions you made with your team. You’ll need to meet deadlines, promote teamwork, facilitate customer service, and achieve your org’s goals. There can be a lot of pressure to execute everything perfectly and always perform well. It can be tough to always communicate effectively, balance your work with your personal life, manage a team remotely, and so on.
As a manager and as an individual contributor, it’s important for you to see hurdles not as failures, but as stepping stones to becoming a more improved version of yourself. Every person, no matter who they are, is bound to face various challenges at different points in their lives. When we experience a hurdle, the most important thing is to be resilient and learn from those situations. You should always aim to keep moving forward and to be a problem solver.
For starters, you need software engineering experience to become a software engineering manager. Most software engineering managers have at least five years of experience working as a developer (and throughout that time, they’ve moved up levels). As you work as a developer, seek out opportunities that will allow you to build and foster management skills to help prepare you for a management role in the future. Try to build your project management skills and soft skills as well, because they are very important in a managerial role.
As you progress through your developer career, talk with your own manager about your aspirations so that your manager can help set you up for success and help you find opportunities to mentor and lead. It also helps to browse job descriptions to understand exactly what companies are looking for in their managers.
Many devs get into management, but the career switch isn’t for everyone. You can be just as successful in your software engineering career as an individual contributor if that appeals to you more. It’s important to take the time to determine whether which career path makes sense for you and what aligns most closely with your personal and professional goals. If management is something that you want to pursue, it’s important to be a manager that can inspire your team and bring out the best in them.
To get started learning how to be a software engineering manager, check out Educative’s course Become an Inspirational Manager: Bring Out the Best In Others. Written by an experienced, strategic engineering leader with experience leading teams at Microsoft and Amazon, this hands-on course helps managers at all levels remain as integral and inspirational as ever.
Join a community of more than 1.4 million readers. A free, bi-monthly email with a roundup of Educative's top articles and coding tips.