Skip to main content

Career Development

We want everyone at ChainSafe to have a sense of how they can grow and challenge themselves. From a career perspective, this means providing a clear sense of how an employee can progress within the organization. To facilitate this within Engineering, we have defined 6 levels:

  • E1 - Associate Engineer
  • E2 - Engineer
  • E3 - Senior Engineer
  • E4 - Staff Engineer
  • E5 - Senior Staff Engineer
  • E6 - Principal Engineer

There is some expectation for engineers to move to the next level in a reasonable time frame (~4 years maximum), until they reach E4. Progression from E4 will likely be at the discretion of the individual, based on their own career and life goals.

In order to define these levels and provide a clear sense of expectations we have developed a Competency Matrix.

What is it?

A competency matrix establishes a set of competencies, a scale on which to measure them, and a definition for what each competency looks like at each level.

Some important things to remember about this matrix:

  • There will be alternative matrices created for specialized positions such as Engineering Managers, Software Architects etc.
  • E6 is intentionally left undefined to give us the ability to distinguish exceptional leaders. We want to highlight the industry and community impact qualifying engineers are expected to have, rather than specific competencies. It's very likely most engineers will never reach E6, unless they position themselves as cornerstones of our industry or communities.

How is it used?

The competency matrix is meant as a tool to guide the evaluation of engineers. Not all competencies need to be fully met, small deviations are acceptable and should not prevent a promotion if growth overall is clear. It will be employed during 360 reviews to re-assess the current level of each engineer, and may also be used during career development discussions with managers to inform what needs to be achieved to justify a promotion.

The competency levels are intended to compound as you move across the matrix. For example, an E3 is expected to meet all the requirements of an E2.

Some competencies are only defined up to E3 or E4, for these the expectation is that the highest, defined level should continue to be met for all remaining levels.

Compensation

The engineering levels are used to inform compensation decisions. The level and the number of years at that level, among others, are key factors in computing compensation.

Engineering Managers

Within Engineering there are two distinct career tracks - Engineering and Engineering Management. Once an engineer has reached the E3 level they may decide to move into the Engineering Management track. There are several levels (currently loosely defined) for EMs:

  • EM3 - Team Lead
  • EM4 - Head of Engineering
  • EM5 - VP of Engineering

It's expected that as management in Engineering grows there will be additional titles and/or levels introduced.

Competency Matrix

Engineering Competency Matrix

