We’d like to share how we level engineers at Ockam. This is a behind-the-scenes view of how a lot of companies build level ladders, but for some reason, it’s rarely shared.
If you are a junior engineer and thinking about your career trajectory, check out the skills and responsibilities that lie ahead.
If you are a founder or building a new structure for your engineering team, hopefully, we can save you some time from building these descriptions from scratch.
At Ockam, there are three engineering tracks to accommodate team members with differing growth goals: IC, Management, and Executive. Typically, engineers will move all the way up through Senior Engineering level responsibilities before switching to a people management track.
LEVELS |
INDIVIDUAL CONTRIBUTOR TRACK |
MANAGEMENT TRACK |
EXECUTIVE TRACK |
---|---|---|---|
L1 |
Engineer I |
- |
- |
L2 |
Engineer II |
- |
- |
L3 |
Engineer III |
- |
- |
L4 |
Senior Engineer I |
- |
- |
L5 |
Senior Engineer II |
Engineering [Team] Lead |
- |
L6 |
Staff Engineer I |
Head of [Area] |
- |
L7 |
Staff Engineer II |
Director of [Product] |
- |
L8 |
Principal Engineer |
Senior Director |
- |
L9 |
- |
- |
VP of Engineering |
Below, we have detailed out the responsibilities of the Engineering levels at Ockam.
Our career ladder has the responsibilities for L2/L3, L4/L5, and L6/L7 grouped together. The difference between each of those levels is at the first level; the expectation is that our team member is exhibiting some to many of the behaviors at that level.
At the second level, the expectation is mastery of most of the behaviors and also beginning to exhibit behaviors at one level above.
Learns, writes, tests, reviews, and documents code according to Ockam's Engineering standards and development best practices.
Participates in software design for small features and bug fixes under direct supervision.
Completes small system administration projects under direct supervision.
Can deliver task assignments on time and on spec.
Given an introduction to a small task, can drive that task to completion by incorporating feedback and suggestions from senior engineers.
Asks for help and learns from it.
Effectively communicates the progress of tasks.
Can communicate and articulate their responsibilities and effectively utilizes the RACI framework.
Develops, ships, and maintains product features with guidance from their manager and senior engineers.
Writes code that is clear, concise, tested, and easily understood by others.
Tracks GitHub issues and responds if an external contributor or customer raises a ticket/issue related to their code.
Improves the development experience for their team by enhancing development tools, test coverage, and/or code structure.
Contributes to code specifications and participates in small-scale code reviews.
Learns from mistakes and is on a path of continuous improvement.
Begins to focus on attaining expertise in adjacent areas or features.
Knows how to prioritize multiple tasks or assignments and deliver them on time.
Provides basic guidance to external open-source contributors.
Knows when to ask for help in order to unblock themselves.
Learns how to pull knowledge, experience, and feedback from senior members of their team.
Effectively communicates progress of projects to their team according to RACI responsibilities and is capable of delivering thoughtful feedback to their team.
Understands how their responsibilities are aligned with the team’s OKRs.
Has continuous communication with, and knows when to push appropriate information to their manager.
Effectively manages a 1:1 agenda with their manager.
Understands and makes well-reasoned design decisions on large or complex product features.
Acts as a multiplier on the team. Often prioritizes, and values, unowned or undesirable tasks that enable others to move faster.
Designs abstract interfaces and constructs modular libraries that are well-tested and bug-free.
Regularly refactors code to improve error handling, testability, and maintainability.
Consistently writes, co-writes, and reviews documentation and production-ready code that is clear, concise, tested, and easily understood by others.
Actively looks for things that need immediate patching/updates/clarifications and file clear issues that OSS contributors or L1-3 engineers can pick up.
Approaches work with a security lens and actively looks for security vulnerabilities both in code and when providing code reviews.
Accurately forecasts deliverables two to three weeks ahead, and delivers on that timeline.
Requires minimal oversight beyond high-level direction.
Proactively fixes issues without being told/assigned to do so.
Identifies lack of clarity, inconsistencies, and technical limitations with issues or task assignments and can make corrective improvements.
Works across their team, and adjacent teams (e.g., DevEx) to solve problems and drive projects to completion.
Constructively escalates problems and issues early to help course-correct and ensure progress towards OKRs.
Identifies conflicting requirements across the company and flags them to their manager.
Identifies risks in code, features, and design, and communicates these to their team to collaborate on solutions.
Effectively communicates the impact and tradeoffs of multiple solutions when presenting solutions to problems.
Able to understand when proposed tasks are not aligned with team OKRs and able to defer those tasks into the backlog.
Understands and effectively communicates RACI for their tasks across their Team.
Provides technical guidance to the executive team and makes wide-scale architectural and design decisions.
Estimates, assesses, and manages project timelines with the management and executive teams.
Participates in the design review process.
Seeks constructive criticism, and ensures that technical feedback is broken down and well-understood by others on the team.
Understands the limits of Ockam’s tools, and when a problem exceeds those limits, produces, or directs their team, to build a new tool.
Demonstrates an ability to succeed in a wide range of complex technical situations across multiple axes: e.g., scale, uncertainty, and interconnectedness.
Expert in very-large sections of the source product code.
Is a resource for other teams that need help with adjacent features.
Able to quickly resolve tactical issues across the team in order to ensure the timely completion of projects.
Ensures that knowledge is shared amongst the team, and does not position themselves, or others, as a single point of failure.
Builds relationships with open-source contributors and add-on partners.
Monitors and is aware of the work that happens across the team.
Accurately forecasts deliverables two months ahead, and delivers on that timeline.
Drives organization-wide alignment of OKRs, and uses their influence to inspire their team.
Demonstrates success leading large, strategic, or complex projects that potentially have an exceptional impact on the long-term growth of the company.
Primarily acts as a multiplier by building systems, authoring tools, or introducing policies or patterns that raise the level of productivity of the company.
Ensures technical designs are properly evaluated for projects under RACI and advises teams on how to improve execution.
Shapes coding methodologies, style, DevEx, and best practices across wide areas of the source product code.
Leads large-scale code reviews, and can approve large feature updates.
Capable of debugging exceptionally difficult large-scale problems, security flaws, or service outages.
Has deep expertise across multiple Ockam products, and produces high-quality code contributions to these features.
Works with managers to break down complex OKRs into easy-to-understand projects that can be effectively built and maintained by IC L1 to L5s.
Fosters a culture of observability across Ockam's products, and helps the team use operational data to improve the stability and performance of their team products.
Influences and leads conversations with the executive team about the direction of company-wide OKRs and product roadmaps.
Collaborates across teams to solve problems and to structure the resolution of complex technical debates.
Can convert their pre-existing open source developer and enterprise architect relationships to users and customers.