# πŸš€ Engineering Growth Framework v2

# Delivery

# Delivery - Engineer πŸ“¦

Level I

  • Delivers well-defined assigned tasks within the cadence of the team's sprint.
  • Understands the basics of agile delivery.
  • Plays a part in squad ceremonies.

Level II

  • Scopes and estimates their own small stories and deliver with some reliability.
  • Helps move the squad's goals forward by reviewing teammates PRs in a timely fashion.
  • Aware of any dependencies on work you are delivering.
  • Actively seeks out support if your own work is blocked to help maintain the velocity of the squad.

Level III

  • Works on larger features that contribute to moving the dial on the squad's goals.
  • Reliably scopes, estimates and deliver complex tasks.
  • Helps increase delivery by suggesting ways in which the squad can improve.
  • Feature led a small well-defined deliverable end to end.

Level IV

  • Works on complex feature sets, breaks them down into smaller pieces, in order to deliver value to the customer quicker.
  • Balances pace vs perfection. Considers the trade-offs between spending days making the code perfect, versus shipping something that works more quickly.
  • Identifies and helps others to resolves blockers, aiding delivery.
  • Has knowledge of and can encourage the team to embrace agile practices that might make the squad more effective.
  • Contributes and facilitates BAU tasks. For example, dependency management, security vulnerabilities, assisting external teams with technical queries.
  • Chases PR reviews to help unblock the squads' work.
  • Feature led a complex deliverable end-to-end.

Level V

  • Creates and shares new material to disseminate knowledge (e.g.: a blog, lunch and learn, documentation).
  • Delivers pieces of work that impact significantly on the squad's goals.
  • Regularly asked for input into the most complex PRs for their chapter.
  • Facilitates technical meetings and discussions involving the squad, collects actions, and chases/follows up on these.
  • Identifies and fixes immediate delivery challenges, such as unstable pipelines and development tooling.
  • Contributes towards initiatives that improve the output of the whole chapter.
  • Breaks down large features and epics into smaller pieces of work to enable others in the chapter to review pull requests more efficiently. Encourages others to do this too.

Level VI

  • Runs workshops / talks for things such as understanding core parts of our systems, processes, language features and more.
  • Seeks to gain knowledge otherwise not held within their chapter; and distributes gained knowledge through appropriate medium.
  • Identifies the next most impactful and important experiment / piece of work to deliver.
  • Identifies repeating BAU (business as usual) tasks and automates where appropriate. For example, dependency management, security vulnerabilities, assisting external teams with technical queries.
  • Understands deeply the problem-space they are working in, and solves hard problems and bugs that have previously evaded engineers.
  • Takes a long-term vision for their discipline/chapter and define building blocks to get there.
  • Leads initiatives that impact and improve the effectiveness of their relevant chapter or multiple squads.

Level VII

  • Seeks to gain knowledge otherwise not held within the company; and distributes gained knowledge through appropriate medium.
  • Focused on the highest impact, most critical, future-facing decisions and guidance, advancing us technically and affecting business success.
  • Bootstraps teams, able to context switch and jump between different squads to accelerate delivery.
  • Plans & executes large, complex pieces of work with interdependencies across teams and systems.
  • Influences company goals and strategy, identifying new business growth opportunities.
  • Can take a long-term vision for the whole engineering discipline and define building blocks to get there.

# Delivery - Staff Engineer πŸ“¦

Level VII

In addition to Delivery VII Engineer:

  • Dives deep into our most complex and critical technical problems and works on them until they’re resolved.
  • Has a view of what is happening technically across squads, identifying where problems arise and actively seeks to provide support.
  • Prototypes and spikes the most complex and high risk features or changes to reduce risk, increase our understanding, and inform estimates.
  • Able to articulate complex technical issues to any member of the team, and accurately explain the implications and business impact of the issue.
  • Highly aware, collaborative, empathetic and supportive, with the ability to context switch effectively and work in different team environments and squads where required.
  • Bootstraps teams, able to context switch and jump between different squads to accelerate delivery.

# Coding & Testing πŸ’»πŸ”¬

Level I

  • Learns to write correct code, following guidance and training materials.
  • Writes code with support from more senior engineers.
  • Responds to PR comments and makes the necessary changes.
  • Writes tests with adequate coverage with assistance of others.
  • Tries to debug issues with own code in order to understand why things don't work before asking for help.

Level II

  • Able to follow established design patterns and techniques.
  • Writes clean idiomatic code adhering to chapter coding standards.
  • Adds appropriate logging and monitoring needed to help with debugging.
  • Writes tests with adequate coverage, independently.

