Overview of software engineer career progression in terms of tracks and levels.
IC vs Management (Tracks)
There are typically two tracks for software engineers: Individual Contributor (IC) and Management / Engineering Manager (EM).
All software engineers start out on the IC track, where your main contribution is the individual work (code, architecture design, etc.) that you produce.
Typically you will start out as a (junior) software engineer, progress to mid level, and then senior software engineer.
When you reach the level of senior software engineer, you may be offered a chance to lead a small team (team lead or engineering lead). This is where you can go towards the management track and eventually becoming an engineering manager (EM).
A typically new engineering manager may lead a team of 10 or more people, consisting of individual contributors as well as team leads.
Career Progression Levels
Tech companies usually have well-defined levels for software engineers, along with the responsibilities and requirements at each level (job model).
Example: Backend Engineering Roles at GitLab
Promotion to a higher level usually requires having a certain number of years of experience (yoe). Exceptionally talented engineers can get promoted 1 or 2 years earlier. On the other hand, having a certain number of years of experience does not guarantee promotion to the next level.
Knowing what level you should expect with a certain amount of years of experience can be helpful in determining how well you are doing relative to others with similar yoe.
Different companies have different number of levels and naming conventions. Here are two examples of how it might look like:
Junior Software Engineer → Software Engineer (Mid Level) → Senior Software Engineer
|3||Junior Software Engineer||0|
|5||Senior Software Engineer||5|
|6||Lead Software Engineer||7|
Software Engineer → Software Engineer || (Mid Level) → Senior Software Engineer
|6||Software Engineer ||||1-2|
|7||Senior Software Engineer||5|
|8||Staff Software Engineer||8|
It is important to understand that the mapping between yoe and level only works up to the terminal level (typically senior software engineer), where you are no longer expected to get promoted to the next level (staff software engineer). This is also where significant career progression stops for the majority of people.
Starting Your Career
The first promotion in your career is usually from junior to mid level.
Subscribe to receive updates on new goodies