Photo by Ales Krivec on Unsplash.

Photo by Ales Krivec on Unsplash.

Typically, everyone on a software team has a job title and knows it. It could be Software Engineer, Senior Staff Software Engineer, Full-Stack Engineer, Director of Engineering, or something less common or quirky, like Software Evangelist or Director of Spam Research.

But job titles are actually pretty confusing. In startups, titles are often chosen quickly and without much careful thinking.* And in large companies, conventions on titles vary widely, and while we notice them, we often don’t think about what purpose they really serve.

Is a person’s title related to how much experience they have? Are titles standardized within a company? Are they a reward for performance, or do they reflect what you do, or show how much you’re paid?

In general, a title is just words on a business card (and few software engineers even need those). But it’s the level of your job that really reflects scope of responsibility. We’ll talk about roles and levels and how they relate to job titles.

This in-depth guide based reflects expertise from over a dozen hiring managers, engineering leaders, and recruiters. If you’re an employee hoping to understand how your title or level fits into an organization, a hiring manager creating a job description for an open role, or a founder who wants to create a leveling rubric, this post can help you think about the fundamentals and best practices.

You’ll find more information on how roles are created and how to define an open role at your company in the complete Guide to Technical Recruiting and Hiring.

What Are Roles, Titles, and Levels?

What’s your job? You probably know what you do every day. But answering that question succinctly in a way that is accurate and comparable to others isn’t as simple. In fact, especially early in their career, employees may think about “getting a promotion” but not really understand what that means in terms of a company’s roles, titles, and levels. So let’s define our terms up front.

A role (or position) is the part an employee plays within a team and company, including the set of formal and informal expectations that define the employee’s responsibilities. A role also situates an employee within an organization, and it may correspond to the job level into which they fall.

The impact a person has within a company arises from the outcomes of their role—the tangible value to the company, such as revenue, technology, product, or customers, that is uniquely attributable to that person’s work. Roles require a combination of ability, autonomy, influence, and accountability. Many companies choose to include a level and title as parameters or expressions of a role. Both levels and titles help to situate the role within the context of the company and make the role more translatable to those outside the company.

A job title is the name assigned to a particular position at a company. Job titles provide a brief description of the position, and can vary in that descriptiveness, ranging from the general—Software Engineer or Web Developer—to the specific—Senior Staff ML Engineer. Job titles are usually public facing and may only loosely reflect the true scope and impact of a job, which is conveyed more formally and internally by the job level.

​confusion​ Informally, people often talk about the seniority of a role. But informally, “seniority” can be used to mean three different things:

Is an individual contributor with the title Senior Software Engineer, who has been with the company for ten years “more senior” than a Director of Engineering who was recently hired? To avoid confusion, it’s usually best to talk about job levels.