Skip to content

About

The Guardian Engineering performance framework

Topics

Resources

Code of conduct

Stars

55 stars

Watchers

32 watching

Forks

Latest commit

 

History

107 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Engineering growth framework v1.0

This framework acts as a guide to what we expect from you in your role, and inspiration for areas for growth. It’s used formally every 6 months, during the end-of-year GNM-wide performance review process, and in the autumn for the Engineering mid-year review. It may also be used in-between as a reference point in 1:1s with your manager. Much like the software we write, this framework will never be perfect or finished.

Each role it is split into three categories:

  • People
  • Delivery
  • Initiative and Influence.

The framework sets out high level expectations and everyday behaviours for a role. You should aim to achieve most or all of the criteria for your current role. This will be the expectation for you to achieve the 'meets expectations' criteria during the end of year review. For 'exceeds' expectations we would expect you to also meet some of the criteria at the next level, except at Principal Level. For Principals: meets: most of the criteria, exceeds: all the criteria.

Promotions will be assessed on you achieving most or all of the criteria at your current level as well as achieving some criteria from the level above.

Every six months, at the end of Q2 and Q4, you and your manager will review your performance over the last two quarters using this framework.

Taking an active role in your performance gives you the best chance of receiving a fair assessment and of getting the most out of your manager as they support your growth.

FAQ

I’ve just started at my level, am I expected to meet all the criteria?

The criteria are indicative and your manager will consider the framework against how long you’ve been on your team, time at your current level and the opportunities available to you in your team context, together with any circumstances that are personal to you. For example, reduced hours or extended periods of leave.

I’ve spotted a criterion that is referenced in one level but not the next, does that mean it no longer applies?

No, generally the criteria build on each other. For example, you will be expected to give and act upon constructive feedback and participate in recruitment activities, when necessary, at Software Developer and above.

Roles

Individual Contributor

Engineering Management

See the following Indeed.com article for the difference between an 'Individual Contributor' and 'Engineering Management'.

Salary bands


Level 1: Associate Software Engineer (including Fellows)

An Associate Software Engineer is an early-career engineer focussed on learning, both self-directed and by learning from others around them. Associates demonstrate measurable progress in skills and confidence in independent delivery over time, and take responsibility for their own development with support of their manager. In general Associates should aim to meet the expectations at the Software Engineer level within 18-24 months.

People

  • Regularly identifies opportunities to work with members of their team.
  • Engages with departmental activities which uphold our departmental or engineering culture (e.g. hack days, accessibility champions, engineering meet-up etc).
  • Gives useful feedback to their colleagues with the support of their line manager.

Delivery

  • Initially delivers small tasks with support from other team members.
  • After six months, can deliver some small tasks independently, but may still require support during testing, debugging and releasing to production.
  • After 12 months (this may take longer for Fellows as they rotate teams quarterly during their first year), can demonstrate growth by delivering some medium-sized tasks independently with an appropriate plan for testing and releasing to production.
  • Takes on PR feedback and adjusts approach accordingly.
  • Reviews PRs with occasional helpful comments.
  • Seeks advice from more senior engineers when they are blocked, less frequently over time, and is able to demonstrate they attempted a solution independently.
  • Starts to develop interest in a more specific software development topic such as data privacy, accessibility, security, architecture, analytics, data modelling, CI/CD, developer experience etc.
  • Sometimes volunteers to investigate issues or bugs.

Initiative and Influence

  • Demos their work to the team or stream.
  • Seeks to understand why the task they are working on is valuable.
  • Focuses their learning and development plans to align with team goals.

Level 2: Software Engineer

A Software Engineer is a capable independent contributor who is able to tackle a variety of projects and tasks. They actively contribute to team planning and architectural discussions and are able to articulate trade-offs in decisions. They are developing some areas of technical expertise for which they are a go-to person in their team.

People

  • Regularly provides some mentoring or guidance to colleagues, taking the time to introduce or improve someone’s working awareness of a topic in a supportive and encouraging way.
  • Demonstrates inclusive behaviours towards their colleagues.
  • Supports with the recruitment process when the department is hiring.
  • Acts on constructive feedback.
  • Regularly gives useful feedback to colleagues.

