| Engineer | Senior Engineer | Principal Engineer | Architect | Senior Architect |
---|
Level | 1 - 2 | 3 - 4 | 5 | 6 - 7 | 8 |
Responsibility abstraction | "Tasks" | “Solutions” | “Problems” | “Spaces” | “Frontiers” |
Existing knowledge | - Has an engineering and programming foundation based upon several years of study.
- Expected to spend the majority of time learning about code and development best practices.
- Understands scope of small features.
- Has a basic understanding of what all components in their product are.
| - Has a solid understanding of development best practices and comfortable writing code in a team and open source setting.
- Writes clean and simple code that performs its intended functions.
- Can design abstract interfaces and construct modular libraries.
- Uses and understands tools needed to debug and diagnose issues in a test and/or simple production environment.
- Understands the scope of medium sized features.
- Has a solid understanding of all product components under their responsibility.
| - Has in-depth understanding of development best practices.
- Highly attuned to various coding styles used in the open source community and his hyper-focused on writing simple, well designed, human readable code.
- Has mastered the tools needed to debug and diagnose issues in any type of environment.
- Understands the scope and relationships of large features and production stack for their area.
- Has subject matter expertise in several components.
- Has an intricate understanding of all components of their product.
| - Has mastered development best practices.
- Understands the limits of our tools, and when a problem that exceeds those limits, produces a new tool.
- Understands the scope and relationships of large features and production stack for their area.
- Has subject matter expertise on multiple components across multiple products.
- Has a strong understanding of all products relevant to their own areas of expertise.
| - Has deep knowledge of the entire system, and can jump into code in any component, fire-fight, and contribute.
- Makes decisions on product direction and internals based on deep subject matter knowledge.
|
Complexity of role | Performs basic programming tasks:- Contributes to functional specifications and participates in code reviews.
- Writes and executes test plans.
- Can accurately forecast and deliver today and tomorrow’s deliverables.
| Performs standard programming tasks:- Contributes to functional specifications and participates in code reviews.
- Writes documentation and examples that ship along with their code.
- Writes and executes sophisticated test plans.
- Has the network, and ability, to recruit ‘A player’ engineers at their own level.
- Can accurately forecast and deliver a mile (2 week) deliverables.
| Performs complex programming tasks:- Can write functional specifications for features.
- Can sign off on test plans and code reviews.
- Participates in requirement building with architects.
- Gathers feedback and ‘pulse’ from Ockam's open source community.
- Has the network, and has demonstrated the ability, to recruit engineers above their level.
- Can accurately forecast and deliver Race (8 weeks) OKRs.
| Performs expert programming tasks:- Handles large-scale technical debt and refactoring.
- Shapes coding methodologies, style, DX, and best practices across wide areas of the Ockam code base.
- Leads code reviews and can sign-off on large features.
- Participates in requirements gathering with direct contact with customers.
- Has the ability to recruit other Architects in areas where they lack technical expertise.
- Can accurately forecast and deliver Campaign (8 months) OKRs.
| Sets product direction and has ownership over large components:- Thinks both strategically and tactically, keeping in mind both technical goals and company business/GTM goals.
- Understands trade offs of OKRs across the entire company.
- Contributes to and shapes company-wide Horizon scale OKRs.
- Can influence customer and partners product roadmaps.
- Can accurately forecast and deliver Horizon (18 months) of OKRs. And can also set guidance and a vision for 2-4 years into the future.
|
Professional Character | - Shows initiative and is motivated to learn.
- Provides basic guidance to external open source contributors.
| - Shows initiative and offers assistance when needed without being asked.
- Provides guidance to entry-level engineers, the open source community, and to technical partners.
- Constructively escalates problems and issues.
| - Delivers feedback across the entire team in a constructive manner.
- Provides guidance to internal and external engineers.
- Works well with technical leads, incorporating feedback as needed.
- Helps focus discussion on the most important aspects that align with OKRs.
| - An approachable mentor who is viewed as an expert and acts like one.
- Constructively challenges assumptions.
- Guides engineers to correct solutions while encouraging collaboration.
| - Builds strong relationships industry wide.
- Understands the merits and faults of multiple points of view and can drive a process to conclusions in a timely and respectful manner.
|
Independence | - Given an introduction to a small task from a more senior engineer, can drive a task to completion independently.
- “Can fill in the blanks”
| - Given a medium sized understood problem, can design and implement a solution.
- Given an introduction to the context in which a task fits, can design and complete complex tasks independently.
- “Can create blanks and then fill them in”.
| - Given a medium-to-large loosely defined problem, can drive to an understanding / definition of the problem that can then be shared across the team.
- Can design and implement a solution to the problem and delegate tasks to others.
- Participates in the open source community.
| - Given a large, poorly understood problem, can explore a broad solution space (possibly with numerous POCs) to determine the correct course of action and its tradeoffs.
- Participates in and supports initiatives outside of their main area of responsibility.
- Provides technical leadership for multiple projects.
- Is respected by and known to the open source community.
| - Given long term strategic goals, can lay out a product roadmap path across multiple versions.
- Participates in and supports initiatives outside of the main area of responsibility.
- Provides technical leadership for projects with customers.
|
Personal Growth Plan Focus | “Learning” | “Practicing” | “Teaching” | “Empowering” | “Industry influencer / Luminary” |