An L3 has had significant professional experience developing complex software, and has a solid understanding of how reliable production software is built. They have moved past the stage of being solely focused on their own projects, and are in the early stages of taking a technical leadership role on their team.
An L3 produces high quality code with a high level of output. They can take on any project, work with stakeholders to specify and improve designs, generate time estimates to a reasonable degree of accuracy, and deliver results with a high degree of reliability. They take ownership of one or more significant areas of their team’s code base. They are able to work effectively with engineers and business partners, and support and enhance a high performance, respectful, kind culture on their team. In addition to delivering strong results on their own projects, an L3 takes responsibility for improving the quality and productivity of their team as a whole. They are focused on business results.
An L3 is familiar with teams in related business areas, and is comfortable working throughout the tech stack. They are familiar with and understand the design review process, know when projects need broader exposure, and are able to mentor more junior engineers through the process.
The following sections provide more details on expectations for an L3.
As a senior technical contributor, an L3 is expected to make a significant impact on their team’s success. Where more junior engineers focus mostly on their own tasks, L3s are responsible for the team’s productivity and quality, in addition to their own output.
L3s are expected to help identify, define, and work on tasks and projects that will make a meaningful business impact. This may include major initiatives, infrastructure, bug fixes, tooling, etc. No task is too big or too small - while L3s will frequently be working on more complex projects, they’ll also take on maintenance or operational tasks when necessary.
L3s are expected to understand their team’s high level business objectives, and how its projects fit into the big picture.
L3s are expected to demonstrate a high level of ownership and reliability. They should be able to complete projects with high quality and minimal oversight, communicate technical and schedule risk, and escalate appropriately when a project is unavoidably blocked.
L3s have broad knowledge of their team’s tech stack, and are responsible for one or more specific areas of code and/or functionality. They actively work to improve and maintain their areas of ownership, adding automated tests, expanding monitoring, performing code reviews, retiring tech debt, and protecting from breakage. Other engineers recognize their dedication and respect them as the rightful owners of their specific areas.
Ownership does not equal territorialism. Effective owners educate, advocate, document, code review, and support other engineers who are working in their areas. Their teams know that they can rely on them to watch over these areas, freeing other engineers to focus elsewhere.
When a crisis occurs in an area related to their team’s code base or feature set, L3s don’t watch from the sidelines or wait to be consulted - they jump in without prompting and help diagnose and fix the problem.
L3s are expected to deeply understand and enforce their team’s development process, including code reviews, manual and automated testing, coding standards, release process, documentation, etc. They are also expected to identify unmet needs and meaningful improvements, and to continually update the process within the context of existing priorities. Likewise, when following the process would lead to an undesirable result, they are expected to exercise their judgment, communicate their reasoning with stakeholders, and do the right thing.
An L3 is expected to model the company's cultural values, and help build and support a positive team environment.
L3s 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, 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.
At this level, engineers start to differentiate into future managers and tech leads. Although it’s possible to move back and forth between manager and individual contributor roles, at this stage it’s important to start exploring the different requirements, think deeply about your motivations, and start pushing yourself to take on more responsibilities in either the management or technical track.
-
Management
A technical manager remains technical while assuming management responsibilities to support the team. The most straightforward way to grow into a technical manager is to get exposed to management responsibilities while still an individual contributor: coaching junior engineers, writing team status reports, providing performance feedback, helping with hiring, etc.
-
Technical
Effective technical leaders are distinguished by deep technical and industry knowledge, a strategic mindset, and an ability to communicate with both technical and non-technical audiences. In order to develop your technical skills and strategic sense, you need to understand your gaps and look for opportunities to address them.
As engineers become more senior, they are expected to take the initiative, identify needs that aren’t being addressed, come up with solutions, and make them happen - in addition to assigned technical tasks. In many cases this involves taking ownership of a critical system, watching a team’s systems for bugs or performance issues, identifying areas of process friction or opportunities for automation, and creating or introducing new tooling. For engineers interested in a future management role, leadership can involve taking on more project and team management responsibilities.
- Staying in your lane. It’s easy to stay heads down on assigned projects, and to become a passive recipient of tasks. While completing assignments is a key requirement for not failing, it is not sufficient for success. L3s are expected to take the initiative, step out of their comfort zones, and look for opportunities to make an impact.
Next up: L4