E1 - Associate EngineerE2 - EngineerE3 - Senior EngineerE4 - Staff EngineerE5 - Senior Staff Engineer
DevelopmentQuality of CodeWrites code which is designed to be readable and easily tested.Contributes code which takes into account the collective goals of the system. Language features and idioms are correctly used.Consistently writes high quality code which is easy to read and logically broken down. Language features and idioms are effectively used.Supports other engineers in developing their code quality and establishing standards for the organization.
Understanding CodeAble to comprehend isolated pieces of code.Able to comprehend interrelated pieces of code and their interactions.Able to comprehend entire codebases and identify ways to simplify or improve code structure.
DebuggingAble to understand and fix simple, isolated bugs. Requires help of others to understand and fix more complex or involved bugs.Able to understand and fix bugs of increasing complexity that may touch various components of the codebase. Occasionally requires the help of others.Able to understand and fix complex bugs that involve many components of the codebase. Assists team members with debugging.Ability to debug any kind of issue on the project and leads and documents best practices when it comes to debugging.Can assist in debugging efforts across the organization and discovers and shares improved debugging methodology that is agnostic to languages (e.g. low level techniques to do packet analyzing on libp2p).
Testing & Quality AssuranceConsistently writes unit test cases and achieves good test coverage with the help of their team. Considers obvious test cases. Participates in improvement of CI/CD pipelines and other tools to ensure quality delivery.Helps in ensuring that testing at all levels is implemented and reliable. May assist in looking for non-obvious test cases. Sometimes assists in the implementation and continual improvement of CI/CD pipelines and other tools to ensure quality delivery.Ensures testing at all levels is implemented and reliable. Spends time considering non-obvious test cases. Assists in the implementation and continual improvement of CI/CD pipelines and other tools to ensure quality delivery.Leads testing efforts utilizing different testing strategies and defining standards. Leads decisions on CI/CD pipelines. Develops testing strategies to create better workflows for teams.
Work Breakdown & PrioritizationRequires assistance in breaking assigned tasks down into multiple components and organizing them in order of priority.Able to breakdown work within a feature or epic and have some sense of priority. May participate in creation of issues and task assignment.Able to breakdown work within a team and create and assign tasks to team members. Prioritizes tasks effectively and allows the team to work efficiently.Able to lead work breakdown sessions, and helps others break down their tasks potentially across teams/projects.
DocumentationDocuments functions and variables effectively. Sometimes contributes to external documentation (e.g. repository readme, developer guides, external docs).Documents code clearly and effectively. Writes or updates existing documentation to reflect changes to code. Sometimes contributes to external documentation (e.g. repository readme, developer guides, external docs).Documents code clearly and effectively, explaining higher level concepts within the documentation as well as specifics. Consistently writes and updates existing documentation to reflect changes to code. Contributes significantly to external documentation (e.g. repository readme, developer guides, external docs).
Task ComplexityCan handle simple tasks. Requires help from others for more complex tasks.Can handle moderately complex tasks and is able to help others depending on the task.Can handle highly complex tasks and is able to support other team members on most, if not all, tasks.Can handle ANY highly complex tasks which requires many different contexts without support from other team members.
Architectural/Big Picture/DeliverySoftware ArchitectureHas a basic understanding of the architecture of the code they work with.Has a sufficient understanding of the architecture of the code they work with. May sometimes contribute to architectural decisions.Has a deep understanding of the architecture of the code they work with. Contributes to and leads architectural decisions.Able to understand and apply standard software architectures and common building patterns among multiple similar projects. Able to architect new systems from scratch.Able to architect novel systems that are unlike any other things we have ever built.
Security ThinkingUnderstands basic security and privacy principles. Immediately reports privacy or security concerns to team.Understands the importance of security. Utilizes this knowledge to ask more senior engineers for help on making decisions that may have security implications.Always considers the security implications of the code they produce and actively works to reduce potential security vulnerabilities. Encourages good security practices throughout their team.Produces standards on best security practices that can be applied to multiple similar projects.Produces standards on best security practices that can be applied to projects across the organization.
Code Maintainability & AdaptabilityCode is adequately structured within a package for future maintenance. Attempts to produce code that is structured well for use across the codebase.Produces modular code that is structured well for use across the codebase and for future maintenance.Produces modular code that is structured well for use across the codebase and for future maintenance. Anticipates future use cases and designs code accordingly.
ObservabilityIs aware of the project's monitoring philosophy and the operational data for their team’s domain.Is able to analyze and interpret operational data to improve performanceIs able to identify new important data to capture to improve performance and insight into systems
Interpersonal Skills - Team WorkEffective CommunicationCommunicates effectively, clearly, concisely in both written and verbal form. Actively listens to others and ensures they are understood. Pays attention to nonverbal communication.Usually communicates effectively, clearly, concisely in both written and verbal form, and can communicate both technical and non-technical subjects to teammates. Actively listens to others and ensures they are understood. Pays attention to nonverbal communication.Always communicates effectively, clearly, concisely in both written and verbal form, and can communicate both technical and non-technical subjects to teammates in a diverse team. Actively listens to others and ensures they are understood. Pays attention to nonverbal communication.Able to communicate effectively with a diverse team and across teams. Fosters a culture of clear, concise, effective, communication on their team, ensuring teammates actively listen to others and are understood. Actively demonstrates these behaviors. Pays attention to nonverbal communication.
Seeking & Delivering FeedbackSeeks feedback from peers and sometimes offers constructive feedback. Including praise and constructive feedback.Seeks feedback from peers, and frequently offers constructive feedback to peers. Including praise and constructive feedback.Fosters an environment that welcomes and encourages praise and constructive feedback within their team. Frequently seeks feedback from teammates, and offers constructive and actionable feedback to teammates and manager often.Fosters an environment that welcomes and encourages praise and constructive feedback across teams. Seeks feedback from relevant stakeholders w.r.t. the team and effectively communicates that back to the team.Fosters an environment that welcomes and encourages praise and constructive feedback across the organization. Seeks feedback from relevant stakeholders w.r.t. different teams and effectively communicates that back to the teams.
Handling DisagreementNeeds coaching and oversight around handling and managing disagreements. Puts effort to actively listen and understand others' points of view.Realizes that disagreements are healthy and drive higher quality work. Can, with the help of a facilitator, work with others to manage disagreements. Puts effort into understanding others' points of view.Realizes that disagreements are healthy and drive higher quality work. Works with others to turn disagreements into productive conversations. Actively listens and understands others' points of view.
HelpfulnessMay occasionally provide help to team members when asked.Provides help to team members when asked. Takes time to help others learn and grow.Provides help to team members without being asked. Takes time to help others learn and grow.
InitiativeSometimes may propose and lead work when being prompted.Proposes and leads work when prompted.Proposes and leads work without being prompted. Considers initiatives within the team to improve efficiency and team morale.Proposes and leads work without being prompted. Considers initiatives across teams to improve efficiency and team morale.Proposes and leads work without being prompted. Always looking to find new organization-wide initiatives to improve efficiency and team morale.
Mentoring & Knowledge SharingOccasionally shares their knowledge and teaches others within their team.Often shares their knowledge and teaches others within their team.Always makes an effort to share their knowledge and teach others within their team. Takes some initiative to share knowledge between teams.Always makes an effort to share their knowledge and teach people as well as facilitate knowledge sharing between teams.Always makes an effort to share their knowledge, teach, and mentor people across the organization. Facilitates company-wide knowledge sharing events.
Decision MakingRequires coaching and oversight when there is a need to make difficult decisions in a timely manner.Can sometimes make decisions in a timely manner which take into consideration some points of view and potential outcomes.Makes difficult decisions in a timely manner which take into consideration all points of view and potential outcomes. Helps teammates make clear decisions in alignment with organizational goals.Takes ownership of decisions made across teams by helping their teammates make clear decisions in alignment with organizational goals, and taking responsibility for their success.Takes ownership of decisions made at an Engineering level by helping their managers, developers and teams make clear decisions in alignment with organizational goals, and taking responsibility for their success.
Task DelegationMay sometimes delegate tasks amongst their team.Able to effectively delegate tasks amongst their team appropriately. Effectively employs resources within the organization to assist in their work.Effectively delegates tasks and responsibilities across several teams appropriately. Effectively employs resources within the organization to assist in their work.Oversees task delegation and responsibilities across the organization. Effectively employs resources within the organization to assist in their work.
Facilitation & Driving AlignmentParticipates in discussions within their team, shares their opinion.Participates in discussions with their team, ensuring that everyone has an opportunity to share their opinion and be heard, and that discussion outcomes tie to stated goals.Facilitates discussions within their team, ensuring that everyone has an opportunity to share their opinion and be heard, and that discussion outcomes tie to stated goals. Encourages quiet participants and ensures no one person dominates the conversation.Facilitates discussions across different teams, ensuring that everyone has an opportunity to share their opinion and be heard, and that discussion outcomes tie to stated goals. Encourages quiet participants and ensures no one person dominates the conversation. Ensures that all teams are satisfied with outcomes.Facilitates discussions across the Engineering department, ensuring that everyone has an opportunity to share their opinion and be heard, and that discussion outcomes tie to stated goals. Encourages quiet participants and ensures no one person dominates the conversation. Ensures that all teams and leaders are satisfied with outcomes.
Goal SettingUnderstands team's goals and priorities. Understands their role in achieving those goals.Works with the team to set goals and priorities, points out when goals are not clear and achievable. Understands their role in achieving those goals.Works with the team to set goals and priorities, ensures that goals are clear and achievable. Outlines each team member's role in achieving those goals.Works with different teams to align goals across teams, ensures that goals are clear and achievable. Outlines each team's role in achieving those goals.Works with different teams to align goals between teams, Engineering department, and the company, ensuring that goals are clear and achievable. Outlines each team's role in achieving those goals.
BusinessAccountability for DeliveryAlways delivers on tasks assigned to them in a timely manner. Informs the team of any upcoming blockers or delays from their assigned tasks.Always delivers on tasks assigned to them in a timely manner. Informs the team of any upcoming blockers or delays from their assigned tasks. Checks in with the team for expectations to ensure smooth and on time delivery.Always delivers on tasks assigned to them in a timely manner. Foresees and informs the team of any upcoming blockers or delays before they become apparent. Clarifies the expectations for every team member to ensure smooth and on time delivery.Always delivers on projects assigned to them in a timely manner. Coordinates with different teams to ensure they are always up to date with progress. Clarifies the expectations for every team member and leader to ensure smooth and on time delivery.
Product ThinkingThinks about the overall goal of what they are contributing to. Needs assistance in understanding various components and how they tie into the broader vision.Has a good sense of the overall goal of what they are contributing to. May occasionally provide design feedback on various components.Maintains understanding of and takes into consideration the overall goal of what they are contributing to. Provides design feedback based on their knowledge of various components and how they tie into the broader vision.Takes an active role in planning and setting specific goals for their project/product. Helps in defining the vision for the project/product, including business logic, user experience, and technical standards.Leads the process of planning and setting specific goals for their project/product. Leads teams in defining the vision for the project/product, including business logic, user experience, and technical standards.
Economic ThinkingApproaches work by weighing in costs and benefits of different approaches within a feature/task.Approaches work by weighing in costs and benefits of different approaches on an epic level, and may sometimes make suggestions to teammates on approaches that have the lowest cost and highest benefit.Approaches work by weighing in costs and benefits of different approaches on a team level, and makes suggestions to the team on approaches that have the lowest cost and highest benefit. Ensures time is not wasted when working on tasks by delegating them effectively.Approaches work by weighing in costs and benefits of different approaches across teams, and makes suggestions to the team on approaches that have the lowest cost and highest benefit. Ensures that work is distributed and optimized well for maximum output/hour.

