E1: Engineer I

FOCUS:
Within Task

Role Expectations
Reliable & Robust Systems
  • Security
    Developing an understanding of the importance of security and some security considerations
  • Distributed Systems
    Developing an understanding of the application(s) they work on in the tech stack.
  • Reliability & Observability
    N/A (not applicable at this level)
Troubleshooting
  • Debugging
    Understands the basics of debugging and the tools used for it.
  • Incident Response
    Learning to detect when there is an incident vs what is a lower priority bug
Technical Design & Architecture
  • Understanding Code
    Gains context within team's domain with help from more senior engineers.
  • API Design
    Understands API interfaces for GraphQL and REST APIs. Understands different formats used in an API. Able to query and update data via an API.
  • Design Patterns
    Developing an understanding of different patterns used in the codebase
  • Software Architecture
    Aware of domain architecture and designs basic functions to avoid code duplication and interface-breaking changes.
Quality
  • Code Reviews
    Learning to create reasonable sized PRs with the description of changes and testing conducted. Can read through PRs and provides respectful comments in PRs. May need help breaking down PRs and iterating from PR suggestions.
  • User Centric
    Strives to deliver work with the end-users in mind and understands the value of tasks.
  • Testing
    Understands the testing pyramid, writes unit tests in accordance with it, with help from othes at times. Always tests expected edge cases and errors as well as the happy path.
  • Best Practice
    Approaches tasks with the view of following best practice. May need help from others on understanding which standards to follow.
Craft
  • Data Structures & Algorithms
    Developing an understanding of different data structures and when to use different structures. Developing a basic understanding of some algorithms that might be applied and complexity (e.g. looping through elements is O(n) complexity)
  • Writing Code
    Writes code with testability, readability, edge cases, and errors in mind.
  • Technical Expertise
    Starts with learning the basics of the tech stack required within tasks.
+ Show All Competencies + Hide Other Competencies
Examples
+ show examples - hide examples
  • Adds unit tests for work. Uses mocks for API responses
  • Implemented sticky footer component
  • Added new tables and fields to the database
  • Updated code to query data from GraphQL
  • Validated input fields for malicious content and strips tags from input entered
E2: Engineer II

FOCUS:
Within Epic

Role Expectations
Reliable & Robust Systems
  • Security
    Understands the importance of security. Utilizes this knowledge to ask for help on making decisions that may have security implications.
  • Distributed Systems
    Understands how the applications within their context integrate with eachother. Developing a deeper understandingof slices of the technology stack.
    Developing an understanding of different techniques required for parts of the tech stack, for example data consistency, async tasks and availability of applications
  • Reliability & Observability
    Is aware of the organisation's monitoring philosophy, developing skill with the monitoring tools and the metrics for their team's domain.
Troubleshooting
  • Debugging
    Uses a systematic approach to debug issues located within a single service.
  • Incident Response
    Uses a range of tools to detect when there is an incident and raises this with stakeholders in a timely manner. Takes ownership of incidents which fall in their domain. May be involved in the resolution of an incident.
Technical Design & Architecture
  • Understanding Code
    Understands a portion of the team's domain, can gain sufficient context to work productively in that portion.
  • API Design
    Understands different API interfaces and formats and creates APIs for consumption.
  • Understands some best practices when designing APIs and deepening this understanding. This can include response sizes, security, error handling, rate limiting, performance, REST & GraphQL best practices (pagination, batching & caching, authorisation, filters, interface design) sometimes with help from others.
  • Design Patterns
    Considers and understands how to apply applicable patterns within the context of the codebase. For example understanding pub-sub pattern or circuit breaker pattern for different scenarios that are applicable for work being undertaken. May seek help from others on which patterns to apply.
  • Software Architecture
    Designs functions considering how this fits into the overall architecture.
Quality
  • Code Reviews
    Creates reasonable sized PRs with a description of changes, testing conducted and impact of deployment
    Reviews PRs with the lens of quality and value - code quality, acceptance criteria, business logic, test coverage and aligned to architecture direction.
    Consistently provides constructive and respectful comments in PRs. Proactive in getting their PR resolved and reviewing other PRs.
  • User Centric
    Strives to deliver features with the end-users in mind, with a view of how the epic will bring value to end-users. Striving for ease of use for end-users (internal and external, including developers)
  • Testing
    Understands the testing pyramid, and writes unit tests as well as higher level tests in accordance with it. Always writes tests to handle expected edge cases and errors gracefully, as well as happy paths.
  • Best Practice
    Developing an understanding of standards to follow and aims for best practice being applied to work most of the time. References guides and known standards as well as seek assistance from others.