Delivery

  • Capable of independent delivery of most tasks.
  • Breaks down larger pieces of work into smaller, deliverable tasks.
  • Delivers changes frequently, reliably and with consistent good quality.
  • Takes responsibility for their code from local testing to supporting it in production.
  • Produces clear documentation, including code comments, PR descriptions, handover documents etc.
  • Regularly reviews team PRs providing helpful comments (e.g. constructive criticism / alternative approaches).
  • Demonstrates an understanding of the team’s roadmap, goals and stakeholder expectations.
  • Helps to unblock their peers within their areas of expertise.
  • Develops some expertise in a more specific software development topic such as data privacy, accessibility, security, architecture, analytics, data modelling, CI/CD, developer experience etc.
  • Participates in incident response, for example by taking on resulting actions, if incidents occur.
  • Contributes to addressing the team’s tech debt and health backlog.

Initiative and Influence

  • Promotes their work beyond their team to the wider stakeholders, explaining the motivation and user impact.
  • Thinks outside the immediate task or sprint to identify edge cases, blockers, or risks and raises these with the team.
  • Keeps the end goal of their task in mind in order to prevent scope creep.
  • Provides input into architectural design choices.
  • Measures the impact of their work, after delivering to production, by monitoring relevant data and metrics.
  • Proposes new technical approaches where beneficial, for example to improve architecture or developer experience.
  • Actively participates in team retrospectives and other meetings to improve ways of working.

Level 3: Senior Software Engineer

A Senior Software Engineer takes on significant responsibility within a team, sometimes acting as team tech lead or leading on complex technical projects. They consider the long-term aims of the team and health of the estate and are starting to contribute to technical strategy. Their influence is felt across the engineering function - helping to level up other engineers’ technical skills or domain understanding, and working across team boundaries.

People

  • Mentors at least one more junior colleague, for example by being their buddy / helping to onboard.
  • Proactively engages in team retrospectives, by occasionally taking on and implementing resulting actions.
  • Consistently produces high quality documentation, PR descriptions, handover documents and other forms of communication.
  • Makes a positive contribution to the inclusivity, atmosphere or culture of the department, including during challenging situations.
  • Proactively offers interesting work to others in the team.
  • Provides feedback to more senior colleagues or engineering managers.

Delivery

  • Shows a high degree of autonomy and leads development on significant pieces of work for their team.
  • Helps define, scope and breakdown tasks where the problem may be ambiguous or not yet well-defined.
  • Actively participates in incident response, showing skills in isolating and remediating the problem and creating follow-up preventative actions.
  • Delivers reliably and with consistently good quality (e.g. well tested and readable code) which defines team standards.
  • Demonstrates consideration for performance, scalability, security, reliability, testability, observability and other non functional requirements depending on context.
  • Proactively engages in health work planning and delivery.
  • Proactively engages others in the team in delivery and does not work in isolation.
  • Monitors system and key product metrics throughout the delivery lifecycle, and acts on relevant indicators.

Initiative and Influence

  • Suggests innovative technical solutions to more complex problems.
  • Suggests and supports the implementation of process improvements.
  • Proactively participates in product and technical strategy planning.
  • Leads on technical architecture changes to address clear needs and engages the team in their implementation.
  • Upskills others outside their team with their technical expertise in certain areas.
  • Regularly involved in cross-team discussions to help facilitate collaboration or knowledge sharing.
  • Can represent the team in meetings with stakeholders, advising on timelines and tradeoffs and translating technical concepts.
  • Leads work with other teams to solve cross-team challenges.

Level 4: Staff Software Engineer

A Staff Software Engineer has deep technical knowledge in several areas and is sought out for their expertise across the engineering function. They actively contribute to team technical strategy and significant initiatives that cross team boundaries. Staff engineers play a proactive role in expanding the capabilities of the engineering function and incorporating learnings from the latest developments in the software industry.

