Skip to content

Latest commit

 

History

History
69 lines (36 loc) · 8.31 KB

File metadata and controls

69 lines (36 loc) · 8.31 KB

L5

Overview

An L5 is an engineer with extensive professional experience building production quality software, who has demonstrated leadership in the design and implementation of complex systems. They have distinguished themselves from peers by the quality of their work and the breadth and depth of their knowledge, and have taken a technical leadership role in the broader organization.

L5s are recognized leaders in each area of expertise in Engineering.

Responsibilities

An L5 is expected to own and deeply understand their team’s area of the code base, lead the most important initiatives, mentor junior engineers, and assist their manager in the technical leadership of their team. They maintain their team's operational infrastructure, and think strategically about their team's long-term needs and technical opportunities. They take part in strategic initiatives with cross-team impact, and own the success of the larger organization in addition to that of their team. They are focused on business results.

L5s typically take on either technical leadership or management roles. These roles aren’t mutually exclusive, and highly effective L5s are able to switch from one role to the other depending on their teams' needs.

The following sections provide more details on expectations for an L5.

Impact

As the senior technical members of their teams, L5s make a significant contribution to their teams' success. In addition to driving productivity and quality across their own teams, they are expected to think strategically, and architect with the larger organization in mind. For example, this includes the following:

  • Planning for the operational aspects of the team’s deliverables, including testing, deployment, monitoring, alerting, scaling, and risk management.
  • Making the right tradeoffs between loosely-coupled and monolithic architectures.
  • Thinking in terms of platforms that could as easily be used by other teams, sister sites, or partners - and dogfooding the feature set.

In addition to having a deep understanding of their own team’s code, L5s are expected to be familiar with the code bases of related teams, to look for common problems and opportunities, and to actively collaborate and share solutions. They are likewise expected to develop an informal network of contacts within the company. Collaboration, research, and conflict resolution are easier when people have worked together, and diversity of experience leads to a greater mental model of the engineering organization’s processes, strengths, and weaknesses. L5s are expected to have worked on multiple teams / business areas, and to seek out opportunities to do so if they haven’t.

L5s have a strong understanding of the business problems owned by their teams, which they use to help identify and work on the projects most critical to their team’s success, to assist in decision-making and prioritization, and to drive strategic initiatives.

L5s plan, design, and drive larger initiatives, including breaking long projects into discrete milestones, decomposing milestones into tasks, communicating the initial plan and ongoing status with stakeholders, and leading one or more engineers. At the same time, no task is too big or too small - while L5s will frequently be working on or leading more complex projects, they are expected to prioritize maintenance, bugs, or operational tasks when those are most important in supporting business goals.

L5s are expected to be able to balance their own significant coding work with support of other engineers and business partners. This is a hands-on coding role.

Ownership

At this level, engineers are expected to take ownership of major components of site infrastructure. They are recognized throughout the organization as owners of these components, and are responsible for the day-to-day maintenance, as well as the long term technical vision of their charges. This includes managing risks, developing a scaling plan, gathering metrics, creating and maintaining an appropriate level of monitoring and alerting, performing code reviews of related diffs, providing documentation and training, writing automated tests, and advocating for the needs of the technology.

L5s own the overall health of their team’s technology. This includes monitoring error logs, thinking strategically about future needs and direction, advocating for change when necessary and status quo when appropriate. They prioritize based on business value, risk, and opportunity cost, and communicate their conclusions effectively.

When an L5 takes on a responsibility, their manager and business partners can be absolutely confident that it will just be done. L5s are depended on for their judgment, reliability, and technical ability.

When a crisis occurs in an area they’re familiar with - on or off the team - L5s jump in without prompting to help diagnose and fix the problem.

Process

L5s deeply understand and enforce their team’s development process, including code reviews, manual and automated testing, coding standards, release process, compliance requirements, and so on. They identify unmet needs and meaningful improvements, and continually update the process within the context of existing priorities. Likewise, when following the process would lead to an undesirable result, they evaluate the situation, understand when to break the rules, and when to escalate.

Culture

An L5 is expected to exemplify the company's culture, be an active force for good, and a role model for all other employees.

Communication

L5s are expected to be able to communicate effectively, in writing and verbally, with both technical and non-technical colleagues. This includes writing design documents, risk assessments, post-mortems, project plans, and status reports. It also includes participating constructively in technical and cross-functional meetings, representing the needs of engineering, and working collaboratively to come to the right decision for the business.

Growth

L5s are responsible for driving the technology forward, mentoring, code reviews, and design. They have deep technical and industry knowledge, a broad knowledge of technologies and trends, and a strong drive toward continued learning. L5s are T-shaped, and while continuing to build out their skills as highly effective generalists, are also deeply knowledgeable about one or more specific technical areas. These might be specific to a technology or toolset (JVM tuning, garbage collection, iOS development, etc.), or related to a problem domain (machine learning, security, fraud detection, etc.). In addition to continuing to deepen and broaden their own knowledge, L5s are also responsible for driving learning throughout the organization. This could be through documentation, tech talks, mentoring, book groups, or guilds.

Leadership

L5s are the technical leaders of their team and organization. They are expected to introduce new - and retire old - technologies, processes, tooling, and approaches; to advocate for important technical shifts, to get to consensus, and to bring the organization along with them. L5s don’t wait to be told to take the initiative - their role is to take the lead, identify problems and opportunities, and use their specific expertise to create business value.

It’s common for an L5 to take on many of a technical manager’s responsibilities, without having formal responsibility for managing the team’s engineers. This is frequently a step on the path to becoming a technical manager, though it isn’t uncommon for a tech lead to temporarily take on this role while their manager is busy or on vacation, or on a long-term basis to help manage a larger team.

Anti-patterns

  • Complacency. It’s easy for an L5 to get caught up in the day-to-day of team activity, stop taking risks, and settle into a comfortable routine as the team’s technical silverback. L5s are expected to be ambitious and driven; to have a bias toward action; to take risks; to conceive of and drive strategic initiatives; to keep up to date with industry trends, to constantly be evaluating new technologies, and to always look for opportunities to move the engineering organization forward. L5 is not an emeritus role. L5s are expected to continue to develop their skills, challenge assumptions (theirs and others), and stay focused on the big picture - i.e., driving business results.

Next up: L6