Intro
"The mark of greatness is when everything before you is obsolete, and everything after you bears your mark." - Dave Chappelle
I have found this quote to be true across different areas, especially when I have learned from others and seen one idea influence subsequent ideas. This is particularly true during my time at Meta, being immersed in the “move fast” engineering culture that was popularized in The Social Network movie and codified through 2 decades of hacker innovation.
Personally, one of the big takeaways for me was Meta’s deep investment in performance and career growth, which is anchored around the engineering axes: Project Impact, Engineering Excellence, Direction, and People.
Now that I have personally seen and experienced the value of these axes, it is a framework that I will carry with me for the rest of my engineering career. And yes, Meta is not perfect, but nothing really is, so that should not prevent us from reflecting on lessons and giving credit where it’s due.
The engineering axes
Preface
During my time at Meta, I worked on the Facebook app where there are largely two different engineering focus areas:
- Product: Build and improve end-user products and features
- Infra / platform: Build the systems and infrastructure that power the product
Depending on a given engineer’s or team’s focus area, there may be more or less emphasis on certain axes. I personally worked on the product side.
Axis: Project Impact
This is basically the “so what” axis. Facebook is big on measuring impact (this is an understatement), and the purpose of this axis is to capture the net impact of everything you did or are setting out to do. It’s kind of like, the product of all of the other axes–note: this is a key analogy we’ll come back to.
Some examples of what net impact means from a software engineering perspective:
- You reduced the cost of some services or storage (impact = save the company $$$)
- You increased key product/growth metrics (impact = drive $$$)
- You helped recruit 2 new team members (impact = grow the team, which drives further impact)
I am intentionally starting with this axis because when it comes to career growth and driving value, it can be very effective to start with what you want to accomplish and then work backwards from there so that you can know what to invest in.
For example, if you are trying to get promoted from mid-level to senior-level (E4 → E5), the scale of your impact needs to be team-wide at a minimum, and to achieve that you need to be able to lead, mentor, and/or collaborate with others, so you’ll need to ensure that the projects you work on allow you to demonstrate the Direction and People axes. Overall, at the senior level and above, you generally cannot rely on only your raw coding output anymore.
Axis: Engineering Excellence
This is the foundation for all engineers, and the axis that entry-level engineers are expected to master first. At a high level, it can be broken down as:
- Productivity (how fast you code and solve problems)
- Quality (how well your code and solutions follow best practices)
- Problem solving (the scope and complexity of the problems you are tackling)
I think it makes sense that this axis is considered the first foundation, aka our bread and butter, as “engineer” is literally in the name of the job we are being paid to do. All roads start from here.
To define Engineering Excellence further, there are various ways to think of its application based on a given company’s domain and focus. Here are some examples:
Generic
- Code quality
- Code readability
- Code maintainability
- System design
Applied
- Operational excellence
- Technical debt
- Oncall health
Axis: Direction
If we think of engineers as vectors that drive company value, the Engineering Excellence axis would contribute to the magnitude of that vector, and the Direction axis would be…well, the direction.
In this case, it doesn’t matter how fast or great your code is–if you are going in the wrong direction then it ultimately leads to a net-negative investment.
We can define Direction through different lenses and use cases:
Individual
- Project management
- Initiative
- Growth mindedness
Non-individual
- Leadership
- Roadmapping
- Goal-setting
- Influence
Early-level engineers generally start by focusing on individual direction. For example, managing and completing your tasks on time, taking initiative to help out on items beyond your immediate expectations, and maintaining continuous learning for new skills/knowledge to accelerate your growth and impact.
Senior+ engineers are expected to lead other engineers on larger projects, define the right priorities and goals, and influence others as needed (such as when trying to implement new standards across an organization).
Axis: People
If we continue the analogy of vectors, then we can begin to think of projects and teams as sets of multiple vectors. This means that for the net output of all the vectors to be positive (i.e. successful), the value and direction of each individual vector needs to be positive and aligned.
This is where the People axis comes in, which we can define at a high-level as communication and collaboration. From here there are different use cases and applications based on the engineer’s level and expectations.
Early level
- Working with other engineers
- Meeting participation
- Contribute to team culture
- Contribute to recruitment
Senior level+
- Leadership / mentorship
- Working with all stakeholders
- Conflict resolution
- Knowledge sharing
As you might imagine, it is common to encounter challenges that are trivial from a technical standpoint, but have very high collaboration complexity. For example, maybe you are working on a feature that is completely dependent on infra owned by another team which has been having outages, so you need to work closely with that team. Or perhaps your team is composed of mostly entry-level engineers, which means your success is dependent on your ability to mentor everyone and delegate the right features to them. Or maybe your team has had high attrition recently, and now morale is down and you need to figure out what’s going on and how to address it.
Why the axes are important
"A problem well-stated is a problem half-solved." – Charles Kettering
Engineering, people, and organizations are each individually complex things. And when you throw all of them in the mix together, the complexity further increases to the point where it’s hard to know what’s working, what’s not working, and why.
I find the axes to be important because they provide clarity. In fact, I think they provide clarity across multiple dimensions.
Defining engineering value
What Docker did for software, I think the axes largely do for software engineers. And by that I mean defining a standard unit, in this case a unit of software engineering value.
When all is said and done at the end of each year, some projects are delivered and some are not, and some goals are reached while others aren’t. Then comes time to understand each engineer’s contributions to those projects and goals (aka, their Project Impact). Without a framework, it’s really hard to do this, and doing it wrong cuts multiple ways–at the individual level the cost is that engineers don’t get the recognition they deserve (which means morale goes down), and at the team or organization level the cost is not knowing what went right or wrong as a whole (which means the cycle probably continues).
From this perspective, the engineering axes simply work when it comes to defining engineering value and expectations at each role. If you can understand what type of complexity a given project or team has (engineering, direction, people), then you can increase its chances of success by assigning it to the right people based on their axis strengths. Similarly, if you are trying to reach a promotion, the axes (and corresponding expectations) give you clarity into what you need to achieve, which significantly increases your chances of success–you can know whether you are on track or not, and adjust accordingly.
Capturing value across time
Now that we are equipped with the tools to understand and measure engineering value, it becomes our obligation to capture that value across time: past, future, and present.
Past
One way to capture and have awareness of the value from the past is through reflection–this can be done informally or through a formal performance review at the end of each half. In my opinion, there are three key goals here:
- Awareness: Have awareness of all of the engineering effort (inputs) and value generated (outputs), broken down by each axis.
- Recognition: Give credit and recognition where it’s due–just the act of having a manager or teammate acknowledge one’s efforts and value has a strong morale boost, and inversely, not getting recognized has a demoralizing effect. Ideally the recognition is tied to career growth planning (which we’ll get to in a second).
- Planning: With awareness of what went well and which efforts had high ROI or not, the next step of capturing value from the past is to align and create an effective growth plan for both the short-term (aka the present), and the long-term (aka the future).
Future
I am discussing the future before the present because from my experience, when it comes to growth and delivering value, it is generally more effective to have an idea of what you’re setting out to achieve before you take the first steps.
On this note, you can maximize your value potential in the future by aligning your axis contributions with your level expectations, team goals, and personal career goals. There is a lot to unpack in the previous sentence, so I will use an example.
Let’s assume you are a senior engineer who is trying to get promoted to staff level (E5 → E6), and thanks to your most recent performance reflection, you are aware that you are performing strongly (E6-level) in all axes except Direction. In this scenario, you would now know to prioritize projects and initiatives that allow you to improve and demonstrate areas related to Direction (e.g. leadership, goal-setting, vision). From here, you can work with your manager and/or team lead to find projects that are aligned with these areas and that are also the highest-impact projects. At the end of all of this, you essentially have a blueprint for how to reach your personal goals while delivering maximum value–aka the recipe for success.
Well, at least on paper you have the recipe for success. Next comes the actual execution, aka the present.
Present
The axis-driven growth plan is great because it’s basically our best chance at predicting success. But nevertheless, it is still only low to medium fidelity, and many things will change week over week and month over month.
When it comes to maximizing our engineering value at any given time, aka the present, (which, again, is what we are being paid to do), we can use the combination of past (performance reflection), future (growth plan), and team goals (clarity on impact) as our reference points. From here we can do a quick pulse check to try to understand if we are on track for achieving what we have set out to do in the growth plan. When priorities and projects change–and they will change–we can use these reference points to understand how well-aligned a given new potential task is so that you can take on the most valuable and relevant projects.
To really maximize engineering value, the holy grail is identifying opportunities that take all of the above items into account, and that involve as many people (aka vectors) and their personal goals as possible. When you do this, even just for yourself, you become a 10x engineer that can autonomously generate net-positive value.
Key applications
So far, we have discussed a framework for breaking down engineering value into understandable concepts (the engineering axes), and how this framework allows us to maximize engineering value.
At this point, the next step would be to dive deeper into ways in which we can actually apply the engineering axes to capture that value. However, since each application warrants its own separate blog post (or set of blog posts), for now I will briefly introduce a few of them here.
Similar to how we break down derivation of engineering value into past, future, and present, we can think of axes applications in a lifecycle structure--in this case the lifecycle is that of engineers working at a given company.
Before joining
- Hiring (candidate vetting)
After joining
- Performance
- Growth planning
Hiring (candidate vetting)
As a company who cares deeply about maximizing human potential and opportunity, we at Scout AI are focused on redefining the interview process for engineers, so I will include some brief comments on the hiring use case here.
When it comes to interviewing, the ideal scenario is that engineering candidates are assessed using the same standard expectations as when they are part of the company. This helps ensure that you accurately measure the candidate’s ability to do the expected job at the expected level.
For example, if you’re hiring a senior engineer for a team that is working in an ambiguous space, then you will likely want to index more on certain axes and criteria, such as:
Engineering Excellence
- System Design
Direction
- Leadership
- Resourcefulness
- Dealing with ambiguity
Furthermore, to get an accurate reading on the axes, you would need to have a real-world scenario and problem statement that allows engineers to demonstrate their real-world engineering abilities. This is where standard algorithm-type questions fall short, as they sterilize and reduce real engineering problems into memorization and “fill in the function”.
To learn more about how Scout AI is helping companies hire 5x while leveraging the engineering axes to provide next-level candidate feedback, please visit our homepage: https://scoutnow.ai/
TLDR
The engineering axes allow us to break down engineering expectations and business impact into understandable concepts.
The engineering axes are:
- Project Impact: The net business impact from all of the engineering investments.
- Engineering Excellence: Technical productivity, quality, and problem solving.
- Direction: Ability to focus on the right things and drive efforts to completion.
- People: Ability to work with others to maximize collective success and value.
By having a framework to understand engineering value, we can measure and maximize value in both the short and long-term, from the individual level to the company level.
Here are a few examples of ways to apply the engineering axes to increase engineering output and growth:
- Interviewing: Assess candidates by the same expectations as they would have on the job to make accurate and objective hiring decisions.
- Individual performance and growth planning: Create effective growth plans based on past performance and future objectives.
- Team composition/delegation: Structure teams and delegate projects based on individual growth plans and business requirements.