As we continue to learn, we are now on our third iteration of this process. Please see here for the latest update.
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 rationale for each assessment track. 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 the kinds of contributions we value, and has replaced the version on Hatch as the source of truth. If you take a job at Medium, these are the areas you can develop in that will contribute to your overall level.
Medium’s engineering growth framework defines 16 tracks for progression, grouped into 4 categories. This document defines the rationale for the selection of these tracks.
The track descriptions are read as being preceded by “An engineer pursuing the ____ track…”, e.g. An engineer pursuing the Mobile track develops expertise in native mobile platform engineering, such as iOS or Android.
Building software is at the core of any engineering organisation. These tracks are concerned with building expertise in the development of high quality production features and supporting infrastructure. We expect engineers to demonstrate empathy for their clients — whether users or colleagues — to understand complex and subtle problems thoroughly, and use their creativity and experience to design appropriate technical solutions.
Develops expertise in native mobile platform engineering, such as iOS or Android
Native apps allow us to provide better, more tailored experiences to users. To build those, we need engineers with expertise in iOS and Android, who can help us deliver feature parity across all the platforms we support, and build first class products that blend in seamlessly with platform conventions.
We need to provide our users with a modern, responsive web product that renders well across all major browsers. We need engineers with expertise in web client technologies to help us continue to build industry-leading technology like our editor and take advantage of new opportunities like AMP.
Develops expertise in foundational systems, such as deployments, pipelines, databases and machine learning
A strong infrastructure provides a solid and stable foundation on which to build great products. Organizational excellence here lets us deploy rapidly with confidence, and be robust to systems failure. Engineers with strong database or machine learning skills give us the ability to model and process data in ways that allow us to deliver great experiences to our users.
Develops expertise in server side engineering, using technologies such as Go, NodeJS, or Scala
Excellent clients are no use if they don’t have a fast and responsive server to communicate with. We need engineers that can help build efficient application services that respond quickly to requests, and provide clean interfaces that can be accessed from multiple different clients.
The best idea in the world is worthless without great execution. Delivering great software products in teams requires rallying people behind an idea, strong technical leadership throughout the project, a focus on quality, and excellent communication to keep everyone aligned.
Delivers well-scoped programs of work that meet their goals, on time, to budget, harmoniously
There is a limit to what people can achieve individually, and coordination of multiple people on a project is very important. We need people that can take large projects, break them down into achievable milestones, manage and delegate scope effectively, and ensure that deadlines are met.
Shares the right amount of information with the right people, at the right time, and listens effectively
Great communication is central to everything we do at Medium, and without it, most non-trivial efforts would fail. Whether discussing approaches, giving presentations, listening attentively, or managing stakeholders, excellent communication is a key skill. The ability to communicate an idea, and to understand communicated ideas is of critical importance to ensure a well-aligned, agile team.
Embodies and promotes practices to ensure excellent quality products and services
We want quality to be at the center of everything we do, and strive to create well-built products that provide a polished and intuitive user experience. We want engineers to take pride in their work and sweat the details. We need them to produce well-written, well-tested code that is easy to maintain, and easy to remove when no longer needed.
Challenges the status quo and effects positive organisational change outside of mandated work
We want engineers to take ownership of the product, focus on fixing issues when they see them, get the details right, and improve things as they go. We need people that effect change, champion new ideas, and work hard to move the company forward, even when there is organisational resistance.
We believe in a model of servant leadership that exists to develop team members, advocate for them, support their well being, and ensure an environment conducive to enabling effective work. Effective, formal people management is crucial to getting the most out of our team, building for the future, and providing stability during organisational change.
Provides strategic support to engineers to help them build the career they want
Personal and professional growth are very important to us, and to support this, we need our group leads to be aligned with group members on the importance of career development. We want our group leads to be intentionally working to support an engineer’s growth, whether by putting together career plans, finding new opportunities for them, or providing formal training.
Defines processes and structures that enables the strong growth and execution of a diverse eng organization
Too much structure and process can slow a team down, but too little can also be debilitating. As an organisation, we need to be continually focusing on how the team is executing, finding ways to do things faster and better, and ensuring that the appropriate systems are in place to foster a diverse and inclusive team.
Supports the emotional well-being of group members in difficult times, and celebrates their successes
The psychological safety of our team is of paramount importance. Individuals cannot take risks if they are afraid of the consequences of failure, and the ability to take risks is a significant part of innovation. We need our group leads to support the health and wellbeing of our people, ensure that they feel safe, help them work through interpersonal difficulties calmly, and promote a culture of empathy and self-awareness on the team.
Inspires day to day excellence, maximises potential and effectively resolves performance issues with compassion
We need leaders who can tactically unblock engineers who are struggling, and can work with them to understand, contextualise, and resolve root causes. We also need people who can resolve higher level organisational dysfunction when it occurs and get teams back on track.
Many engineers do other work outside their primary responsibilities which strengthen the team, but are often undervalued. We explicitly recognise the importance of these contributions, each of which are important to building the kind of team we want, even though they may not be celebrated as widely or as often as product releases.
Provides support to colleagues, spreads knowledge, and develops the team outside formal reporting structures
While Career Development is about formal planning, mentorship is equally important. We want to continue our culture of learning and teaching, and incentivise engineers to help develop each other, whether through internal posts, support groups, team presentations, programming curricula, or some other medium.
Promotes Medium to the outside world and establishes it as an attractive and thoughtful place to work
Medium devotes a lot of intentional thought to all its endeavours, whether our technical innovations, the cultural impact of our choices, or how we design our organisation. We strive to create a healthy, balanced, and mindful workplace, build exceptional products, and engage with the outside world in a responsible, inclusive way. We want our people to be communicating these efforts externally, representing Medium well, building partnerships with other organisations, and encouraging people to get to know us more.
Strengthens Medium’s team by bringing in excellent staff members
Recruiting is one of the most important things that we do as an organisation. We need engineers to bring candidates into the pipeline, think about how we build a diverse team that covers our blindspots, evaluate candidates purely on the criteria that we deem important, and ensure that we only bring in new people that believe in our company values.
Builds community internally, gives of themself to the team, and champions and extols company values
We are not trying to build a family, but we are trying to build a team where people trust and support each other, and work hard to build something together. We highly value those people who always pitch in to help, who do tedious refactoring for the good of the team, or who work to build a culture of collaboration, community, and togetherness.