Software Engineering Career Path 101

Ilan Pinto
Geek Culture
Published in
6 min readMay 26, 2022

Occasionally, I ask my team members what they would like to do 3 to 5 years from now? And sometimes, the answer is like, “ I would like to be a senior engineer or a tech lead.”

This is a good answer and very genuine. However, this answer sometimes only reflects the title or the compensation level the team members desire. It might not reflect their career aspirations or the skills they wish to acquire. It might be the associate is an introvert or doesn’t have the confidence or knowledge to really know what are the career possibilities. A good manager will follow up this answer with more questions to fine-grain his team member's desires.

In this article, I will try to help software engineers and engineering managers properly analyze the above question, articulate a more helpful response and build a possible career path.

Job Title Vs. Job Position

In most engineering organizations, every associate has a job title that reflects responsibility and seniority, and the job position reflects the domain of expertise. For example, mobile application developer, front-end engineer, and DevOps engineer are all examples of job positions. The following is a list of job titles: a junior software engineer, software engineer, and senior software engineer. The diagram below illustrates the Job and Title combinations.

The job position reflects my day job. The job title reflects the level of knowledge and responsibility.

Title vs. Position

Different organizations have different inner lists for job positions and job titles. As a result, some titles can be very confusing. For example, Architect and Tech Lead, which in my opinion, describe a day-to-day job, are considered job titles in some organizations.

There is a slightly different naming convention for levels in big tech companies. For example, Facebook has an engineering level scale for E3–9, while Google uses a scale of L3–10.

Horizontal Vs. Vertical Career Growth

After explaining the difference between job position and job title, let's talk about growth.

Promotion is mainly considered vertical career growth. It is the way for organizations to recognize a new level of skills and responsibilities that increase their influence on the entire organization. That could be either people's influence, AKA managers, or technical influence.

Internal job mobility is an example of horizontal career growth. It reflects that an individual will acquire a new set of technical skills.

In both cases, vertical or horizontal growth could be rewarded by increased compensation.

In most organizations, higher compensation is related to growth. The rationale is that the more knowledge engineers have, the more they are valuable to the organization. In an ideal world, the job title level should primarily reflect the level of knowledge and responsibility. Still, unfortunately, I have seen how organizations abuse the leveling system by using them mainly as a compensation tool. Unfortunately, I have also seen organizations that don’t composite horizontal growth, causing attrition of very talented engineers.

In Red Hat, there is a peer-review process for every nomination that enforces bringing evidence of the nominee’s contribution and value to the organization. This process diminishes the risk of abuse. In parallel, managers have various compensation tools for individual contributors and high performers.

Own Your Career

The last important ingredient is associate aspirations .“owning your career” might sound like a cliché, but remember that although many can offer help in managing a career, no one can guess aspiration. therefore I recommend constantly planning your career. This advice is relevant for both engineers and engineering managers.

Every quarter spends time designing your future as you design a feature. Start by asking yourself what type of tasks you really enjoyed in the past. Put them on a list and analyze which skills have you used. Now, take a white paper and try to write down the different “futures”. The next task will be to understand which one of those futures uses the skills you enjoyed most. do some research, and check what knowledge and experience are required for each future (see illustration below). Based on the research list out yearly goals and keep them in a folder on your laptop. On every quarter open the folder and update the progress made for each competency. Last tip: find mentors within the organization or outside that will guide you. Iterate the process once a year. Revalidate your goals and future planning.

Designing a future career

Going Back To The Question

After setting the stage, let’s go back to our question, “what would you like to do in 3 - 5 years from now?” this question aims to understand aspirations and professional field of interest. that's a great opportunity for building or validating a given career path.

The first case could be that the engineer would like his career path to grow vertically by having more responsibilities. A good answer for an engineer, in this case, would be, “ in the next years, I would like to have more influence on the organization, which would I believe will also be recognized by a job title promotion. What are the skills and competencies that I need to acquire to achieve this goal?”.

Another case could be that the engineer would like to extend his technical knowledge. In that case, a good answer would be, “ in the next years, I would like to learn more about XXX and YYY. Do you think I will be able to acquire this knowledge in my current position?”. It might be that opportunities to expand knowledge and skills exist in the current team or group. If this is not the case, then a discussion about future opportunities would be my suggested follow-up.

Managers must do homework to reflect the current level and skills from their point of view by bringing real situations that prove the reflection. Reflections should focus on the skills, not the personality. Personally, I recommend following the SBR model.

The last case is when the engineer seeks for salary uprise. Now, that is a different conversation that might require a separate article. Having said that, I encourage team members to be transparent about salary satisfaction. In some organizations, managers might be able to adjust salaries according to several criteria, mostly around past performance and impactful value to the organization. A good conversation will be about understanding the salary adjustment criteria and what tasks might be considered impactful value.

Conclusion

The above diagram expresses the potential directions of the conversation. I hope you found this article helpful. If you had a similar experience as a manager or engineer, please share it in the comments below.

FAQ

How do I know it's time for me to grow?

Knowing when it is time to grow is a very subjective feeling. Personality, Culture, and experience play a big role here. For some engineers, the need to grow comes after 2–3 years for others after decades. if you follow my rule number one: you own your career then you might have a clear picture of your progress. Also, try asking your manager and peers you might be surprised by their answers

As a People manager, how do I help my team members to grow?

In my opinion, part of the manager's role is to help team members to grow. A manager should constantly watch for his team's career progress and guide them. The help should be focused on coaching, guiding, removing obstacles, and pointing out relevant martial. Challenge them by providing tasks that are out other their comfort zone. build together a development plan with measurable goals. Make opportunities for public speaking and more.

But remember the first rule “own your career”, and team members should be proactive by leading this process.

How do I transition from Engineer to engineering management?

Engineering management is another type of vertical growth. Everything that I wrote above about vertical growth applies also to engineers who wish to grow vertically as Engineering managers. the difference will be around the set of skills. While an engineer who wishes to grow as a Senior or Principal engineer will focus mostly on technical skills, an engineer who wishes to grow into engineering management roles will need to focus mostly on people management and project management skills.

--

--

Ilan Pinto
Geek Culture

Software Engineering Manager @ Red Hat. likes cooking, running and data driven decisions.