People

  • Mentors at least one developer outside their team, and holds regular meetings with them.
  • Occasionally flags opportunities for other developers to them or their engineering managers.
  • Leads by example with the quality and consistency of their communication with stakeholders, product managers, designers, agile leads etc.
  • Embodies and promotes a culture of kindness, respect, patience and inclusivity.
  • Occasionally identifies and implements structural improvements, for example to knowledge sharing, communication or culture. Acts on delivering these improvements across the department through teaching, talks, writing, workshops or recruiting.

Delivery

  • Has significant technical and leadership experience across multiple teams and projects, acting as the backstop for technical decision making.
  • Uses their experience to lead large, strategic, complex engineering projects - often crossing team boundaries.
  • Is hands-on, regularly delivering complex pieces of work that define team standards.
  • Drives their team's technical decision-making, and ensures that decisions are documented.
  • Ensures the long term performance and maintainability of the team’s technical platforms and systems.
  • Regularly pairs with team members to unblock them or speed up their delivery.
  • Identifies delivery bottlenecks and addresses them.
  • Leads on addressing incidents, providing direction with calm and clarity, and initiates improvements that will avoid recurrence.
  • Provides realistic estimations, thoughtful scope management, and proactive risk identification in team meetings.
  • Uses data to drive their decision making and implements improvements for metrics and monitoring where needed.

Initiative and Influence

  • Drives and delivers significant architectural changes to critical systems.
  • Brings their team along with decisions, not relying on authority alone.
  • Is sought out for input in business-critical decisions, changes or developments.
  • Guides the team towards decommissioning redundant services and functionality.
  • Keeps abreast of industry developments in their areas of expertise and socialises this knowledge, ensuring new solutions are trialled where appropriate.
  • Shares learnings through workshops, courses, lectures or blogs - levelling-up the wider engineering function.
  • Advises, using data where relevant, on technical challenges and opportunities in conversations with Product Managers, sponsors and senior stakeholders.

Level 5: Principal Software Engineer

A Principal Software Engineer is a deeply experienced engineer who leads across multiple teams through influence, trust and respect. They develop and lead initiatives that form part of a longer term technical strategy for these teams, acting to surface and solve problems, reduce duplicated effort and ensure coherence. Along with engineering management they take responsibility for expanding the capabilities of the engineering function and incorporating learnings from the latest developments in the software industry.

People

  • Mentors at least one senior or staff developer, and holds regular meetings with them.
  • Works with other Principal Engineers across the department to ensure their individual stream strategies align, and that common issues are resolved department-wide and not stream-by-stream.
  • Shares knowledge across the department through technical presentations, writing, pairing with colleagues, and other appropriate mechanisms.
  • Collaborates with engineering managers, advising on team make-up, ways-of-working and highlighting any undesirable patterns.

Delivery

  • Has sight over and provides technical guidance to multiple development teams and is able to articulate the impact of their contribution.
  • Contributes to technical decisions and delivers architectural changes that result in demonstrable performance increases or cost reductions for those systems.
  • Helps to investigate complex technical issues and provides guidance for other developers when dealing with an incident.
  • Helps define and review Service Level Objectives (SLOs) for their teams, contributing to their backlog prioritisation strategies to match them.
  • Leads, or supports Heads of Engineering with, evaluation of new technologies and vendors, establishing key technical criteria for assessment, performing these assessments, and summarising clearly the benefits and drawbacks.
  • Ensures metrics for products and projects under their remit align with business priorities and goals.
  • Drives discussions around evolving best practice for established technologies and the evaluation of emerging technologies across the department and documents these guidelines.

Initiative and Influence

  • Seeks out systemic problems and opportunities, and presents proposals to Engineering Managers or Heads of Engineering on how to remediate or benefit from them.
  • Trials innovative technical solutions to significant departmental challenges, and documents their outcome appropriately.
  • Plays a significant role in defining long-term technical direction of the stream aligned with product and business strategy, and ensures the work is carried out to implement it.
  • Drives change when they observe behaviours or ways of working contrary to our culture or values.

About

The Guardian Engineering performance framework

Topics

Resources

Code of conduct

Stars

55 stars

Watchers

32 watching

Forks

Contributors