Level III

  • Owns the implementation of the solution to their assigned task.
  • Code is easy to understand, change, and maintain.
  • Proactively improves components, modules, services, systems, and codebases they encounter.
  • Adds domain specific metrics to help understand application performance.
  • Considers and tests edge-cases.
  • Spots opportunities to improve testing.
  • Chooses the right data structure for what they are trying to solve.

Level IV

  • Spots inefficient or incorrect uses of the language or bad patterns.
  • Implements changes within components, modules, services, systems, or codebases that require a deep level of domain knowledge.
  • Writes code that serves as an example for other engineers.
  • Applies appropriate testing methodologies when testing modules, services, systems, components.
  • Understands and implements the most appropriate forms of test coverage for different scenarios.

Level V

  • Makes major contributions to library code and core services, for example major refactoring that requires deep understanding of the systems.
  • Detailed knowledge of the core libraries or APIs for their primary language.
  • Considers the necessity of and acts on wider non-functional testing such as performance testing, application memory tuning, frontend profiling, pen testing.

Backend-specific

  • Implements distributed systems consisting of multiple interacting services, or reusable core modules that are consumable for different use cases.

Level VI

  • Go-to person for any queries about their language or area of the codebase.
  • Keeps up to date with the latest language versions and what they offer, applies this where appropriate.
  • Mentors the squad and chapter on best practices about their language, latest updates & versions, coding styles.
  • Addressing any bottlenecks in existing testing architecture.
  • Helps introduce new frameworks, languages, tools, drives adoption of them when suitable.
  • Breaks down the most complicated technical problems and solves them quickly and autonomously.
  • Drives the overall chapter's testing architecture to test complex flows. Uses non-functional testing tools.

Level VII

  • Contributes to external technologies or libraries that we depend on, such as opening issues, contributing to active discussions + issues, in the course of solving real business problems.
  • Can jump into others complex coding challenges and is able to quickly understand the context and offer solutions.
  • Makes improvements to the stability or performance of the entire platform.
  • Has a breadth of knowledge across a range of languages/technologies in different paradigms (e.g. Object-Oriented / Functional) and an ability to rapidly grasp the key concepts in ones which you are unfamiliar with.
  • Quickly embraces new languages and helps others understand them.

# Design & Architecture πŸ“

Level I

N/A

Level II

  • Understands the high-level architecture of what they are working on.

Level III

  • Designs and implements solutions within an application with the assistance of others.
  • Able to justify and explain aspects of their design decision, including the use of written proposals.
  • Comments on / contributes to system level design with the support of more senior engineers.
  • Contributes to discussions about trade-offs in solutions.

Level IV

  • Designs, documents, and implements reliable, testable and elegant solutions to problems.
  • Understands and utilises basic design principles (E.g. S.O.L.I.D) and/or design patterns.
  • Identifies multiple design options and the associated benefits and risks.
  • Able to describe the high-level architecture of the systems within their squad or chapter.
  • Rationalises the choice of technologies they have made.
  • Understands Attest's data model and relationships between components.

Level V

  • Designs complex systems that scale reliably, with minimal assistance.
  • Understands and accounts for current and future capacity requirements.
  • Makes changes that support scaling the number of people able to work on the codebase at the same time.
  • Inputs into the design of our architectural strategy and vision.
  • Has an overview of and understands third party data models, domain, and connecting relationships.

Level VI

  • Drives the technical strategy that influences the direction of the whole chapter.
  • Builds systems that scale reliably without intervention, considering trade-offs between things like scalability, efficiency and security.
  • Leads system level designs that serve as definitive examples for other engineers.

Level VII

  • Anticipates technical risks, communicates them properly to the relevant stakeholders, and makes architectural / design decisions to avoid / resolve them.

  • Builds on an architectural strategy and vision, which is transparent, collaborative, and develops buy in with the whole team.

  • Maintains a view of all the technologies we use across the estate and how they might evolve and to understand what impact that will have on the business.

  • Creates significant impact and drives design decisions, across multiple domains.

    Staff Engineer

    • Owns and drives the development of the technical roadmap and vision for the chapter, aligning with our product strategy.
    • Considers and balances short term goals alongside the overarching technical vision.
    • Prioritises technical investment items according to business needs, driving the most impactful items forwards.
    • Keeps track of, and assists with where needed, chapter work items that are being worked on by squads.
    • Deeply understands Attest commercial goals, aligns the technical efforts of the chapter, vision, and direction of the chapter accordingly.
    • Able to understand and work with others in non-technical disciplines with ease, understanding their goals, and using them to inform design decisions within Engineering.
    • Understands deeply our technical setup and systems, having the ability to accurately describe and explain it, to any level of granularity, to anyone.