Solutions Engineering Competency Matrix

E1E2E3E4E5
Understanding CodeAble to comprehend isolated pieces of code.Able to comprehend interrelated pieces of code and their interactions.Able to comprehend entire codebases and identify ways to simplify or improve code structure.
Work Breakdown & PrioritizationRequires assistance in breaking assigned tasks down into multiple components and organizing them in order of priority.Able to breakdown work within a feature or epic and have some sense of priority. May participate in creation of issues and task assignment.Able to breakdown work within a team and create and assign tasks to team members. Prioritizes tasks effectively and allows the team to work efficiently.Able to lead work breakdown sessions, and helps others break down their tasks potentially across teams/projects.
DocumentationProduces memos and documentation describing very basic architectural concepts effectively.Produces research documents and specifications describing basic architectural concepts with enough clarity that a solution can be implemented by an external party with significant explanation and guidance.Produces research documents and specifications describing substantial architectural concepts as well as specifics required to build them with enough clarity that a solution can be implemented by an external party with some additional explanation and guidance.Produces research documents and specifications describing highly complex and/or novel architectural concepts as well as specifics required to build them with enough clarity to be implemented or researched further by third parties with minimal guidance.Produces groundbreaking research documents and specifications describing significantly complex architectures that are clear enough to be implemented or researched further with next to no guidance.
Task ComplexityCan handle simple tasks. Requires help from others for more complex tasks.Can handle moderately complex tasks and is able to help others depending on the task.Can handle highly complex tasks and is able to support other team members on most, if not all, tasks.Can handle ANY highly complex tasks which requires many different contexts without support from other team members.
Software ArchitectureHas a basic understanding of the architecture of the code they work with.Has a sufficient understanding of the architecture of the code they work with. May sometimes contribute to architectural decisions.Has a deep understanding of the architecture of the code they work with. Contributes to and leads architectural decisions.Able to understand and apply standard software architectures and common building patterns among multiple similar projects. Able to architect new systems from scratch.Able to architect novel systems that are unlike any other things we have ever built.
Security ThinkingUnderstands basic security and privacy principles and takes these into consideration when completing tasks.Understands the importance of security and privacy. Utilizes this knowledge to ask more senior engineers for help on design decisions that could have security or privacy implications.Always considering the security and privacy implications inherent in any projects/tasks and actively works to reduce their impact/assess potential vulnerabilities. Encourages good security practices when reviewing other team members work.Produces standards on best security practices that can be applied to multiple similar projects.Produces standards on best security practices that can be applied to projects across the organization.
Effective CommunicationCommunicates effectively, clearly, concisely in both written and verbal form. Actively listens to others and ensures they are understood. Pays attention to nonverbal communication.Usually communicates effectively, clearly, concisely in both written and verbal form, and can communicate both technical and non-technical subjects to teammates. Actively listens to others and ensures they are understood. Pays attention to nonverbal communication.Always communicates effectively, clearly, concisely in both written and verbal form, and can communicate both technical and non-technical subjects to teammates in a diverse team. Actively listens to others and ensures they are understood. Pays attention to nonverbal communication.Able to communicate effectively with a diverse team and across teams. Fosters a culture of clear, concise, effective, communication on their team, ensuring teammates actively listen to others and are understood. Actively demonstrates these behaviors. Pays attention to nonverbal communication.
Seeking & Delivering FeedbackSeeks feedback from peers and sometimes offers constructive feedback. Including praise and constructive feedback.Seeks feedback from peers, and frequently offers constructive feedback to peers. Including praise and constructive feedback.Fosters an environment that welcomes and encourages praise and constructive feedback within their team. Frequently seeks feedback from teammates, and offers constructive and actionable feedback to teammates and manager often.Fosters an environment that welcomes and encourages praise and constructive feedback across teams. Seeks feedback from relevant stakeholders w.r.t. the team and effectively communicates that back to the team.Fosters an environment that welcomes and encourages praise and constructive feedback across the organization. Seeks feedback from relevant stakeholders w.r.t. different teams and effectively communicates that back to the teams.
Handling DisagreementNeeds coaching and oversight around handling and managing disagreements. Puts effort to actively listen and understand others' points of view.Realizes that disagreements are healthy and drive higher quality work. Can, with the help of a facilitator, work with others to manage disagreements. Puts effort into understanding others' points of view.Realizes that disagreements are healthy and drive higher quality work. Works with others to turn disagreements into productive conversations. Actively listens and understands others' points of view.
HelpfulnessMay occasionally provide help to team members when asked.Provides help to team members when asked. Takes time to help others learn and grow.Provides help to team members without being asked. Takes time to help others learn and grow.
InitiativeSometimes may propose and lead work when being prompted.Proposes and leads work when prompted.Proposes and leads work without being prompted. Considers initiatives within the team to improve efficiency and team morale.Proposes and leads work without being prompted. Considers initiatives across teams to improve efficiency and team morale.Proposes and leads work without being prompted. Always looking to find new organization-wide initiatives to improve efficiency and team morale.
Mentoring & Knowledge SharingOccasionally shares their knowledge and teaches others within their team.Often shares their knowledge and teaches others within their team.Always makes an effort to share their knowledge and teach others within their team. Takes some initiative to share knowledge between teams.Always makes an effort to share their knowledge and teach people as well as facilitate knowledge sharing between teams.Always makes an effort to share their knowledge, teach, and mentor people across the organization. Facilitates company-wide knowledge sharing events.
Decision MakingRequires coaching and oversight when there is a need to make difficult decisions in a timely manner.Can sometimes make decisions in a timely manner which take into consideration some points of view and potential outcomes.Makes difficult decisions in a timely manner which take into consideration all points of view and potential outcomes. Helps teammates make clear decisions in alignment with organizational goals.Takes ownership of decisions made across teams by helping their teammates make clear decisions in alignment with organizational goals, and taking responsibility for their success.Takes ownership of decisions made at an Engineering level by helping their managers, developers and teams make clear decisions in alignment with organizational goals, and taking responsibility for their success.
Task DelegationMay sometimes delegate tasks amongst their team.Able to effectively delegate tasks amongst their team appropriately. Effectively employs resources within the organization to assist in their work.Effectively delegates tasks and responsibilities across several teams appropriately. Effectively employs resources within the organization to assist in their work.Oversees task delegation and responsibilities across the organization. Effectively employs resources within the organization to assist in their work.
Facilitation & Driving AlignmentParticipates in discussions within their team, shares their opinion.Participates in discussions with their team, ensuring that everyone has an opportunity to share their opinion and be heard, and that discussion outcomes tie to stated goals.Facilitates discussions within their team, ensuring that everyone has an opportunity to share their opinion and be heard, and that discussion outcomes tie to stated goals. Encourages quiet participants and ensures no one person dominates the conversation.Facilitates discussions across different teams, ensuring that everyone has an opportunity to share their opinion and be heard, and that discussion outcomes tie to stated goals. Encourages quiet participants and ensures no one person dominates the conversation. Ensures that all teams are satisfied with outcomes.Facilitates discussions across the Engineering department, ensuring that everyone has an opportunity to share their opinion and be heard, and that discussion outcomes tie to stated goals. Encourages quiet participants and ensures no one person dominates the conversation. Ensures that all teams and leaders are satisfied with outcomes.
Goal SettingUnderstands team's goals and priorities. Understands their role in achieving those goals.Works with the team to set goals and priorities, points out when goals are not clear and achievable. Understands their role in achieving those goals.Works with the team to set goals and priorities, ensures that goals are clear and achievable. Outlines each team member's role in achieving those goals.Works with different teams to align goals across teams, ensures that goals are clear and achievable. Outlines each team's role in achieving those goals.Works with different teams to align goals between teams, Engineering department, and the company, ensuring that goals are clear and achievable. Outlines each team's role in achieving those goals.
Accountability for DeliveryAlways delivers on tasks assigned to them in a timely manner. Informs the team of any upcoming blockers or delays from their assigned tasks.Always delivers on tasks assigned to them in a timely manner. Informs the team of any upcoming blockers or delays from their assigned tasks. Checks in with the team for expectations to ensure smooth and on time delivery.Always delivers on tasks assigned to them in a timely manner. Foresees and informs the team of any upcoming blockers or delays before they become apparent. Clarifies the expectations for every team member to ensure smooth and on time delivery.Always delivers on projects assigned to them in a timely manner. Coordinates with different teams to ensure they are always up to date with progress. Clarifies the expectations for every team member and leader to ensure smooth and on time delivery.
Product ThinkingThinks about the overall goal of what they are contributing to. Needs assistance in understanding various components and how they tie into the broader vision.Has a good sense of the overall goal of what they are contributing to. May occasionally provide design feedback on various components.Maintains understanding of and takes into consideration the overall goal of what they are contributing to. Provides design feedback based on their knowledge of various components and how they tie into the broader vision.Takes an active role in planning and setting specific goals for their project/product. Helps in defining the vision for the project/product, including business logic, user experience, and technical standards.Leads the process of planning and setting specific goals for their project/product. Leads teams in defining the vision for the project/product, including business logic, user experience, and technical standards.
Economic ThinkingApproaches work by weighing in costs and benefits of different approaches within a feature/task.Approaches work by weighing in costs and benefits of different approaches on an epic level, and may sometimes make suggestions to teammates on approaches that have the lowest cost and highest benefit.Approaches work by weighing in costs and benefits of different approaches on a team level, and makes suggestions to the team on approaches that have the lowest cost and highest benefit. Ensures time is not wasted when working on tasks by delegating them effectively.Approaches work by weighing in costs and benefits of different approaches across teams, and makes suggestions to the team on approaches that have the lowest cost and highest benefit. Ensures that work is distributed and optimized well for maximum output/hour.