All software engineers are the same, right? Well, not exactly. There is a strata of different seniority levels, each with its own expectations for experience, responsibilities, and pay. This article is a concise collection of my observations on seniority...
All software engineers are the same, right? Well, not exactly. There is a strata of different seniority levels, each with its own expectations for experience, responsibilities, and pay. This article is a concise collection of my observations on seniority levels for software engineers.
The levels
Every company is different, but I’ve seen most companies coalesce around the following levels:
Level | Responsibilities | In Plain Terms |
Entry | Do what you are told. Learn as much as you can. | “What’s a cookie?” |
Intermediate | Complete tasks independently. Get things done. Be a good team player. | “I bake chocolate chip cookies.” |
Senior | Take ownership of bigger projects. Know what you’re talking about. Help other engineers get unstuck. | “I help folks mix cookie batter.” |
Staff | Provide technical direction for an organization. Collaborate cross-functionally for technology alignment. Do the needful to keep projects moving. Mentor other engineers. | “I make cookie recipes.” |
Principal | Provide technical direction for a company or even an industry. Collaborate with management for business alignment. Carry significant influence backed by deep experience. | “I know everything about cookies.” |
Distinguished | Make exceptional technical contributions to the company. Shape the direction of the company and its technologies. | “I invented the ice cream sandwich.” |
Fellow | Create and guide a crucial technology that drives a significant portion of the company’s revenue for several years. | “I am the Cookie Monster.” |
These levels usually apply for all types of engineers (frontend, backend, test, data, DevOps; whatever) up to Principal. Again, specific details vary by company.
Population at each level
The breaking point tends to be between Senior and Staff. Many engineers make it to Senior. A few make it to Staff. Fewer make it to Principal. Distinguished and Fellow are very, very rare. Some companies don’t even have Distinguished or Fellow.
Earning promotions
There are two main ways to earn a promotion:
Start fulfilling responsibilities for the next seniority level above you. Then, clearly advocate for a promotion to your manager leading up to your periodic performance reviews. Finally, hope that you get selected for a promotion. Switch to a new job that has the title you want. Usually, this needs to be at another company.Switching companies is typically the fastest way to climb the seniority ladder as well as to increase your pay. Many companies impose quotas for annual raises and promotions.
Salary ranges
Seniority titles are important because they impact pay. Usually, a company sets a salary range for each seniority level. When you get promoted to a new level, your salary starts at the low end of the range for that level. As you progress within the level, you will (hopefully) earn raises that put you higher within the salary range. Eventually, once you hit the top of the range, you can’t earn more raises until you earn a promotion to the next seniority level. Also, good luck finding out what those salary ranges actually are. Many companies keep them secret.
Title mismatch
Someone’s seniority prefix does not always match their actual capabilities. Sometimes, their title is lower than the level at which they perform. This happened to me once when a bigger company bought the startup where I worked and reassigned everyone’s titles to fit their own career tracks. More often, though, I’ve seen “title inflation” where an engineer is given a higher title than their capabilities reflect. Companies usually do this either to hold onto important engineers or to woo prospective new hires. In those cases, titles match salary band, rather than salary matching seniority. That’s why it’s more important to look at a person’s accomplishments rather than the prefix on their title.
Becoming a manager
It is commonplace for engineers to become managers. However, engineering and management are separate tracks requiring distinct skill sets. The difference is the focus of the work: technology (engineer) or people and business (manager). If a company has a well-defined seniority ladder for engineering, then engineers don’t need to become managers to earn a “promotion.”
Other thoughts?
This information is all anecdotal based on my general experiences. What have you seen? Let me know in the comments below!