# Debugging & Troubleshooting πŸ›πŸ”«

Level I

  • Debugs code within their assigned tasks with the assistance of others.

Level II

  • Able to troubleshoot and find the root cause of issues within code they've written themselves.
  • Fixes simple bugs.

Level III

  • Responds to support requests and helps troubleshoot them with the assistance of others.
  • Can effectively make use of the various tools available to help resolve incidents and troubleshoot applications.

Level IV

  • Identifies the root cause of problems and independently resolves them.
  • Learns from incidents and applies actions to mitigate repeat problems.
  • Considers commercial impact of incidents/bugs and their options of resolution.
  • Looks to get involved/shadow in helping to resolve difficult/high profile incidents where possible or learn about how they were resolved retrospectively in order to build their knowledge and troubleshooting skills.

Level V

  • Leads incident resolutions, and post mortems and disseminates learnings from them to wider audience.
  • Supports others within the squad with troubleshooting and problem solving.
  • Able to use their systems knowledge to trace an issue throughout the tech stack.
  • Debugs complex production issues at speed.

Level VI

  • Proactively engages in incidents they notice are ongoing, to move forward incident resolution or support other engineers.
  • Able to clearly communicate impact and resolution timelines while an incident is ongoing.
  • Mentors others on best incident resolution practices and share knowledge in this area.

Level VII

  • Contribute towards a culture of improvement around incident management.
  • Quickly identifies and resolves the most serious incidents.
  • Evangelises incident resolution techniques across engineering.
  • Proactively engages in improved monitoring and observability to avoid incidents in the first place.

# Documentation πŸ“œ

Level I

  • Knows where to access our Attest tech documentation and how to contribute to it.
  • Spends time familiarising themselves with the various guides and documents.

Level II

  • Improves relevant documentation where appropriate.

Level III

  • Adds and Improves documentation.

Level IV

  • Documents design choices, processes, proposals, business logic etc. clearly and succinctly so that others can quickly understand and make use of it.
  • Documents new libraries or tools with detailed information on API / usage / examples / relevant info.

Level V

  • Contributes to overall effectiveness by writing guides and best practices.
  • Maintains documentation on things they know the most.
  • Maintains coding style guides and similar documentation which seeks to standardise development practices.

Level VI

  • Helps define efficient and clear documentation practices within the department.
  • Encourages others to document within chapters where it would be useful for others.

Level VII

N/A

# Hiring & Reputation 🌟

Level I

N/A

Level II

  • Pairs with others in interviews.
  • Fills out hiring scorecards and promptly leave constructive feedback.
  • Understands the importance of recruitment activities and gets involved in them when they happen.

Level III

  • Participates in interviews at more than one stage of the hiring process and is well calibrated as to what a successful candidate looks like.
  • Can participate in non-engineering interviews.
  • Proactively participates in Attest hiring and reputational activities.

Level IV

  • Reviews candidate's tech tests and contributes conversation points for follow up interviews.
  • Leads interviews.
  • Suggests improvements or changes to the hiring process where appropriate.

Level V

  • Be a role model for best interviewing practices.
  • Can comfortably lead engineering and non-engineering interviews at any stage.
  • Raises the profile by engaging with external communities.
  • Understands the hiring space and its constraints, such as lead times for hires.

Level VI

  • Drives significant changes to the hiring process where appropriate to reflect the needs of the team.
  • Attracts or refers other senior hires.

Level VII

  • Has a significant impact across the external tech community and uses their presence to elevate the Attest brand.

# Developer Experience βš’

Level I

N/A

Level II

  • Understands and makes use of existing developer tooling to improve their own workflow (CI/CD, Linting etc).

Level III

  • Improves on existing developer tooling for the benefit of themselves or their team.
  • Improvements to tools and process changes are well communicated to the relevant parties.

Level IV

  • Builds or introduces developer tools for use by the rest of the team/chapter.
  • Develops infrastructure changes in a reproducible/programmatic way (e.g. reusable terraform modules, CI pipelines).

Level V

  • Coordinates complex deployments.
  • Builds reusable libraries and APIs that can easily be reused in a number of problem spaces.
  • Approaches improving developer experience from first principles and innovatively, with new ideas unconstrained by existing approaches.
  • Seeks to deeply understand the experience of being a developer with existing tooling, so as to act as a product owner for the engineers which rely on it.

Level VI

  • Identifies issues with, develops buy-in, and improves workflows for entire engineering teams.
  • Constantly researches and experiments for new and better approaches for all aspects of development tooling and workflows, and as a result is internally seen as a thought leader on the subject.

