Senior 1 to Senior 2
The Senior 2 (S2) engineer exhibits leadership and influence well beyond themselves. This influence could be through tech leading, line managing, mentoring, or leading projects outside of their day-to-day work. Senior 2 engineers are good at seeing ill-defined or difficult projects through to completion. They are great at spotting issues and helping their team navigate them. Senior 2 engineers have a deep understanding and willingness to help others for a particular technology or product.
The competencies for Senior 1 to Senior 2 are outlined below. Before reviewing them, it is helpful to
review how to use these competencies.
Makes pragmatic decisions about technical trade-offs beyond their project, e.g.
- Can articulate why the overhead of using a third party system is worth it for their project
- Decides to invest time in building a dashboard for stakeholders to reduce the number of queries they make to the team
- Gathers relevant data to inform buy vs. build vs. blend discussions impacting their project
Considers the technical direction of their group or the wider department when coming up with technical solutions, e.g.
- Understands how their work feeds into their group's tech strategy
- Can articulate and justify the total cost of ownership of their technical solutions
- Follows their group's Engineering Principles when building technical solutions
Debugs and fixes complex bugs efficiently, e.g.
- Investigates a drop in organic traffic from google, makes educated investigations into various aspects of the end to end system, consulting other domain experts along the way and keeping stakeholders aware of progress.
- Investigates a discrepancy in reported ad traffic. Works with the ad ops team to narrow down scope of problem. Uses technical knowledge to consult logs for various systems. Identifies a fix and implements.
Finds technical problems outside of immediate team and identifies ways to improve them, e.g.
- Notices a lot of requests coming in to Ops Cops from Customer Support for an admin task that could be automated. Automates the task and works with the Customer Support team on how to use the new tool
- While debugging an issue, traces the bug back to a shared library. Creates a patch for the bug and makes sure it is released.
- Spots another team could benefit from using a security feature and helps them implement it
Translates difficult business requirements into technical designs with stakeholders
Has a deep understanding of, and helps others understand, a particular technology or product, e.g.
- Responds to questions on Slack about a particular technology or product
- Provides thoughtful and in-depth feedback on Pull Requests that fall into their area of expertise
Communicates complex technical concepts clearly and adapts that communication to the audience, e.g.
- Articulates to a product owner how one third-party technical solution is better than another
- Explains to a stakeholder how a technical incident in a system impacted the business
Leads hiring process for new Engineers. This could be all aspects or only part of the process., e.g.
- Is the lead interviewer on an interview panel
- Gathers feedback from the hiring panels and leads wash-up discussion on the candidate
- Is accountable for making sure engineers review CV's and tech tests in a timely manner
- Works to improve the quality of the interviews we conduct and the consistency of the code and CV reviews we do
Presents their team's work to others in the business, e.g.
- Speaks at the Technology All Hands
- Writes one-pagers to explain technical decisions
- Writes a blog post about an aspect of the team's work
Takes a stakeholder problem, investigates to understand it and proposes a solution
Tackles complex cross-team technical issues breaking them down into smaller bits and addressing them, e.g.
- Manages the roll out of a new shared tool to multiple code repositories, identifying what work needs to be done, and finding teams to do the work
- Finds a bug in a library that affects multiple teams, fixes the bug and works with teams to make sure everybody is able to upgrade
- Finds a manual process slowing down multiple teams and automates it
Is accountable for the delivery of the team (individually or jointly with other people), e.g.
- Helps delivery lead write progress reports
- Writes a monthly update newsletter for stakeholders about recent releases
- Grooms backlog to make sure issues are ready to be picked up
- Makes sure new features are announced to interested parties (e.g. publishing on the appropriate slack channel, sending a release email)
Identifies knowledge gaps within the team and gives training to address gaps, e.g.
- Notices that people are not using Git as powerfully as they could so delivers a workshop for engineers on how to use Git's more advanced features.
- Notices they are the only person that understands a particular area of the codebase, so writes and delivers a talk at a team meeting about that area.
Actively fosters of ensuring an inclusive team culture, e.g.
- Celebrates good work publicly and encourages the team to do the same
- Spots problems between team members and helps to resolve them
- Models inclusive behaviour to the rest of the team
Contributes to the personal development of more junior people, e.g.
- Pairs with more junior team members
- Mentors people
- Line manages people
- Writes blog posts
- Gives talks at meet-ups or conferences
Helps resolve disagreements healthily, e.g.
- Helps the team navigate disagreements over the best way to do things. Gets agreement and buy-in from engineers on a solution to a problem
- Encourages team members to speak freely in retrospectives
- Encourages team members to treat each other empathetically
Shapes roadmap or priorities (in collaboration with Product Owners if they work in a team with that role)