Engineer I #
- Completes clearly-defined tasks and communicates when something is blocking.
- Works to learn the relevant technologies and systems in place, actively maintains and extends the system.
- Communicates internally and externally in a respectful manner.
- Makes an impact by delivering features, refactoring existing code, or updating systems enable other developers to be successful.
- Helps debug technical problems. Submits issues so that we can document and improve our service.
Experience: No previous experience required.
Engineer II #
- Works on engineering initiatives that drive a larger featureset, while being careful to not create technical debt in the process.
- Preemptively scans issue backlogs. Actions include but are not limited to: familiarizing themselves with pain points in the system, applying relevant labels and triaging, closing them via pull request or other means.
- Is considerate of others on the team and tries to support other people in their work.
- Works to become proficient in giving great reviews of their peers work. This includes being respectful, thorough, thoughtful, flexible, and not pedantic.
- Listens to the priorities and concerns of others, and acknowledges differing perspectives. Anticipates others’ reactions.
Experience: Typically requires a minimum of 2 years of professional experience.
Senior Engineer #
At this point, a person is mastering how effective they can be as an individual contributor.
- Defines and executes on an execution plan for specific features or internal system maintenance/upgrade.
- Actively participates in Engineering efforts that help streamline the experience of our Product.
- Helps support the work of their peers by pair programming, reviewing, and providing mentoring.
- Adjusts well to shifting priorities when necessary.
- Strives to reduce technical debt, while communicating with teammates about any larger refactor.
- Works to understand the purpose of the features the team is working on, and helps communicate that purpose to team members. Asks clarifying questions when expectations are unclear.
- When tasks are large, works on scoping work down into smaller, actionable parts.
- Demonstrates openness to others’ ideas. Adapts their communication style to most effectively communicate. Effectively and accurately shares credit for ideas and collaborative efforts.
- Structures code in a manner that anticipates the type of scale and maintenance required for the scope of the work. Considers legibility both in authoring and reviewing pull requests.
Experience: Typically requires a minimum of 5 years of professional experience.
Staff Engineer #
At this point, the majority of one's time is spent scaling their own skills to help others.
- Actively participates in meetings, and creates cross-team collaboration where necessary to address business goals.
- Creates and maintains internal documentation for the purpose and structure of the systems they're working on. Carefully documents processes that aren’t clear.
- Teaches peers how to set up systems and drive execution plans for features and system improvements.
- Coordinates efforts across the team rather than working in a silo. Makes sure that people feel included in varying projects, and that their voices are heard.
- Keeps the team moving quickly by working on engineering efforts that aren’t glamorous.
- Proactively communicates issues and addresses necessary trade-offs. Takes ownership of issues.
- Manages larger refactors, and/or system upgrades, helps others to do the same or participate. Able to estimate scope of work, and when those estimates are off, coordinates with stakeholders like Product Management to address risks, and take ownership.
Experience: Typically requires a minimum of 8 years of professional experience.
Principal Engineer #
At this point, one is helping others be the best that they can be, removing themselves and meeting others where they are.
- Develops proven systems. Replicates those systems and approaches across the team so that others may learn from and improve on them.
- Deep industry knowledge and awareness of the technical landscape. Incorporates this analysis as appropriate into strategy.
- Not only leads, but ideates new engineering efforts. Provides guidance and vision.
- Mentors and actively drives the technical skills of the immediate or extended team with consideration of their career stage and personal trajectory.
Removes barriers by working with others around a shared need or
Creates strategies that cross organizational boundaries to achieve broad business goals or influence.
- Anticipates issues or implications that their ideas would have on others, and pursues mutually beneficial strategies.
- Beyond participating in meetings, thoughtfully creates and leads meetings where helpful.
- Sets clear and challenging goals for a portfolio of work, and pursues them with enthusiasm and passion. Understands business objectives and incorporates these into this body of work. Critically reviews multiple plans and adjusts as needed.
- Drives measurable growth by scaling/mentoring teams, affecting engineering roadmaps positively, managing key metrics, creating research and/or programs.
- Partners with other teams to improve the effectiveness of our internal tooling.
- Anticipates the needs of those around them. Is respectful in terms of async hygiene, exhibiting care that their teammates can get in touch with them or knows their status during working hours. Fills out process docs without having to be asked.
Experience: Typically requires a minimum of 10 years of professional experience.
Distinguished Engineer #
- Identifies industry-wide pieces of functionality that are missing that can unlock potential for customer growth at scale and implements them, either through engineering tasks, open source work, or advocating with product for features.
- Understands the impact their activity on company OKRs and chooses precisely what they’re working on in terms of strategy of that impact without being asked.
- Actively advocates for others internally and externally, making sure that their work is seen. Extends their social capital to aid other people.
- Carefully considers communication modality when collaborating, especially in tricky circumstances.
- Works on system architecture, thinking through problems and anticipating usage into the future. Builds systems that scale to the appropriate amount.
- Effectively communicates when there are problems, understanding risks and impact of any proposed changes. Listens well when others express tradeoffs next to other priorities.
Experience: Typically requires a minimum of 12 years of professional experience.
Misc: Tech Lead #
A Tech Lead is responsible for leading a particular project, and responsible for the quality of its technical deliverables.
Anyone can be a tech lead at any stage in their career.
- Involves a good amount of project management- keeping the trains running on time, keeping folks unblocked, and raising concerns to management when folks are stuck.
- May at times involve mentoring folks and pair programming.
- Still involves coding/participation and IC work on a project. This might also mean picking up slack to fill in gaps to round out a project.
- Helps organize and facilitate productive feedback and feedback sessions with stakeholders.
- Creates alignment with the overall project goals and how the execution is carried out. Brings up conflicts in a productive manner. Also, commits to the product vision once set.
- A tech lead gently enforces standards- culture and attitudes included. If the team has misalignment, a tech lead spends time alongside the Engineering Manager to guide them towards productivity.