The FAIR principal for defining engineering career levels

Let me start by confessing something: before I became a manager, I didn’t pay much attention to titles and levels. I’d get promoted from one title to another, but I never looked at how my employer defined each title, and I never planned for a promotion to a specific role. I wrote code, found resources that I needed, reached out to whoever I thought was useful in my projects, and got things done. When I got promoted to Staff Engineer at VMWare, one of my co-workers congratulated me, saying, “congratulations, you staffer.” I could sense a bit of envy in their voice, and I had no idea what they meant. So, I pulled up the “congratulations on your promotion” email and realized that they were referring to my new title, and that some engineers cared about their titles. Three years later, I became a manager. And over the next few years, I learned that having a well-defined engineering career path is critically important for the long-term success of an engineering organization, even if engineers are engaged, in flow, and well compensated.

Although it may seem like a simple concept, a well-defined career ladder helps attract, retain, and develop top talent. If your company’s engineers dismiss your definition of levels and titles as meaningless bureaucracy, you should take a closer look at how your organization thinks about professional growth and communicates expectations. The levels should not be just a bunch of vague definitions; they should provide a clear and transparent path for career growth and development. Moreover, as the company evolves, so should the career ladder.

I’ve helped define and adjust engineering career levels at several companies, and I’ve summarized the principles that I follow in the following FAIR methodology:

  1. Flexibility: Engineering levels should be flexible enough to accommodate different career paths and areas of expertise within the company, while still maintaining consistency and fairness in evaluation.
  2. Alignment: Engineering levels should be aligned with the company’s strategic goals and technical needs, so that engineers are working on projects that contribute to the company’s success.
  3. Impact: Levels should be proportional to impact. Engineers at each level should be able to demonstrate a clear and measurable impact on the success of the organization, either through the quality and impact of their individual work or through their ability to lead and mentor others.
  4. Rationality: It’s important to establish engineering levels based on rational criteria, ensuring that engineers are evaluated consistently and fairly across teams and departments. It is important that expectations for each level are defined with as little ambiguity as possible

Let’s dive deeper into each principle.


Engineering levels should be flexible to accommodate different career paths and areas of expertise within a company. This is important because different engineers have different strengths and interests, and may prefer to specialize in a particular area rather than follow a strictly defined career ladder.

One example of how an inflexible career ladder harmed a company is the case of Microsoft in the early 2000s. At that time, Microsoft had a well-defined but rigid career ladder that required engineers to follow a linear progression from individual contributor to manager, without much flexibility for lateral moves or specialization in specific technical areas.

This rigid structure meant that engineers who were highly skilled and experienced in technical areas but did not want to pursue a management career path were not given opportunities for career growth and development. This resulted in many talented engineers leaving the company to pursue opportunities at other organizations that offered more flexibility in career paths. It also pushed many excellent engineers to become mediocre managers. Today, this is commonplace, but in the early 2000s it was a hard learned lesson for one of the world’s largest software companies. Eventually, the company implemented a more flexible career development program that allowed engineers to specialize in technical areas or pursue a management career path based on their strengths and interests. Most recently, Microsoft went one step further and redefined their career ladder as a “career playground”.


In the tech meccas of Silicon Valley or Biotech Bay, it’s all too easy to get stuck in a bubble and lose sight of the bigger picture. You might start to think that database companies need their employees to focus exclusively on distributed systems, or that bioscience companies need their workers to be single-mindedly focused on genetics. But let me remind you of a cautionary tale from days gone by: Kodak.

For more than a century, Kodak was the undisputed king of the photographic equipment market, reigning supreme throughout much of the 20th century. Yet despite their seemingly unassailable position, Kodak failed to anticipate the rise of digital photography and the seismic shift in consumer preferences that came with it. The company’s engineering career ladder was laser-focused on film photography and neglected the development of digital technology. This left Kodak lagging behind competitors like Sony and Canon, who had wisely invested in digital technology. Ultimately, Kodak couldn’t keep up, and the company fell behind in the digital camera market, eventually declaring bankruptcy in 2012.


Impact is one of those principles that sounds good in theory, but when you’re running a research and development organization with a seemingly endless budget, it can be hard to get a handle on. But if you’re running a business, you don’t have that luxury. You need to be able to tie spending to return on investment. It’s as simple as that. If an employee is delivering results, you can compensate them accordingly. But it’s not just about money. By linking career growth to the impact an individual has on the organization, you create an environment where people are motivated to focus on high-impact work that drives business success, rather than just going through the motions. This helps to retain top talent and encourages individuals to take ownership of their work and strive for excellence, which ultimately benefits the company as a whole. It also promotes fairness and transparency, as everyone can see how their contributions are being recognized and rewarded. So if you’re serious about running a successful business, you need to prioritize impact and tie career advancement to it.


Software engineers are some of the most rational thinkers you’ll ever come across. The work demands a laser-like focus on precision and attention to detail, which means engineers are experts at breaking down complex problems into manageable components. They are logical thinkers who leverage their problem-solving skills and critical thinking abilities to develop and implement software solutions. In short, engineers are hyper-rational creatures, and that’s precisely how you want them to be. They can sniff out a code that’s full of bullcrap from a mile away. So, when you’re drafting job descriptions or defining career advancement paths, you need to be extremely specific and avoid vague language. If you want to hire a Principal Engineer, you need to spell out precisely what that role entails and what specific, measurable criteria they need to meet to succeed. Phrases like “having a strong technical reputation” or “demonstrating exceptional leadership” won’t cut it. Instead, focus on outlining the skills, knowledge, and impact that a Principal Engineer is expected to bring to the table. By doing so, you’ll create a clear roadmap for success, help your engineers thrive, and set your business up for long-term growth.


You know what they say about assumptions — they make an “ass” out of “u” and “me”. This is especially true when it comes to job titles. Across different companies, titles can mean vastly different things, leading to confusion and unnecessary friction when it comes to hiring and retaining talent. Therefore, when it comes to defining engineering levels, it’s best to avoid titles altogether. Instead, focus on creating a clear, concise career ladder that outlines the specific expectations and responsibilities for each level. And remember, a career ladder should be a living document that evolves as your company evolves. As you grow and expand, the expectations and responsibilities for each level may shift, and that’s okay. Just be prepared to engage in the uncomfortable exercise of realigning the ladder as needed. It’s better to address these issues head-on rather than letting confusion and ambiguity fester.

Posted in technical

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: