Many people want to become software engineers and still not that many ask themselves what are the options in their career path and how their career can evolve from software engineers to something else. In my career I’ve met engineers that left their classic career path for something different, and I think the trend will continue in the future.
With this post I am also starting a new series of blog posts dedicated to career paths! Starting with software engineering and product management we will dissect these career paths trying to explain options, choices and what to consider to advance in your career.
In this article we will see how software engineers can leave their traditional career path and get into 4 different roles inside the organization, closer to the business.
There are the 4 different roles you could consider if you are a software engineer:
For each one I explain why it makes sense and what I’ve seen in my career. There are also some great videos from experts and people that have done each move.
The Software Engineering career path
This is what a classic career path for software engineers looks like:
It’s important to start saying that every company implements a different career path for software engineers, and depending on the size and industry of your company, you might find a longer or shorter path.
With that being said, the classic path for a software engineers is made of increasing levels of seniority that bring you into more responsibilities and more decision making over time, especially when you start working as a Tech lead or Staff Engineer.
As you can see from the image, there is an important decision that every software engineer needs to make at some point: going into management or stay on a technical path. In this image this is called people-focused and in my experience not every software engineer loves that, mostly because your job changes a lot and you spend 90% of your time working with other stakeholders in the organization and managing people.
On the other side, the technical path allows you to stay involved with code and take more responsibilities that are usually related to select technology, architectural decisions and strategic migrations to new solutions.
In both cases you will end up becoming a CTO – Chief Technical Officer – the person who is in charge of the technical and technological strategy of your organization. This role deserves a separate discussion for the future.
In my experience not many developers think about their potential career path and make decisions based on that. Besides the options listed in the image, there are actually quite a few more directions you can consider, especially if you are looking for responsibilities that are more related to the business and less to technology.
Product Management: why software engineers make great product managers
In the last fe years I started to appreciate how software engineers can easily and successfully become product managers. And honestly, software engineers are usually the best product managers you can dream of in the software industry! Why? Because they can talk to software engineers and connect with them in a way that non-technical people can’t.
First of all, becoming a product manager is a choice you can make once you are at least a senior software engineer or a tech lead. In both cases you have probably seen enough code and shipped enough software to rely on your skills to make a move into the product world. Not only that, a senior software engineers had to interact with product managers and designers and knows the dynamics of those relationships. Chances are that in many cases you would have preferred to run things in a different way due to your technical knowledge of the problem, but your product manager was in charge.
How to start moving to product management
I’ve seen at least 5 people getting into product management and for all of them the first step has been pretty easy: start asking questions about the strategy and vision of what you are building and use that to improve your software while being proactive with it.
Software engineers that understand the product – and its vision – are usually incredibly more successful at execution and can make a difference in any company. That happens because they ask questions other people don’t even think of and are able to grasp what the business expect from the software they are building. You can see that with small features that the product manager was not expecting or small improvements that would have been part of a future iteration but that the software engineer was able to prioritize.
If you start taking a more active role in the product side of things, you should also start changing your mentality. While many software engineers love to be quite firm on technical decisions and avoid compromises, software engineers that want to become product managers understand the power of negotiation for technical decisions and take an active role in proposing solutions to their PM. It’s more a role where you will find yourself saying “We can’t do that for this sprint, BUT I think there is another solution that I can think of…” instead of saying “we can’t do that by the deadline, we need more time“.
The product manager will notice your proactiveness and will become an ally in helping you transitioning to product management. There are several things you need to learn to become a product manager and this post doesn’t go into the details of that, but this small initial step will help you a lot.
Last but not least, ask questions about your customers. Your PM will love that and you will be able to use that information to adapt your software to specific use cases with a strong understanding of the problem they need to solve.
From here, I would suggest you start doing two things: talk to your manager – maybe during a session where you are discussing your career path – and start working with product managers inside your organization to understand more and more about their challenges.
In parallel, you can start working on an online course that can give you the fundamentals of product management. YouTube has many options (this course has 2 full hours just on fundamentals) and at Anthropos we are working on building a full career path that will be available soon.
Project Management: another alternative path for software engineers
If product management sounds like something too focused on business, negotiation and strategy, the project management path might be a good alternative.
Even in this case your technical abilities as software engineer will be helpful to migrate into a role that is often technical itself and that needs to make technical decisions. I’ve seen project managers becoming great allies to tech teams, especially when there are customers that need coordination and clear directions.
Similar to a product manager, there are a lot of differences in how companies define the role of project manager, but in all cases there are some common traits and skills that are required as project manager:
- Organization and coordination: probably the most important skill for project managers. Many software engineers, in my experience, are very well organized and are used to coordinate different projects or parts of a project.
- Customer relationship management: project managers are often seen as connectors between multiple teams and the main person that will update and work with customers.
- Technical knowledge: the best project managers understand – at least at a basic level – the technical aspect of their project. That’s why software engineers are a perfect match for project managers, they can steer projects with a full understanding of their technical complexity and in that sense, they bring a lot of value to the other members involved (like it happens for product managers).
- Negotiation: like product managers, project managers do need some negotiation skills as well. You are probably not going to find yourself presenting to C-levels all the times or justifying things to the CFO, but you will likely need to coordinate different opinions across different groups of people while keeping your project on track.
As you can see, there are similarities with product managers, but overall the project manager role has different responsibilities and is usually involved in more predictable activities. Software engineers that have seen complex projects will find themselves at home in such a role, and others will need to learn specific skills, but overall, this is a role where engineers tend to be successful.
How to start moving to project management
There is not a single way to become a project manager if you are a software engineer but there is something I’ve seen multiple times: one software engineer in the team taking the reins of the team or project in a natural way, to the point that other engineers start looking at her for coordination and directions.
You don’t need to overcome the role of your tech lead or product manager but you can offer help with specific things like managing a complex part of your project or coordinating calls and communications with customers, from a technical perspective.
Customers, in my opinion, are the right focus for software engineers that want to become project managers: there is always a quite big disconnection between a tech team and a commercial team and customers are the ones that pay the price of that. That’s why a software engineer can help coordinating things between the tech team and the sales or customer success team, offering help that influence the relationship with customers. You could be the one demoing a new feature or offering help in the coordination of a bug resolution plan. They are great opportunities to show your skills to other parts of the organization and start practicing for this role.
Compared to the product manager role, there is a great advantage you can take care off for project management: you can do this part-time or in sporadic projects. You can offer help in a project and see how it goes, before you commit to a switch to this role in your career. It’s a big advantage compared to product where it’s impossible to take leadership of a feature or product just for a few weeks.
As I said before, I am not diving deep into what you need to do next to become a project manager in this article, but the next step here would definitely be having a conversation with your manager and talk about your desire to explore the project management path. In most companies there are projects and customers that are always looking for an additional project manager.
Technical Customer Success: how to keep your technical knowledge and help customer succeed
Especially in large enterprise organizations there is a role that is becoming more and more popular: the Technical Customer Success Manager. This person is usually working inside the Sales/Customer success team but it has a strong technical preparation and works with customers on technical implementations, solutions and projects. Many of these people are usually former engineers with technical backgrounds.
In my opinion this is a role that will always be more and more in demand in the future, not just in software companies. There are tons of industries that are investing heavily in technology and having someone that is capable of dealing with your customers, from a technical perspective, is absolutely fundamental.
Technical Customer Success managers can be involved in the implementation phase of a new software or can take part of larger teams that support customers for bugs or help them achieve exactly what they want with your software often creating small custom additions to it or configuring new add-ons (and in this sense you will often see a project manager appear in your team!).
Every time we did not have a technical customer success that could help one of our customers….well we invited a software engineer at the table! And software engineers are the perfect fit for the role because they usually know how the software works (implementation), they know what works and what doesn’t really work that well (bugs!) and most importantly they can tell you if you can stretch the software enough to do exactly what you need (add-ons).
If you have communication and negotiation skills, or want to build them, this is a role you should consider transitioning into.
Even more than other roles it can change from company to company, but if you stay in the software industry it will not be far from what I’ve described.
How to start migrating to technical customer success
The best way is to start working and cooperating with your customer success team and volunteer in solving problems or helping customers with specific challenges.
Customer success teams love this type of collaboration with engineers and from there you can build a solid relationship with their leadership, creating your path to a role in the team.
Many of the skills I’ve mentioned above are common to product managers and project managers and while you already have all the tech skills you need, you will need to work on soft skills. If you intend to go down this path, I would start shadowing existing customer success representatives at your company, asking them to attend customer calls and try to help on the technical side of the conversation.
Pre-sales / Sales Engineer
This is probably the most difficult role to transition into as a software engineer, but it’s one of the great options I see for people that are looking for a career path in another department. Sales or pre-sales engineers are technical professionals that talk the sales language.
Sales is different from other skills, most of the engineers I’ve met over the years have a complicated relationship with sales people and think this profession has no technical challenge. The opposite is true in my opinion and sales jobs can be very much about technical abilities, strategy and organization.
Sales engineers are usually technical enough to handle conversations with customers and other tech teams, so as a software engineer you probably have all the right technical skills for the job. You should probably start working on your sales skills because in many organizations sales engineers do need to sell the solution as well and are usually partnering with an account executive in demos and conversations with the customers.
In my experience this is a role that a few software engineers can really love and when they do, you can see very talented engineers succeed at selling technical solutions, which is not easy in the tech world.
How to start migrating to sales engineering
This is slightly less obvious than the other three roles discussed. There is not a clear path and and the best shot is usually to talk to the existent sales engineering team and start working with them on a weekly basis.
You should shadow this team in customer calls and understand if sales is really want you want to pursue for your career. If yes, you will likely love the role because you will often receive recognition for your success (from the rest of the sales team first, especially when you make a difference for them in tough customers calls or RFP processes). Not just that, from a financial perspective, you will likely receive commissions if you work on important deals.
You will likely benefit from one or more courses that introduce you to sales, from a technical and less technical perspective as well. There are several things, like existing playbooks, that you will need to become familiar with to become a sales engineer.
It may also interest you
A blog to rethink work and career
This blog wants to help you understanding how to improve your career, acquire new skills, move to new industries and in general, how to deal with your job and think about it in your career context.
You can also find all the updates and news features of Anthropos.
If you feel this is helpful, sign-up for our newsletter, Square One.