We recently undertook a project to define professional development for members of Medium’s engineering team. As part of that, I wrote this document to describe the main features of our Growth Framework. It was originally published to Hatch, our internal version of Medium, on August 25, 2017. For more information about Medium’s practice of making internal documents public, see Hatching Inside Medium.
This is the actual document used by Medium to explain how we think about recognising growth, and has replaced the version on Hatch as the source of truth. If you take a job at Medium, this is the framework within which your career development will be assessed.
Medium’s Growth Framework is a little different from how many companies approach development, recognition and leveling. This document describes its structure and some of the reasoning behind it.
We are attempting to solve a number of problems with this framework, and avoid others that we recognised in other systems. At a high level, we are trying to achieve multiple goals:
Allowing engineers to develop in multiple ways, rather than artificially reducing them to “engineer” or “manager”.
Recognising that roles are not static, and that people will evolve over time.
Codifying what is expected of engineers.
Recognising contributions that are typically undervalued or ignored in traditional engineering ladders.
Providing multiple ways for people to be recognised for leading within the organisation.
Giving recognition and rewarding professional development.
Ensuring fair and equitable compensation.
Avoiding the development of a homogenous team, where everyone does the same kind of work.
Connecting hiring and progression to our company values, so we hire, incentivise, and reward what we value.
Overall, the main goal we are trying to achieve is helping engineers answer the question “How do I progress?”
We recognise that all engineers are different and that each applies a unique combination of skills in their work. We understand that there are many paths to a successful career, and support and encourage the growth of different shapes of engineers that together create a robust and flexible team. We know that there are particular kinds of work that is often overlooked, which is nevertheless very important.
To recognise these contributions, we define 16 tracks along which engineers are incentivised to develop and progress. Each of these tracks represents a discipline that adds value to the organization and helps Medium achieve its goals. These tracks are grouped into 4 categories:
Building Mobile, Web Client, Foundations, and Servers
Executing Project Management, Communication, Craft, and Initiative
Supporting Career Development, Org Design, Wellbeing, Accomplishment
Strengthening Mentorship, Evangelism, Recruiting, Community
Each category has a list of hiring indicators from the hiring rubric, which hint at the kind of qualities useful for progress along these tracks, but they are intended to be more informational than prescriptive.
Each track is weighted equally. We have deliberately tried to define tracks that add concrete value to the organisation, and hold appeal to all kinds of engineering personalities.
Engineers may attempt to progress down any combination of tracks, though realistically, they will only be able to focus on a few at a time, and organisational needs may mean that they are strongly encouraged to focus on certain areas.
Each track has 5 milestones, which get progressively harder to achieve. It is much harder, for example, to move from milestone 4 to milestone 5 than from milestone 1 to milestone 2. Track milestones typically range from simple individual contribution to major organisational impact. Each milestone is intended to be approximately as difficult to achieve as the same milestone in every other track for a motivated individual, assuming a start from scratch. Given the wide range of tracks, and people’s experience or natural capabilities, every engineer will find some tracks easier or harder than others.
Each milestone has a description, which provides a high-level overview of the milestone, and 6 example behaviours and tasks. These examples are descriptive, not prescriptive. They are designed to be read together with the milestone description to paint a picture of the kind of person we would expect to see at that milestone.
Each milestone achieved earns points. Because successive milestones are harder to achieve, they are worth more points. The chosen point progression slightly favours specialisation over generalisation. Organisationally, it is important that people develop and are rewarded for mastery of certain skills so we have the ability to innovate at the leading edge. However, we recognise that strong generalists provide great flexibility and are foundational to a robust and antifragile team.
Points at a given milestone replace points earned at an earlier milestone. For example, moving from milestone 3 to milestone 4 earns an additional 6 points, not an additional 12 points.
With 16 tracks, each having 5 milestones, there are a total of 320 points available. We do not expect anyone to come close to achieving that number.
Every point earned contributes to an engineer’s overall level. There are 5 overall levels, each divided into 3 sub levels. Successive levels require more points and are harder to achieve.
We may add more levels over time as we grow as an organisation. The highest level is currently defined at 135 points out of a possible 320, which gives us plenty of room to grow should it be necessary.
We care very much about fairness and recognising equal contribution with equal compensation.
Level-based salary and equity is the same for all engineers at the same overall level. There may be rare occasions where this is not the case due to external factors or exceptional extenuating circumstances, such as acquisitions.
Medium offers equity refreshes based on tenure, so it is not necessarily the case that everyone at the same overall level will have the same equity.
Medium may also offer one-time signing bonuses where there is a compelling business need, such as a role that is particularly hard to hire for, or where we need to incentivise someone to move their home. Taking this into account, annualised compensation may differ between people at the same level.
Although we reserve the right to retain this flexibility, we work very hard to ensure that people performing at the same level are compensated equally, regardless of gender, race, or any other unimportant factor.
Titles typically serve three purposes — helping people understand that they are progressing, vesting authority in those people who might not automatically receive it, and communicating an expected competency level to the outside world.
The first two needs are met by the level number itself, and so internally, to the extent that we refer to them at all, we will use the level numbers to communicate seniority and capability.
In standard industry parlance the 5 major levels are broadly comparable to Engineer I, Engineer II, Senior Engineer, Staff Engineer, and Principal Engineer, but externally the levels don’t mean much without context. Therefore, we allow people to choose a title from a restricted set at each overall level, for external use on their resume, bio, or LinkedIn profile. For example, an engineer focusing primarily on Supporting tracks at Level 3.3 might choose Engineering Manager, while an engineer focusing on Building tracks at the same overall level might choose Senior Engineer.