Craft
  • Data Structures & Algorithms
    Understands different data structures and when to use these. Has a general understanding of some algorithms that might be applied and associated complexity.
  • Writing Code
    Consistently writes functions that are easily testable, easily understood by other developers, and accounts for known edge cases and errors.
  • Technical Expertise
    Understands the basics of the tech stack, stretching knowledge into other areas within a chosen expertise. Is capable of configuration changes and deepening the understanding of chosen frameworks
+ Show All Competencies + Hide Other Competencies
Examples
+ show examples - hide examples
  • Prototyped a simple new feature quickly
  • Refactors code when possible - adding tests where they are missing, making code more testable and leaving code better than they found it
  • Requested tests for a PR or found missed cases when acting as a reviewer
  • Troubleshoots using different techniques such as: looking at logs, investigating kuberenetes pods, RabbitMQ queues etc
  • Added instructions in README on the new dev setup
  • Identified an issue in a PR where the ids and email addresses were used in a URL
E3: Senior
Engineer

FOCUS:
Within Team

Role Expectations
Reliable & Robust Systems
  • Security
    Approaches engineering work with a security lens. Actively looks for security vulnerabilities both in the code and when providing peer reviews.
  • Distributed Systems
    Has a holistic view on how the applications across more than one context integrate with eachother. Has an understanding of different slices of the technology stack and has a deep understanding of a few of these.
    Usually considers data consistency, availability and performance in production of features and applies the appropriate technique.
  • Reliability & Observability
    Is aware of the organisation's monitoring philosophy and skilled with the monitoring tools. Helps tune and change the monitoring on their team accordingly. Is aware of the operational data for their team's domain and uses it as a basis for suggesting stability and performance improvements.
Troubleshooting
  • Debugging
    Proficient at using systematic debugging to diagnose all issues located to a single service. Uses systematic debugging to diagnose cross service issues, sometimes with help from others.
  • Incident Response
    Adept at using a range of tools to detect when there is an incident and raises this with stakeholders in a timely manner. Takes ownership of incidents which fall in their domain. May be involved in the resolution of an incident or provide assistance to others on resolving incidents. Understands issues in their domain and across domains
Technical Design & Architecture
  • Understanding Code
    Understands their team's domain and can gather sufficient context to work productively within it. Has expertise in a portion of their team's domain.
  • API Design
    Consistently considers best practice when designing APIs
  • Design Patterns
    Consistently considers and applies applicable patterns across several contexts/codebases, in accordance to agreed best practices and standards.
  • Software Architecture
    Consistently designs code that fits with the overall architecture. Utilizes abstractions and code isolation effectively.
Quality
  • Code Reviews
    Consistently creates reasonable sized PRs that contain description of changes and testing conducted. Consistently provides and responds constructively and respectfully in comments in PRs. Often provides meaningful suggestions in PRs.
  • User Centric
    Reviews other PRs with the lens of quality and value - code quality, acceptance criteria, business logic, test coverage and aligned to overall architecture. Highlights any issues with a PR that might result in release/merge complications. Proactive in reviewing PRs in the team and resolving their open PRs in a timely manner.
  • Testing
    Delivers features with the end-users in mind, understands how the epics in the team's context brings value to end-users. Thinks of ease of use for end-users (internal and external, including developers)
    Understands their Engineering team's testing approach, and uses quality metrics to identify gaps. Works with their team to recommend solutions that are in accordance with accepted testing frameworks and the testing pyramid.
  • Best Practice
    Knows which standards to follow and aims for best practice being applied to work most of the time. Seeks and references guides and known standards as well as help others learn about best practice
Craft
  • Data Structures & Algorithms
    Understands different data structures and when to use different structures. Understands when algorithms that might be applied and associated complexity. Helps others build their understanding and when there is added complexity in an algorithm applied and suggests improvements
  • Writing Code
    Consistently writes production-ready code that is easily testable, easily understood by other developers, and accounts for edge cases and errors.
  • Technical Expertise
    Good understanding of the tech stack, continues to stretch knowledge into more complex areas within a chosen expertise. Assists others with learning
+ Show All Competencies + Hide Other Competencies
Examples
+ show examples - hide examples
  • Fixes complicated bugs outside of regular domain
  • Helped someone with troubleshooting and identifying a performance problem and resolved this quickly in production
  • Implements complex features with a large product surface area
  • Added instrumentation and tools to measure performance metrics
  • Designed and implemented integration with Third Party with considerations to load, security, error handling and other best practises
  • Created user manuals for a new feature
  • Ensured the GraphQL response for new queries and mutations did not leak sensitive data
E4: Development Lead

FOCUS:
Within Team and Stakeholders