Level VII

  • Improves developer tooling not just for the company, but the developer community. e.g. open-sourcing tools or contribute to existing tools.

# Approach

# Communication πŸ’¬

Level I

  • Communicates well within your team/squad.
  • Gives updates in stand-up.
  • PR descriptions provide basic context.
  • Seeks guidance from other engineers.
  • Requests feedback from others.
  • Contributes to Retrospectives.
  • Gives full focus in meetings, free from distractions.

Level II

  • Listens to feedback and acts on it.
  • Gives constructive feedback to others when requested.
  • Suggests helpful and actionable improvements in code reviews.
  • PR descriptions contain rationale for significant decisions.
  • Able to demo and present their work to another individual (e.g. PM).
  • Stand-up updates are focused and concise.

Level III

  • Can have meaningful conversations with Attesters outside of your squad.
  • Well-articulated comments in squad ceremonies (such as Retrospectives) and suggests solutions where appropriate.
  • Able to demo and present their work to the squad.
  • Proactively gives feedback, both positive and constructive, to members of the squad and asks for it.

Level IV

  • Suggests improvements to work outside of their immediate remit.
  • Encourages a culture of feedback in the squad by regularly giving and asking for feedback, both positive and constructive.
  • Communicates to the relevant squads or chapters their design and technical decisions.

Level V

  • Proactively gives feedback 'upwards' and to people they interact with not in their squad.
  • Helps people in non-technical roles understand technical constraints and trade-offs.
  • Proactively helps others in squad with technical context and direction.
  • Communicates their area's work and mission to the whole squad/chapter.
  • Identifies and remedies communication gaps and conflicts between others.

Level VI

  • Transparent about feedback they have received and communicates actions resulting from that.
  • Secures buy-in from others and actively communicates implementation and design choices that span across the whole tech estate.
  • An effective and inspiring speaker or writer internally or externally.
  • Regularly talks to non-technical stakeholders with an appropriate level of abstraction.
  • Is a role-model for excellent communication.
  • Uses communication to drive change across the chapter or R&D.

Level VII

  • Comfortably communicates complex issues, and large pieces of work, to diverse audiences inside & outside the company.

# Leadership βš–οΈ

Level I

N/A

Level II

  • May support new starters by sharing context.

Level III

  • Support/train colleagues, for example via the use of pair programming.
  • Actively participate in code reviews, giving constructive feedback and guidance.
  • Onboard new engineers/team members.

Level IV

  • Suggests further learning opportunities for others when working together for example when pairing/reviewing code.
  • Drives changes to engineering practices with well-reasoned arguments.
  • Mentors' new engineers.
  • Finds way to spread learning across the chapter (gives internal talks, blogs, demos, documentation etc).

Level V

  • Suggests improvements for the squad to work more effectively.
  • Helps others understand and learn the thought process behind new or improved modules/libraries/services.
  • Encourages Attest engineering principles and practices to the squad.
  • Can take a long-term vision for improvements at Attest and define building blocks to get there.
  • Plays an active role in their relevant discipline's chapter.
  • Facilitates knowledge sharing activities e.g. workshops, lunch and learns, blog posts/design documents.

Level VI

  • Identifies missing knowledge gaps within teams - facilitates removing this missing gap through workshops, initiatives, code reviews and more.
  • Mentors other senior engineers and shares best practices.
  • Natural teacher, both formally and informally. Adapts style to the individual.
  • Is a role model for others.

Level VII

  • Leads initiatives that span multiple disciplines and can generate buy in across the whole organisation.

  • Levels up the entire team by identifying missing knowledge gaps across engineering - facilitates removing this missing gap through workshops, initiatives, code reviews and more.

  • Serves as a role-model for the most senior engineers.

  • Can articulate coaching and leadership best practices and shares knowledge on subject.

    Staff Engineer

    • Considers deeply the benefits of technical improvements vs. those aimed at providing new value to our customers, and makes clear and well reasoned judgements, bringing your colleagues with you through transparent communication.
    • Provides mentorship and sponsorship to other team members and helps advance and support those around them.
    • Makes space for other team members to benefit from your input, but not depend on your contributions.
    • Helps engineers be more productive by finding and fixing their issues, within the team/chapter/org.
    • Streamlines decision making by providing engineering perspective to problems that span teams which are both technical and non-technical in nature.
    • Highly commercially driven and literate, understands and works with others in non-technical disciplines with ease. Comfortable interpreting commercial strategy.
    • Advocates for approaches and changes across R&D that further the impact of the team as a whole.
    • Communicates with others across the business to collaborate and align on key topics and business strategy, to ensure our teams are always working toward shared goals.

