镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -1389,7 +1389,6 @@
"pages": [
"hiring/stack",
"hiring/roles",
"hiring/company-levels",
"hiring/hiring",
"hiring/questions",
"hiring/working",
Expand Down Expand Up @@ -1627,6 +1626,10 @@
]
},
"redirects": [
{
"source": "/hiring/company-levels",
"destination": "/hiring/levels"
},
{
"source": "/postgres/advanced-guides",
"destination": "/unmanaged-postgres/advanced-guides"
Expand Down
20 changes: 0 additions & 20 deletions hiring/company-levels.mdx

This file was deleted.

169 changes: 139 additions & 30 deletions hiring/levels.mdx
Original file line number Diff line number Diff line change
@@ -1,34 +1,143 @@
---
title: Our Engineering Levels
title: Our Levels
source_url: https://fly.io/docs/hiring/levels/
---

We break out engineering seniority into four levels, L1 to L4 (staff).

* **L1 Engineers** tend to be early-career or people trying out a new specialty. L1's get more management
support than other engineers. If you're an L2 and things aren't going well, that might be on you. If you're
an L1, it's probably on us. L1's get a wider variety of projects; we want them
getting as much contact with our stack as possible.

* **L2 Engineers** are our middle-tier. An L2 will generally be responsible for running down a new feature,
end-to-end. An L2 is mostly self-directed about implementation, works with L3s on designs, and collaborates
on product direction. An L2 has personal responsibility for the "how" of what we're building, but shares
responsibility for the "what" and "why". A successful L2 can fill any given week with work that will improve the
lives of our users, but might need help to fill a dozen consecutive weeks.

* **L3 Engineers** lead teams. We delegate to L3s entire functional areas of our platform and trust them to
make smart decisions, not just about how we build things, but about what things to build. L3s are tuned in
to our customers and independent sources of authority about their corner of Fly.io. L3s code, but they're
also a resource for their team: they're helping L2s figure out what the next best feature to build is, and
helping L1s figure out the right sequence PRs to get a feature done.

* **L4 Engineers** are our staff level. An L4 is a technology leader across multiple different parts of
our platform. They influence work on lots of teams, not just one. They're independently responsible for
making big new things happen; an L3 leads a team, an L4 might create new teams.

In order to optimize for pay equity, Fly.io doesn't negotiate salaries. Instead, we have a standardized salary for each of these levels.

You can go from L1 to L2, or from L2 to L3. In fact, the most important job that engineering management at Fly.io has is leveling people up. [We prefer small teams and bottom-up product decisions](/hiring/working#we-prefer-small-teams-and-bottom-up-decisions), which incentivizes
us to get people as autonomous as we can.

Going down a level is more problematic, and as a rule of thumb we don't do it. So we're particularly careful about leveling people in the door.
We have established a stable career ladder that gives folks plenty of room to grow, both in level and in comp.

These are company-wide levels, so they apply across all departments.

## What the levels mean

The descriptions of our levels below are based on four elements. (We adopted this framing from [Pave's](https://www.pave.com/blog-posts/job-leveling-framework) leveling guide, a well-respected job leveling framework used by many companies.)

- **Scope:** how complex and far-reaching the work is.
- **Autonomy:** how much you decide on your own.
- **Responsibility:** what you own.
- **Knowledge:** how deep your expertise runs.

## Individual contributor levels

We break out individual contributors into six levels, IC1 to IC6. All the bullet points at a certain level are inclusive of the skills in the level below. For example, someone at Level IC4 displays the skills of that level _and_ those of IC3, IC2, etc.

### IC1

An IC1 completes what they take on and contributes to what the team ships. IC1s get more management support than folks at other levels, and aim to be increasingly autonomous as they gain experience here.

A person at this level:

- Understands the user value of their work, and has a feel for making decisions for users.
- Understands what their work needs to look like to be successful, and delivers it "on time" (whatever that means in their specific role). Their work is well-defined and comes with close support.
- Is interested in absorbing more context and new information (about user needs, the tech landscape, etc.) and proactively does so.
- Answers questions in the Fly community forums, responds to users' problems, and incorporates user problems into their work to inform how they'll make Fly.io better.
- Uses AI as a default part of their work. They reach for AI tools first when they're researching, drafting, coding, or debugging, and they're quick to try new tools when the team picks them up.

### IC2

An IC2 makes consistent progress on their work by continuously minimizing scope, incorporating feedback, trying different approaches, and delivering value for users.

A person at this level:

- Can be responsible for running a project start-to-finish. They are mostly self-directed about implementation, though they might need/want help from more senior folks on direction. (Put another way: they have personal responsibility for the "how" of what they're working on, but share responsibility for the "what" and "why".)
- Continuously minimizes scope on their work. They look for the smallest version of the work that solves the problem, ships that first, and then reassesses the situation.
- Incorporates feedback from colleagues on their approach to work. They ask for input early and change course when the feedback is good, and they can explain their thinking when they decide to stick with their original approach.
- Has real fluency with the tools of their job and can solve the common problems without help. They make progress on difficult issues by trying different approaches and solutions.
- Consistently focuses and follows through with their work. The projects they start get finished.
- Uses AI to move faster on their own projects. They've worked out which parts of their job AI handles well, they check its output carefully, and they share what's working with their teammates.

### IC3

IC3s are independent sources of authority about their corner of Fly.io. Team leads should be IC3 or above.

A person at this level:

- Accelerates their team. They ask genuinely curious questions to help others make decisions and creatively solve problems. They help define problems that teammates of varying levels can pick up and solve. They clear hurdles out of the way so that the underlying work of the team can go faster.
- Whatever the area of their work is, they are "subject matter experts." This does _not_ mean there's nothing left to learn! (That would be nuts.) This just means _most_ of the time, they can answer any in-depth question someone might ask about the area of their work.
- Gives constructive and appropriate feedback that lands. They can assist their teammates in discovering and adjusting when a change in plan is needed.
- Is clear about what they're working on. It's easy to tell (through Discourse posts, Fizzes, or GitHub boards) what their current project is (and if they're blocked at all, what it is they need to get unblocked).
- Models follow-through and effective communication for others. They have spidey senses for when they're close to getting "stuck" on a project that might not accelerate the team/business goals, and they know how to get un-stuck.
- Energizes the people around them. This might look like direct encouragement (Fizz praises), making work more accessible to others (answering questions, helping to shape/scope amorphous work, etc.), or otherwise helping to keep morale high on difficult projects, incidents, etc.
- Demonstrates a "solutions" mindset. Rather than pointing out potential flaws in an idea, they can assess the underlying business need and suggest potential ways to accomplish it (even if they're different than the ones initially suggested).
- Makes their team better at using AI. They set the best practices for their area, and help teammates find where AI fits in their work.

### IC4

IC4s lead complex work that crosses teams. This is the level at which we start looking beyond direct impact of day-to-day work (though that's still very important) and start assessing influence across the company. This is a hard jump to make!

A person at this level:

- Accelerates the company. Their work is cross-functional in a way that makes it easier for other teams to ship.
- Makes ambiguous user needs tangible to others around the company. They recognize a fuzzy problem, figure out the underlying user need, and break it into pieces that other people can help ship.
- Builds foundations that other work stands on. What they build keeps working and benefiting users long after an individual project is shipped. Other teams can build on top of their work without needing to plug gaps.
- Increases the number of people at Fly.io who can give constructive, kind feedback, by coaching and modeling these skills. IC4s are leaders, and their presence within the company (in Slack, in person, everywhere) reflects the vibe we want to cultivate: kind, non-judgmental, thoughtful, and with a bias toward action.
- Continually recenters team efforts on work that has value for users and is tied to company goals. When a project (or Discourse thread, etc.) starts to drift off-topic or into minutiae, they're the one who refocuses it.
- Communicates their work/the output of their work with a story about the user value, both internally (with Discourse updates, etc.) and externally (forum posts, blog posts, etc.). This doesn't have to mean constant content creation (we have a team for that!) but an IC4 does regularly engage with Fly.io users in some capacity.
- Shapes the longer-term vision for the team's work. Their view of where the work should go over the next few quarters (which they are vocal about) gives their teammates something to align around.
- Brings new AI approaches to work across teams. They try the newest tools early, figure out which ones are worth adopting, and rebuild workflows around them so other teams can use them too.

### IC5

An IC5 drives complex, high-visibility work. Starting at this level, work has direct ties to business outcomes.

A person at this level:

- Identifies the larger problems the company should be working on before anyone has framed them as problems. They start building toward them early enough that we're ready when it matters (whether that means identifying product/industry trends or avoiding catastrophic security incidents).
- Defines how a kind of work gets done at Fly.io, rather than only doing that work well themselves. They set the approach that others follow, and they write it down or build it into our tools so it outlasts their own involvement.
- Is treated as the authority on their domain, well outside their own team. People across the company seek out their judgment, and leadership plans around it.
- Pushes back with a better idea. They'll tell leadership when a plan won't work and explain why, but they also always come with an alternative that gets at the underlying business need.
- Treats AI as a strategic advantage in their domain. When they decide which problems to take on and how to solve them, they look for ways AI lets us do things our competitors can't, and those AI approaches are part of the plan from the start.

### IC6

An IC6 shapes company-wide strategy and sets the standards that steer us long-term.

A person at this level:

- Shapes company-wide strategy. Their work redefines where Fly.io is going. They see a category we could own and do the work to make it possible, from scoping it to getting it to the point where a team can run with it. What they build (whether it's a piece of infrastructure, a new partner channel, etc.) makes new products or markets possible for us.
- Sets standards that influence long-term direction beyond any one team or function. The way they think about quality, architecture, or the customer experience becomes how the whole company works.
- Is recognized outside Fly.io. Developers and peers across the industry know their work through talks, writing, open source, or the community, and that reputation brings people and customers to us.
- Uses AI to change what Fly.io can be. They see where AI opens up new products, markets, or ways of working for us, and they build that view into the company's long-term strategy so that AI becomes one of the reasons we win.

## Management levels

We also have **M1**, **M2**, **Director**, and **Senior Director**.

Managing at Fly.io is a different job, not a more "important" one. Managers make the people on their team more autonomous, rather than micromanaging them. They ensure that everyone on the team is pointed toward the most valuable work to further company goals. They make sure everyone on the team has full context about what they should be doing, and pay enough attention to everyone's work that they can provide ongoing, meaningful feedback.

### M1

M1s manage a single team. An M1 is responsible for the people on that team (their growth, their level, whether they have what they need) and for the team actually shipping. M1s are often still hands-on. The most common way to become an M1 is to already be doing most of the job as a team lead. They make sure everyone on their team is using AI well, meaning: they expect AI in day-to-day work, make time for people to learn new tools, and include AI skills in how they give feedback and assess growth.

### M2

M2s manage a bigger team, or more than one, and are usually the most senior person in a functional area. An M2 is expected to own the "what" and "why" for their area, while continuing to provide feedback to their teams and unblocking them in whatever ways are necessary. They build AI into the goals for their area, asking where AI could change the outcome, and they make it part of how their teams plan and measure their work.

### Directors

Directors own a function. A Director is accountable for outcomes that span multiple teams and usually multiple quarters, and for the shape of the org underneath them: which teams exist, who leads them, when to start or stop one. Directors typically manage other managers. They also make AI part of their function's strategy: their multi-quarter plans count on AI to reach outcomes we couldn't reach otherwise, and they shape their org around that bet.

### Senior Directors

Senior Directors own a function with company-wide leverage, and their scope gets set by the business rather than by an org chart. A Senior Director is expected to bring problems to the leadership team instead of waiting to be handed them, and to be right about them often enough that people plan around their judgment. They position AI as a strategic differentiator for the company, bringing leadership a clear view of where AI will change our business and where it can set us apart, and they make sure the company moves on it quickly enough to stay ahead.

## Leveling and performance

Level and performance are related, but they aren't the same thing. Your level reflects the sustained scope, complexity, autonomy, responsibility, and knowledge required by your role. Performance reflects how effectively you are meeting the expectations that are outlined above.

Someone can be an excellent performer without being ready for promotion. Strong performance at your current level should be recognized through feedback and compensation growth within the level, not only through a level change.

**_Promotion_** means that the scope of your role has meaningfully expanded and that you are consistently demonstrating the expectations of the next level across a representative portion of your work.

## Leveling up or over

You can go from IC1 to IC2, or from IC2 to IC3, etc. In order to do so, you should be consistently performing at the next level up for 2 months (for IC1-IC4) or 4 months (IC5-IC6 and all management tracks).

Time alone does not determine promotion. The work should represent an ongoing expansion in scope.

Our preference is to help people grow into their level rather than move them back a level. When someone needs support meeting the expectations of their role, we want to work with them through clear feedback, coaching, and opportunities to build their skills. That's also why we take care when assigning levels at hiring, to set people up for success from the start.

Moving between tracks is a different thing, and not a promotion or a demotion. If you move from managing back to building (or the other way around), you've changed jobs.

In order to optimize for pay equity, Fly.io doesn't negotiate salaries.

[We prefer small teams and bottom-up product decisions](/hiring/working#we-prefer-small-teams-and-bottom-up-decisions), which incentivizes us to get people as autonomous as we can. Going down a level is more problematic, and as a rule of thumb we don't do it. So we're particularly careful about leveling people in the door.
Loading
Loading