Skip to content

Latest commit

 

History

History
52 lines (27 loc) · 5.73 KB

File metadata and controls

52 lines (27 loc) · 5.73 KB

L4

Overview

An L4 has had significant professional experience developing complex production-quality software. They have distinguished themselves by their focus on solving business problems, the quality of their work, strong communication skills, and collaboration with peers and business partners. In addition to their own projects, they also take responsibility for the output of their team as a whole.

Responsibilities

An L4 is a consistently strong, flexible, and reliable developer, taking performance, maintainability, and operational stability into account in all phases of the SDLC. They have excellent judgment and technical insight, and are trusted to make reasonable decisions in design and implementation, and during crises. They are able to lead the development of larger scale projects, including technical design, task decomposition, time estimation, implementation, risk management, and deployment. They are focused on business results.

An L4 has a broad understanding of the teams and code base throughout the company, and is viewed as a knowledgeable and helpful technical resource inside and outside their team.

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

Impact

L4s play a critical role in driving their team’s success. They are reliable, experienced, high output, high quality coders. They work with their business counterparts to help define, review, and improve specs. They have a good eye for over-engineered, brittle, and poorly structured code, have intimate knowledge of significant portions of their team’s area of the code base, and are highly effective and active code reviewers.

L4s are focused on business impact, operational stability, and team throughput. They actively identify inefficient tooling and processes, tech debt and technical risk - once identified, they take the next step and advocate for (or implement) improvements. They have sound technical judgment, understand the team’s business goals, and make good tradeoffs between time-to-market, doing things the “right way”, refactoring, test coverage, and so on.

Ownership

L4s are responsible for the quality, stability, and maintainability of the team’s code base, and the quality and output of their team’s engineers. They take responsibility for critical pieces of their teams’ infrastructure, and are active spec, design, and code reviewers. They triage bugs, answer questions, and mentor more junior engineers.

L4s are deeply familiar with their team’s operational infrastructure, help manage their team’s pager rotation, support failovers, develop runbooks for ops procedures, and work to automate their team’s operational setup. They are dependable in a crisis.

Process

L4s help to define and enforce coding standards, process, and design review guidelines. They are effective at getting things done in the larger organization using both formal processes and informal networks.

Culture

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

Communication

An L4 is 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, 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

At this level an engineer is developing more sophisticated coding and debugging skills, deepening their knowledge of languages, frameworks, and tools, and improving their technical judgment. In addition to honing technical skills, they're also learning how to prioritize tasks at the team level, communicate to different audiences, and improve project management skills. L4s take responsibility for the growth of junior members of their teams, leading book groups, giving tech talks, and putting more care into code and design reviews. As they are increasingly pulled in multiple directions, learning to manage time effectively is one of the most important competencies to develop.

Leadership

L4s are senior technical leaders, and are responsible for helping to create an environment of high productivity, quality, business focus, and psychological safety on their teams. In some cases, L4s may start taking on direct reports. At this level, engineers are expected to start thinking about project requirements and opportunities at a deeper level, and to help guide the team toward better business outcomes. Each L4 finds their own way(s) to do this, whether through training/mentoring, collaboration on spec creation and/or technical design, tech debt reduction, operational focus, etc. All L4s, however, are expected to act on their own initiative, bringing their specific sets of talents and interests to the team, with excellent judgment and a focus on business impact.

Anti-patterns

  • Fatal distraction. Given the massive volume of email, incoming questions, meetings, code reviews, etc., and the ownership / leadership requirements inherent in the role, it’s easy for an L4 to become overwhelmed, fail to complete projects on time, and ultimately end in a state of constant email triage, fire-fighting, support, and chasing urgent but low priority tasks.
  • Failure to balance team lead and coding responsibilities. Related to “Fatal Distraction”, team leads can become overwhelmed by leadership/mentoring responsibilities, to the point that they fail to complete meaningful technical work. Being able to balance a reduced - but still meaningful - technical load with leadership tasks is one of the key skills, and hard requirements, of this role.

Next up: L5