Role Expectations
Reliable & Robust Systems
  • Security
    Actively works with the security experts in the team, as well as their own team, to refine their team's approach to security based on the organisation's security strategy. Fosters a security first mindset within their own team, and leads by example.
  • Distributed Systems
    Has a holistic view on how the applications integrate across a few contexts. Has an understanding of different slices of the technology stack and has a deep understanding of a few of these.
    Prompts the team to factor in data consistency, availability and performance in production of features.
  • Reliability & Observability
    Drives monitoring work on their team based on the organisation's monitoring philosophy. Is aware of the operational data for their team's domain and uses it as a basis for driving changes to the team's services to achieve stability and performance improvements.
Troubleshooting
  • Debugging
    Proficient at using systematic debugging to diagnose all issues within the scope of their domain.
  • Incident Response
    Adept at using a range of tools to detect when there is an incident and raises this with stakeholders in a timely manner. Takes ownership of incidents which fall in their domain and team. Leads the resolution of an incident or provide assistance to others on resolving incidents. Has the ability to understand issues in their domain and across domains
Technical Design & Architecture
  • Understanding Code
    Has expertise in their team's domain, including the breadth of services, how they interact, and data flows between systems. Understands adjacent domains and impact on their domain.
  • API Design
    Consistently considers best practice when designing APIs and ensures the work in the team meets these
  • Design Patterns
    Leads the team in applying applicable and relevant design patterns in the team's work and contexts, in accordance to agreed best practices and standards with pragmatism
  • Software Architecture
    Works with the team to ensure architecture and technical approaches are aligned to the broader engineering goals (e.g. scaling or validation mode, continuous deployment etc) and the architectural roadmap
Quality
  • Code Reviews
    Encourages the culture of quality code reviews within the team. Provides guidance on reviews conducted by others for others.
    Highlights any issues with a PR that might result in release/merge complications.
    Is highly aware of the team's dependencies and proactive in ensuring the team's PRs are reviewed in a timely manner.
  • User Centric
    Guides the team to deliver features with the end-users in mind and how the team's context will bring value to end-users. Thinks of ease of use for end-users (internal and external, including developers)
  • Testing
    Drives their team's testing approach, in accordance to Engineering testing strategy, always covering happy paths, variances in data, errors and known edge cases and uses quality metrics to identify gaps. Works with their team to recommend solutions that are in accordance with accepted testing frameworks and the testing pyramid.
  • Best Practice
    Guides the team on following standards and aims for best practice in the team's work. Seeks and references guides and known standards and coaches others on applying best practice in their work
Craft
  • Data Structures & Algorithms
    Understands different data structures and when to use these. Has a general understanding of some algorithms that might be applied and associated complexity.
  • Writing Code
    Consistently writes functions that are easily testable, easily understood by other developers, and accounts for known edge cases and errors.
  • Technical Expertise
    Understands the basics of the tech stack, stretching knowledge into other areas within a chosen expertise. Is capable of configuration changes and deepening the understanding of chosen framework
+ Show All Competencies + Hide Other Competencies
Examples
+ show examples - hide examples
  • Focuses the team on quality with regular reminders
  • Makes architectural decisions that align to the strategic vision
  • Set up monitoring to capture metrics, for the stability and maintability of a new feature in their domain in production
  • Designed a technical strategy for migration of legacy data considering implications where this data is used across systems
  • Designed complex project that covered a holistic technical solution which encompassed multiple systems and technologies
  • Ran a workshop demonstrating how to use a new tool
E5: Engineering Manager

FOCUS:
Across Several Teams

Role Expectations
Reliable & Robust Systems
  • Security
    Actively works with the security lead/team, as well as across several teams, to apply the organisation's security strategy. Fosters a security first mindset across those teams, leading by example.
  • Distributed Systems
    Has a holistic view on how the applications integrate across a few contexts. Has an understanding of different slices of the technology stack and has a deep understanding of a few of these.
    Drives the teams to factor in data consistency, availability and performance in production of features.
  • Reliability & Observability
    Fosters a culture of observability across several teams and helps them use operational data to improve stability and performance of their domains.
Troubleshooting
  • Debugging
    Proficient at using systematic debugging to diagnose all issues within a set of related domains.
  • Incident Response
    Adept at using a range of tools to detect when there is an incident and raises this with stakeholders in a timely manner.
    Takes ownership of incidents which fall in their teams.
    Leads the resolution of an incident or provide assistance to others on resolving incidents.
    Understands issues in their domain and across domains
Technical Design & Architecture
  • Understanding Code
    Has expertise in a set of related team's domains, including the breadth of services, how they interact, and data flows between systems.
  • API Design
    Consistently considers best practice when designing APIs and ensures the work across teams meets best practices
  • Design Patterns
    Works across the teams to foster a culture of applying applicable and relevant design patterns, in accordance needs of the company and guides several teams in anticipation of future use cases.
  • Software Architecture
    Works with teams to ensure architecture and technical approaches are aligned to the broader engineering goals (e.g. scaling or validation mode, continuous deployment etc)
    Contributes to and drives the architectural roadmap
    Guides the team on knowing when to invest in tech or focus on delivery (appropriate ROI over strategic horizons)
