├── README.md ├── product.md ├── team.md └── tech.md /README.md: -------------------------------------------------------------------------------- 1 | # Competency & Skill Matrix 2 | 3 | ## Why 4 | 5 | In order to foster skill growth and guide team members to improve themselves and others, we document a set of core skills & competencies that each team member needs to have or achieve in order to be effective. 6 | 7 | ## What 8 | 9 | The skills are broken down into three categories, and separated by seniority level _(Junior, Intermediate, Senior, Architect, Manager)_: 10 | 11 | - [Technical Health](./tech.md) 12 | - [Product Health](./product.md) 13 | - [Team Health](./team.md) 14 | 15 | ## How 16 | 17 | As part of quarterly reviews, the team's manager will collaborate with each member, and provide **score & feedback** on what's working, what's not, and where to focus next. 18 | -------------------------------------------------------------------------------- /product.md: -------------------------------------------------------------------------------- 1 | # Product Health Competency 2 | 3 | > **Note:** Skills & responsibilities cascade upwards in seniority, e.g. a _Senior_ is expected to have all the responsibilities of _Intermediate_ & _Junior_, a _Manager_ is expected to have & do everything listed. 4 | 5 | ## Software Development Lifecycle 6 | 7 | #### Junior 8 | 9 | > Participates and developing an understanding on Scrum and the importance and purpose of cadences of the methodology. 10 | 11 | > Understands how the flow of work gets delivered to production. 12 | 13 | #### Intermediate 14 | 15 | > Actively participates and understands Scrum, understands the importance and purpose of cadences of the methodology, developing a point of view on a good software delivery process. 16 | 17 | > Understands how the flow of work gets delivered to production, acts to improve the delivery process. 18 | 19 | > Considers how the feature will be deployed with minimal disruption to production and how the feature will be monitored. 20 | 21 | #### Senior 22 | 23 | > Motivates the team on Scrum process, understands the importance and purpose of the methodology, has a clear point of view on a good software delivery process and employs methods to refine and improve. 24 | 25 | > Understands how the flow of work gets delivered to production, promotes improvements to the delivery process. 26 | 27 | > Considers and prompts the team to consider how the feature will be deployed with minimal disruption to production and how the feature will be monitored. 28 | 29 | #### Manager 30 | 31 | > Understands how the flow of work gets delivered to production, promotes improvements to the delivery process. 32 | 33 | > Ensures that the team has taken ownership of each of the necessary tasks in the deployment and monitoring of the feature so that there are no gaps or duplicated effort. 34 | 35 | #### Architect 36 | 37 | > Ensures that the overall design, requirements, delivery and QA process are clearly defined and understood by the team members before the development effort starts. 38 | 39 | > Help unblock the development and product teams with blockers pre and during the software development lifecycle. 40 | 41 | ## Reliability & Accountability 42 | 43 | #### Junior 44 | 45 | > Able to contribute to planned sprint work with guidance. 46 | 47 | > Has daily conversation with the team about the progress of their work. 48 | 49 | > Delivers on commitments with a sense of urgency and cares about the value of what they are working on and impact on the business. 50 | 51 | #### Intermediate 52 | 53 | > Ensures their commitments are realistic, understands their priority and urgency, and delivers upon them accordingly. 54 | 55 | > Anticipates and communicates blockers, delays, and cost ballooning for their work before they require escalation. 56 | 57 | > Cares about the value of what the team is working on and impact on the business. 58 | 59 | > Ensures expectations within their team are clarified between all parties involved. 60 | 61 | #### Senior 62 | 63 | > Anticipates and communicates blockers, delays, and cost ballooning within their team’s projects, before they require escalation. 64 | 65 | > Cares about the value of what the team is working on and impact on the business. 66 | 67 | > Rallies and motivates the team on the team goals and commitments. 68 | 69 | #### Manager 70 | 71 | > Responsible for what the team is working on and communicates its impact on the business. 72 | 73 | > Ensures expectations with their team and external stakeholders are clarified between all parties involved. 74 | 75 | > Facilitates escalations with outside stakeholders. 76 | 77 | > Helps each member of the team to be accountable by holding regular 1-1s to review commitments and progress. 78 | 79 | #### Architect 80 | 81 | > Cares about the value of what the team is working on and impact on the business. 82 | 83 | > Works with PMs to resolve blockers, delays, and cost ballooning within projects. 84 | 85 | > Communicate with developers and managers to ensure alignment with the architected solution. 86 | 87 | > Ensures decisions made are sound and within the scope of the overall architecture, to reduce long term mistakes, and unnecessary developer hours required to revert the decision. 88 | 89 | ## Technical Planning 90 | 91 | #### Junior 92 | 93 | > Able to contribute to planning and estimation with guidance. 94 | 95 | > Works on prioritised tasks first and with a bias to action. 96 | 97 | > Understands value of rightsizing and breaking down tasks to enable continuous integration and incremental delivery. 98 | 99 | > Developing an understanding of weighing cost and value in decision making. 100 | 101 | #### Intermediate 102 | 103 | > Reviews tasks critically and ensures they’re appropriately sized for continuous integration and incremental delivery, and weighs cost and value in order to take the most pragmatic action. 104 | 105 | > Uses this thinking in their own work, and to make suggestions to teammates. 106 | 107 | > Ensures tasks are prioritised correctly, dependencies are noted early and frontloads these items as part of prioritsation. 108 | 109 | #### Senior 110 | 111 | > Reviews epics and projects critically and ensures they’re appropriately broken down and prioritised, and well understood by the team. 112 | 113 | > Ensures dependencies are identified early and well understood by the team, at both the task and epic level. 114 | 115 | #### Manager 116 | 117 | > Works within their team to foster a culture of priority setting and urgency in alignment with organisational strategy. 118 | 119 | > Proactively works with external stakeholders on expectation management of timelines and priorities. 120 | 121 | > Owns the tradeoffs made in planning with respect to priority, cost, and value. 122 | 123 | #### Architect 124 | 125 | > Reviews epics and projects critically and ensures they’re appropriately broken down and prioritised, and well understood by the team. 126 | 127 | > Ensures dependencies are identified early and well understood by the team, at both the task and epic level. 128 | 129 | > Leads or aids in documentation of any new technical implementations via architecture reviews. 130 | 131 | > Leads reviews, critiques and suggestions of architecture reviews for technical implementations. 132 | 133 | > Ensure new technical implementations are within the scope of the overall organization architecture decisions and patterns. 134 | 135 | > Ensure issues and technical debts are created and triaged in Jira 136 | 137 | ## Dealing with Ambiguity 138 | 139 | #### Junior 140 | 141 | > Works to clarify ambiguity in tasks and asks questions for clarification. 142 | 143 | > Works on defining and handling risks with help from others. 144 | 145 | #### Intermediate 146 | 147 | > Handles risk, change, and uncertainty within their personal scope of work effectively. 148 | 149 | > Takes initiative to clarify ambiguity in a project and communicates risk early and offers possible solutions. 150 | 151 | > Decides and acts responsibly without having the total picture and when in high pressure situations, assisting others and communicating early. 152 | 153 | #### Senior 154 | 155 | > Effectively handles risk, change, and uncertainty within their team. 156 | 157 | > Takes initiative to guide and clarify ambiguity and frontloads risks. 158 | 159 | > Decides and acts responsibly in their work with their team without having the total picture, as well as when in high pressure situations, assisting others and communicating early. 160 | 161 | #### Manager 162 | 163 | > Facilitates communication with external stakeholders where necessary to disambiguate. 164 | 165 | > Helps each member of the team to manage ambiguity by holding regular 1-1s to discuss scope, change, and risk. 166 | 167 | #### Architect 168 | 169 | > Effectively handles risk, change, and uncertainty within their team. 170 | 171 | > Takes initiative to guide and clarify ambiguity and frontloads risks. 172 | 173 | > Requires full knowledge of own area of functional responsibility. 174 | 175 | > Acts as an advisor to team/stakeholders to meet schedules and/or resolve technical problems. 176 | 177 | > Works on issues where analysis of situation or data requires review of relevant factors. 178 | 179 | > Exercises final judgement within defined procedures and/or policies to determine appropriate action and/or implementation. 180 | -------------------------------------------------------------------------------- /team.md: -------------------------------------------------------------------------------- 1 | # Team Health Competency 2 | 3 | > **Note:** Skills & responsibilities cascade upwards in seniority, e.g. a _Senior_ is expected to have all the responsibilities of _Intermediate_ & _Junior_, a _Manager_ is expected to have & do everything listed. 4 | 5 | ## Communication 6 | 7 | ### Feedback 8 | 9 | #### Junior 10 | 11 | > Actively seeks feedback through pull requests and pairing, and uses feedback from others as a tool for growth. 12 | 13 | #### Intermediate 14 | 15 | > Actively seeks feedback through pull requests and pairing, seeking from relevant domain experts. 16 | 17 | > Provides constructive, respectful feedback to other developers through PRs and pairing, uses feedback from others as a tool for growth and actively follows up on feedback given. 18 | 19 | #### Senior 20 | 21 | > Seeks feedback within their team, relevant domain experts and with business stakeholders 22 | 23 | #### Manager 24 | 25 | > Works within their team, relevant domain experts and with business stakeholders to foster a culture of seeking out feedback and using it as a tool for growth. 26 | 27 | > Owns team feedback; regularly gives constructive feedback to all team members. 28 | 29 | > Responsible for diseminating feedback coming from outside of the team. 30 | 31 | #### Architect 32 | 33 | > Works within the development team, relevant domain experts and with its business stakeholders to foster feedback and using it as a tool for growth. 34 | 35 | > Interacts regularly with team and or peer groups in an indirect relationship. Interaction normally involves exchange or presentation of factual information or expertise. 36 | 37 | ### Knowledge Sharing 38 | 39 | #### Junior 40 | 41 | > Understands their area of work. Aims to share knowledge of their work and areas they have worked in frequently. 42 | 43 | > Techniques can include presenting at demos, documentation, thorough descriptions in PRs, comments in tickets and contributions to the README 44 | 45 | #### Intermediate 46 | 47 | > Understands their team's work domain. Frequently and actively shares knowledge of their work and areas they have worked in. 48 | > Watches for opportunities to share knowledge. 49 | 50 | > Techniques can include pairing, announcing new changes to the team, speaking about a topic, presenting at demos, documention, thorough descriptions in PRs, comments in tickets and contributions to the README 51 | 52 | #### Senior 53 | 54 | > Owns documentation and knowledge sharing within their team 55 | 56 | #### Manager 57 | 58 | > Fosters a culture of documentation and knowledge sharing within their team, other teams and with their team's business stakeholders. 59 | 60 | > Makes sure that knowledge sharing tasks are appropriately distributed across the team. 61 | 62 | > Is aware of where knowledge lives and where there are gaps in the team, and works to spread out knowledge. 63 | 64 | #### Architect 65 | 66 | > Fosters a culture of documentation and knowledge sharing within their team, other teams and with their team's business stakeholders. 67 | 68 | > Works with technical managers to ensure new knowledge is disseminate among all team members. 69 | 70 | > Hold knowledge sharing sessions via demos and wiki entries on organization wide tools, practices, and processes. 71 | 72 | > Owns and curates the engineering wiki by adding new entries, or asks the development team to provide feedback to practices and toolings. 73 | 74 | ### Effective Communication 75 | 76 | #### Junior 77 | 78 | > Communicates effectively, clearly, concisely and in an audience-oriented way, in written and verbal form. 79 | 80 | > Communicates progress of work, escalates issues, rubber-ducks approaches to their work with a team member, and asks for help where needed. 81 | 82 | > Actively listens to others and ensures they are understood. Asks questions for clarification. Pays attention to nonverbal communication. 83 | 84 | #### Intermediate 85 | 86 | > Communicates effectively, clearly, concisely in written and verbal form both technical and non technical subjects, and in an audience-oriented way. 87 | 88 | > Communicates progress of work, escalates issues early and reaches out to a diverse set of people to get other perspectives on a complex design. 89 | 90 | > Demonstrates how to effectively communicate an idea, proposal, decision or counterpoint. 91 | 92 | > Offers solutions to problems rather than just communicating a problem. 93 | 94 | > Actively listens to others and ensures they are understood. 95 | 96 | > Asks thoughtful and considered questions in a respectful way. Pays attention to nonverbal communication. 97 | 98 | #### Senior 99 | 100 | > Is able to communicate effectively with a diverse team. 101 | 102 | > Asks thoughtful and considered questions in a respectful way and ensures their team demonstrates this. 103 | 104 | > Communicates status, project updates and relevant sharing of information across interested groups. 105 | 106 | > Takes the lead on driving conversations within the team to navigate complicated technical problems. 107 | 108 | > Actively demonstrates these behaviours. Pays attention to nonverbal communication. 109 | 110 | #### Manager 111 | 112 | > Fosters a culture of clear, concise, effective, audience-oriented communication on their team, ensuring teammates actively listen to others and are understood. 113 | 114 | > Responsible for communication into and outside of the team. 115 | 116 | > Helps the team improve their communication by delivering feedback and setting goals in 1-1s. 117 | 118 | #### Architect 119 | 120 | > Is able to communicate effectively with a diverse team. 121 | 122 | > Fosters a culture of clear, concise, effective, audience-oriented communication on their team. 123 | 124 | > Asks thoughtful and considered questions in a respectful way and encourages their team to demonstrate this. 125 | 126 | > Communicates status, project updates and relevant sharing of information across interested groups. 127 | 128 | > Works within their team, relevant domain experts and with its business stakeholders to foster feedback and using it as a tool for growth. 129 | 130 | ## Teamwork 131 | 132 | #### Junior 133 | 134 | > Helps their teammates when requested, volunteers themself for team tasks. Gives or shares credit where due. 135 | 136 | > Actively demonstrates a positive attitude, learns from mistakes and does not place blame on others. 137 | 138 | #### Intermediate 139 | 140 | > Helps their teammates overcome obstacles, resolve blockers, and complete work tasks without impacting their own work. 141 | 142 | > Aware of team's progress and reaches out to teammates if they notice someone has been stuck for a while. 143 | 144 | > Gives or shares credit where due. 145 | 146 | > Actively demonstrates a positive attitude, takes responsibility for mistakes and does not place blame on others 147 | 148 | #### Senior 149 | 150 | > Consistently helps their teammates overcome obstacles, resolve blockers, and complete work tasks. 151 | 152 | > Aware of team's progress and unblocks members of the team. 153 | 154 | > Gives or shares credit where due. Actively demonstrates a positive attitude, does not place blame on others, assumes responsibility for mistakes, leads resolution and ensures the team follow this example. 155 | 156 | #### Manager 157 | 158 | > Facilitates teamwork by ensuring all members are assigned appropriate tasks. 159 | 160 | #### Architect 161 | 162 | > Be open and available to help managers and teammates to overcome obstacles, resolve blockers, and complete work tasks. 163 | 164 | > Aware of team's progress and unblocks members of the team where possible. 165 | 166 | ## Community 167 | 168 | #### Junior 169 | 170 | > Works to build strong relationships with their teammates and manager and works to contribute positively to company culture. 171 | 172 | #### Intermediate 173 | 174 | > Works to build strong relationships with their teammates, manager, as well as their teams' relevant business stakeholders. 175 | 176 | > Contributes positively to company culture. 177 | 178 | > Builds connectedness, and takes actions to promote an inclusive culture. 179 | 180 | #### Senior 181 | 182 | > Works to build and improve strong relationships with their teammates, manager, their teams' relevant business stakeholders, and senior engineers across the organisation. 183 | 184 | > Leverages relationships to better plan for and position their team. 185 | 186 | > Contributes positively to company culture. 187 | 188 | #### Manager 189 | 190 | > Works to help improve team's communication skills with regular 1-1s. 191 | 192 | > Actively promotes an inclusive culture. 193 | 194 | > Responsible of improving team relatedness, and helps build a culture of lending support 195 | 196 | > Helps resolve conflicts when teammates aren't able to among themselves. 197 | 198 | > Contributes to improving team relatedness, and helps build a culture of lending support. 199 | 200 | #### Architect 201 | 202 | > Works to build and improve relationships with technical managers and members from other teams across the organisation. 203 | 204 | > Contributes positively to company culture and actively promotes an inclusive culture. 205 | 206 | > Contributes to improving team relatedness, and helps build a culture of lending support. 207 | -------------------------------------------------------------------------------- /tech.md: -------------------------------------------------------------------------------- 1 | # Technical Health Competency 2 | 3 | > **Note:** Skills & responsibilities cascade upwards in seniority, e.g. a _Senior_ is expected to have all the responsibilities of _Intermediate_ & _Junior_, a _Manager_ is expected to have & do everything listed. 4 | 5 | ## Reliable & Robust Systems 6 | 7 | ### Security and Privacy 8 | 9 | #### Junior 10 | 11 | > Developing an understanding of the importance of security and privacy. 12 | 13 | #### Intermediate 14 | 15 | > Understands the importance of security and privacy. Utilizes this knowledge to ask for help on making decisions that may have security or privacy implications. 16 | 17 | #### Senior 18 | 19 | > Approaches engineering work with a security and privacy lens. 20 | 21 | > Actively looks for security vulnerabilities both in the code and when providing peer reviews. 22 | 23 | > Actively looks for privacy violations both in the code and when providing peer reviews. 24 | 25 | > Actively works to refine their team's approach to security and privacy based on the organisation's security and privacy strategy. 26 | 27 | > Fosters a security and privacy first mindset within their own team, and leads by example. 28 | 29 | #### Manager 30 | 31 | > Ensures that team has considered security and privacy in their work. 32 | 33 | > Facilitates improvements in team members' understanding of security and privacy where necessary. 34 | 35 | #### Architect 36 | 37 | > Approaches architecture planning work with a security lens. Actively looks for security vulnerabilities both in the code and when providing peer reviews. Actively works to refine overall organization's approach to security based on the organization's security strategy. Fosters a security first mindset, and leads by example. 38 | 39 | > Actively review and discover areas of the organization where security and privacy of data, information and process may be of concern. 40 | 41 | > Review, understand and document current and known security issues within the systems. 42 | 43 | > Actively works with product managers and technical managers to prioritize work for remediation of security related issues. 44 | 45 | > Actively promote best practices for security within the architectural reviews and technical implementation of new features, 46 | 47 | ### Distributed Systems 48 | 49 | #### Junior 50 | 51 | > Developing an understanding of the application(s) they work on in the tech stack. 52 | 53 | #### Intermediate 54 | 55 | > Understands how the applications within their context integrate with each other. Developing a deeper understanding of slices of the technology stack. 56 | 57 | > Developing an understanding of different techniques required for parts of the tech stack, for example data consistency, async tasks and availability of applications 58 | 59 | #### Senior 60 | 61 | > 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. 62 | 63 | > Prompts the team to factor in data consistency, availability and performance in production of features. 64 | 65 | #### Manager 66 | 67 | > Facilitates improvements in team members' understanding of distributed systems where necessary. 68 | 69 | > Ensures that systems are not left behind, and that every system has an owner. 70 | 71 | #### Architect 72 | 73 | > Understands and documents the distributed nature and dependencies of the whole production services and systems. 74 | 75 | > Leads the team to factor in data consistency, availability and performance in production of features during architecture reviews. Works with technical managers to ensure systems are implemented correctly. 76 | 77 | > Share and demonstrate ideas and knowledge within distributed system to the technical team. 78 | 79 | ### Reliability & Observability 80 | 81 | #### Junior 82 | 83 | > N/A (not applicable at this level) 84 | 85 | #### Intermediate 86 | 87 | > 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. 88 | 89 | #### Senior 90 | 91 | > 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. 92 | 93 | #### Manager 94 | 95 | > Is aware of the operational data for their team's domain and ensures that the team has considered operational issues in their work. 96 | 97 | #### Architect 98 | 99 | > Drives monitoring work on the overall organization based on the organization's monitoring philosophy. Is aware of the operational data for the organization's domain and uses it as a basis for driving changes to the organization's services to achieve stability and performance improvements. 100 | 101 | > Evaluate opportunities for technical advancement of the infrastructure to improve overall reliability and observability. 102 | 103 | > Lead architecture, planning, maintenance and remediation of systems and infrastructure. 104 | 105 | ## Troubleshooting 106 | 107 | ### Debugging 108 | 109 | #### Junior 110 | 111 | > Understands the basics of debugging and the tools used for it. 112 | 113 | #### Intermediate 114 | 115 | > Uses a systematic approach to debug issues located within a single service. 116 | 117 | #### Senior 118 | 119 | > Proficient at using systematic debugging to diagnose all issues. 120 | 121 | #### Manager 122 | 123 | > Supports the team by helping to delegate debugging tasks accordingly. 124 | 125 | #### Architect 126 | 127 | > Strong proficiency and intimate knowledge of the entire system. Be available for teams during debugging and diagnostic sessions. 128 | 129 | ### Incident Response 130 | 131 | #### Junior 132 | 133 | > Learning to detect when there is an incident vs what is a lower priority bug 134 | 135 | #### Intermediate 136 | 137 | > 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. 138 | 139 | #### Senior 140 | 141 | > 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. 142 | 143 | #### Manager 144 | 145 | > Delegates incident response tasks to ensure that incidents are being addressed, and that there is no duplicated effort by team members. 146 | 147 | > Facilitates Postmortems after incidents. 148 | 149 | > Manages the backlog of issues derived from incidents. 150 | 151 | #### Architect 152 | 153 | > Highly proficient at using a range of tools to detect when there is an incident and raises this with stakeholders in a timely manner. Leads the resolution of an incident or provide assistance to others on resolving incidents. Able to understand issues across domains. 154 | 155 | > Able to pin point issues and come up with (alternative) solutions to incidents. 156 | 157 | > Use and incorporate learnings from incidents to improve the overall organization's architectural decisions. 158 | 159 | ## Technical Design & Architecture 160 | 161 | ### Understanding Code 162 | 163 | #### Junior 164 | 165 | > Gains context within team's domain with help from more senior engineers. 166 | 167 | #### Intermediate 168 | 169 | > 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. 170 | 171 | #### Senior 172 | 173 | > 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. 174 | 175 | #### Manager 176 | 177 | > Is aware of who has knowledge and who has gaps. Works to fill gaps in the team's knowledge. 178 | 179 | #### Architect 180 | 181 | > Has expertise in the overall domain, including the breadth of services, how they interact, and data flows between systems. 182 | 183 | > Able to partner with and advise stakeholders across the organization, including team members to further advance technical understanding. 184 | 185 | ### API Design 186 | 187 | #### Junior 188 | 189 | > Understands API interfaces for GraphQL and REST APIs. Understands different formats used in an API. Able to query and update data via an API. 190 | 191 | #### Intermediate 192 | 193 | > Understands different API interfaces and formats and creates APIs for consumption. 194 | 195 | #### Senior 196 | 197 | > Consistently considers best practice when designing APIs and ensures the work in the team meets these 198 | 199 | #### Manager 200 | 201 | > Ensures that standards are set by team and followed. 202 | 203 | #### Architect 204 | 205 | > Crafts and iterates API infrastructure, with a high degree of domain knowledge and understanding. 206 | 207 | > Constantly evaluates opportunities for technical advancement and improvement of product and infrastructure, including API design. 208 | 209 | > Lead architecture, development, and maintenance of systems. 210 | 211 | > Advance technical aptitude of the team. 212 | 213 | ### Design Patterns 214 | 215 | #### Junior 216 | 217 | > Developing an understanding of different patterns used in the codebase 218 | 219 | #### Intermediate 220 | 221 | > Consistently considers and applies applicable patterns across several contexts/codebases, in accordance to agreed best practices and standards. 222 | 223 | #### Senior 224 | 225 | > 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 226 | 227 | #### Manager 228 | 229 | > Ensures that team has considered design patterns in their work. 230 | 231 | > Ensures that standards are set by team and followed. 232 | 233 | #### Architect 234 | 235 | > Settings standards in design patterns across the organization. 236 | 237 | ### Software Architecture 238 | 239 | #### Junior 240 | 241 | > Aware of domain architecture and designs basic functions to avoid code duplication and interface-breaking changes. 242 | 243 | #### Intermediate 244 | 245 | > Designs functions considering how this fits into the overall architecture. 246 | 247 | #### Senior 248 | 249 | > 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. 250 | 251 | #### Manager 252 | 253 | > Facilitates creation and maintenance of the architectural roadmap. 254 | 255 | #### Architect 256 | 257 | > Crafts and iterates architectural roadmap, with a high degree of domain knowledge and understanding of the overall system. 258 | 259 | > Works with the technical managers 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 260 | 261 | ## Quality 262 | 263 | ### Code Reviews 264 | 265 | #### Junior 266 | 267 | > 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. 268 | 269 | #### Intermediate 270 | 271 | > 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. 272 | 273 | #### Senior 274 | 275 | > Encourages the culture of quality code reviews within the team. Provides guidance on reviews conducted by others for others. 276 | 277 | > Highlights any issues with a PR that might result in release/merge complications. 278 | > Is highly aware of the team's dependencies and proactive in ensuring the team's PRs are reviewed in a timely manner. 279 | 280 | #### Manager 281 | 282 | > Providers feedback to team members to improve their code review practices and processes. 283 | 284 | #### Architect 285 | 286 | > Works with technical managers to help set standards for technical skills, and practices for PR process. 287 | 288 | ### User Centric 289 | 290 | #### Junior 291 | 292 | > Strives to deliver work with the end-users in mind and understands the value of tasks. 293 | 294 | #### Intermediate 295 | 296 | > 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) 297 | 298 | #### Senior 299 | 300 | > 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). 301 | 302 | #### Manager 303 | 304 | > Facilitates communication into and out of the team with end-users and other stakeholders. 305 | 306 | #### Architect 307 | 308 | > Design systems to facilitate developer experience and to allow the team to deliver features with the customer in mind. 309 | 310 | ### Testing 311 | 312 | #### Junior 313 | 314 | > 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. 315 | 316 | #### Intermediate 317 | 318 | > 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. 319 | 320 | #### Senior 321 | 322 | > 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. 323 | 324 | #### Manager 325 | 326 | > Works with their team to recommend solutions that are in accordance with accepted testing frameworks and the testing pyramid. 327 | 328 | > Ensures adequate test coverage is maintained by the team. 329 | 330 | > Ensures that standards are set by team and followed. 331 | 332 | #### Architect 333 | 334 | > Establishes, works with the technical managers to recommend solutions that are in accordance with accepted testing frameworks and the testing pyramid. 335 | 336 | > Explore and POC new testing patterns, systems, and services. 337 | 338 | > Settings standards on how tests should be required and written across all stakeholders. 339 | 340 | ### Best Practice 341 | 342 | #### Junior 343 | 344 | > Approaches tasks with the view of following best practice. May need help from others on understanding which standards to follow. 345 | 346 | #### Intermediate 347 | 348 | > 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 349 | 350 | #### Senior 351 | 352 | > 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 353 | 354 | #### Manager 355 | 356 | > Ensures that standards are set by team and followed. 357 | 358 | #### Architect 359 | 360 | > 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 361 | 362 | > Acts as an advisor to the team to resolve technical and architectural issues. 363 | --------------------------------------------------------------------------------