# Accountability (previously Organisation & Self-Management) πŸ—’οΈ

Level I

  • Actively seeks out support when necessary.
  • Punctual and aware of calendar events and squad ceremonies.
  • Keeps HR systems and the squad up to date with upcoming WFH, time off, personal development and 10% time.
  • Books time off with appropriate notice.
  • Dedicates time to professional development and upskilling in relevant engineering and soft skills.

Level II

  • Keeps the squad up to date with the current progress of their assigned tickets.
  • Breaks down assigned work into achievable tasks.
  • Manages their workload and expectations to fit within their usual working hours.
  • Communicates early when agreed upon timescales look unlikely to be met.
  • Seeks out learning opportunities.

Level III

  • Prioritises own workload and personal development time against squad goals and company priorities.
  • Manages expectations in delivering work.
  • Effectively manages and prioritises more than one task.
  • Makes time to set out their personal development goals.

Level IV

  • Capable of putting own work back on track when behind.
  • Effectively manages multiple tracks of work at the same time and can prioritise effectively.
  • Identifies and takes into account dependencies on others when planning and executing own work.

Level V

  • A role model for effective organisation.
  • Prioritises and delegates to make best use of their time.
  • Makes judgements about when to diverge from the immediate goal to achieve something else.

Level VI

N/A

Level VII

N/A

# Commerciality 🏒

Level I

  • Understands at a high-level what Attest offers.
  • Has created and published a survey.

Level II

  • Understands and can explain the Attest mission and vision.
  • Can explain their squad's goals at a high-level.

Level III

  • Understands our business model and how our product operates.
  • Understands their own squad's goals and how the squad plans to achieve them.

Level IV

  • Understands in detail Attest's various products and features for example survey templates, question types, segmentations, demographics, panels, quotas and exclusive samples.
  • Has a broad overview of other parts of the business.
  • Understands how their squad's goals impact other squad's goals.

Level V

  • Has a good sense of how our customers use the platform, how they view it, how they react to new features and what problems they have with it.
  • Aware of Attest's competitors and what they provide.
  • Understands the basic concepts, common constraints and problems in the market research industry.

Level VI

  • Has enough context of the business landscape to contribute alongside Staff Engineers, Engineering Managers, Product Managers, and others in the business to help drive squad direction and goals.

Level VII

  • Can use their technical knowledge to help drive business goals for the whole of the company.

# Problem Solving πŸ€”

Level I

  • Approaches tasks by first identifying their constituent parts and breaking them down into smaller challenges.
  • Can find the balance between working independently and asking for help solving problems when stuck.

Level II

  • Is able to identify, articulate, and break down larger problems.
  • Is adaptable and has the ability to change if something is not working, can think of more than one solution to a problem.
  • Embraces failure as part of the learning process.

Level III

  • If a solution to a large problem is not immediately forthcoming, can go about independently discovering a solution in a structured way with minimal help.
  • Finds solutions independently and shares more widely, recognising that input from others can be useful at every stage.

Level IV

  • Always looks at the root cause of a problem rather than jumping to solutionising.
  • Is not tied to decisions/solutions.
  • Shares problems and their solutions with others to ensure learnings with peers.

Level V

  • Can solve large-scale or undefined problems that may affect the whole chapter.
  • Is able to synthesise information quickly and put forward the best solutions.
  • Considers edge cases.
  • Matches the right solution to a problem or objective given all constraints.
  • Is open minded and flexible in their own thinking and does what is right in a wider context.
  • Has strong opinions weakly held.

Level VI

  • Takes a strategic approach to identifying future problem areas and mitigates before they arise.
  • Challenges the status quo and has the attitude that anything can be improved.
  • Can tackle problems that affect the whole of R&D and come up with multiple effective solutions.
  • Persevering and recognising that the solutions to large scale problems can take a period of time to validate, doesn't give up quickly.

Level VII

  • Works on the hardest, largest and most ambiguous problems which affect the whole business and breaks down and solves them effectively - bringing others in when necessary.

Staff Engineer

  • Has a view of what is happening technically across squads, identifying where problems arise and actively seeks to provide support.
  • Prototypes and spikes the most complex and high risk features or changes to reduce risk, increase our understanding, and inform estimates.
  • Highly aware, collaborative, empathetic and supportive, with the ability to context switch effectively and work in different team environments and squads where required.
  • Bootstraps teams, able to context switch and jump between different squads to accelerate delivery.