Quality
  • Code Reviews
    Encourages the culture of quality and timely code reviews across several teams, also encouraging teams to consider release/merge complications. Provides guidance on reviews conducted by others for others.
  • User Centric
    Guides across the team to deliver features with the end-users in mind, with a view of how the contexts will bring value to end-users. Champions the of ease of use for end-users (internal and external, including developers) e.g. via documentation, MVPs, maintainability, sharebacks, knowledge sharing.
  • Testing
    Understands and sets the testing approach of several teams, and uses quality metrics to identify gaps. Works with those teams to recommend solutions that are in accordance with accepted testing frameworks and the testing pyramid. Influences organisation wide testing strategy.
  • Best Practice
    Guides teams on following standards and aims for best practice across teams.
    Seeks and references guides and known standards, sets standards and guidelines and coaches others on applying best practice in their work.
    Drives accountability for reliability measures such as code coverage or defect rates
Craft
  • Data Structures & Algorithms
    Understands different data structures and when to use different structures. Understands when algorithms that might be applied and associated complexity. Helps others build their understanding and when there is added complexity in an algorithm applied and suggests improvements
  • Writing Code
    Guides teams to consistently write production-ready code that is easily testable, easily understood by other developers, and accounts for edge cases and errors.
  • Technical Expertise
    Leads across teams in growing their knowledge into more complex areas within a chosen expertise.
+ Show All Competencies + Hide Other Competencies
Examples
+ show examples - hide examples
  • Worked with teams to set a strategy for quality / best practices
  • Guides teams to consider cross dependencies in their projects
  • Facilitates or guides teams on technical design
  • Takes ownership of systems which noone owns or wants
E6: VP Engineering

FOCUS:
Across Organisation

Reliable & Robust Systems
  • Security
    Actively works with the security lead/team to set and refine organisation-wide security strategy. Fosters a security first mindset across the organisation. Drives security awareness and culture across the organisation.
  • Distributed Systems
    Has a holistic view on the applications in the organisation. Has an understanding of different slices of the technology stack. Drives engineering to factor in data consistency, availability and performance in production of features.
  • Reliability & Observability
    Fosters a culture of observability across the engineering organisation. Helps teams across the engineering organisation use operational data to improve stability and performance of their domains.
Troubleshooting
  • Debugging
    Coaches the engineering organisation on a debugging mindset, with a view of using the appropriate tool for specific needs
  • Incident Response
    Leads incident response across the engineering organisation as needed. Uses systematic debugging to diagnose issues across the organisation.
    Selects and procures tools and establishes processes to support the team in effective troubleshooting.
Technical Design & Architecture
  • Understanding Code
    Provides high-level architectural guidance and assists the team in aligning architecture to business imperatives.
  • API Design
    As noted in Engineering Manager
  • Design Patterns
    Works across the organisation to foster a culture of applying applicable and relevant design patterns, in accordance needs of the company and guides the teams in the organisation in anticipation of future use cases.
  • Software Architecture
    Works across the organisation to foster a culture of architecture that allows for iterative, autonomous development and future scaling. Guides teams in the organisation in anticipation of future use cases and helps them make design decisions that minimize the cost of future changes. Sets the direction of the architectural roadmap.
    Determines the Return-on-Investment for specific engineering initiatives and determines appropriate levels of investment for given strategic horizons.
    Establishes engineering strategic objectives that drive architecture and technical approach
Quality
  • Code Reviews
    Drives and sets the culture of quality and timely code reviews across the organisation, also encouraging teams to consider release/merge complications. Provides guidance on reviews conducted by others for others.
  • User Centric
    Champions and guides the engineering organisation understand and deliver to real user needs.
  • Testing
    Drives the organisational testing strategy, and uses quality metrics to identify gaps. Works with all teams to recommend solutions that are in accordance with accepted testing frameworks and the testing pyramid.
  • Best Practice
    Champions and guides teams on following standards and aims for best practice across the organisation.
Craft
  • Data Structures & Algorithms
    As noted in Engineering Manager
  • Writing Code
    As noted in Engineering Manager
  • Writing Code
    Leads the engineering organisation in growing their knowledge into more complex areas within a chosen expertise.
    Works to keep skills up-to-date to aid in decision making, coaching and facilitation.
    Has basic knowledge in a wide variety of technologies and skill-sets.
    Has deep expertise in a few specific areas.
+ Show All Competencies + Hide Other Competencies
Examples
+ show examples - hide examples
  • Defines policies for the engineering org that encourage quality work
  • Makes decisions that have positive, long term, wide ranging consequences