Basic Responsibilities #
Everyone should work on these in every stage of their career.
- Actively participates in group discussions, groomings and problem solving with the team in general.
- Continually works to support teammates and is considerate of others' opinions, culture and beliefs.
- Communicates internally and externally in a respectful manner.
Engineer I #
-
Team/Collaboration/Communication
- Completes clearly-defined tasks and communicates promptly when something is blocking.
-
Coding/Development
- Works to learn the relevant technologies and systems in place, actively maintains and extends the system.
-
Architecture/Solutioning
- Makes an impact by delivering features, refactoring existing code, or updating systems to enable other developers to be successful.
-
Ownership/Responsibility/Planning
- Helps debug technical problems. Submits issues so that we can document and improve our digital products.
Experience: No previous experience required.
Engineer II #
-
Team/Collaboration/Communication
- 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.
-
Coding/Development
- Works on engineering initiatives that drive a larger featureset, while being careful to not create technical debt in the process.
-
Architecture/Solutioning
- Thinks about the impact of a given solution on the codebase paying attention to readability and technical debt impact.
-
Ownership/Responsibility/Planning
- 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.
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.
-
Team/Collaboration/Communication
- Helps support the work of their peers by pair programming, reviewing, and providing mentoring.
- Actively participates in Engineering efforts that help streamline the experience of our Product.
- 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.
- Demonstrates openness to others’ ideas. Adapts their communication style to most effectively communicate. Effectively and accurately shares credit for ideas and collaborative efforts.
-
Coding/Development
- Defines and executes on an execution plan for specific features or internal system maintenance/upgrade.
- Strives to reduce technical debt, while communicating with teammates about any larger refactor.
- When tasks are large, works on scoping work down into smaller, actionable parts.
-
Architecture/Solutioning
- 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.
-
Ownership/Responsibility/Planning
- At times, takes ownership of small to medium sized initiatives. This includes taking responsibility for timelines, and communication across teams when there are design or business related questions.
- Adjusts well to shifting priorities when necessary.
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.
-
Team/Collaboration/Communication
- Actively participates in meetings, and creates cross-team collaboration where necessary to address business goals.
- 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.
-
Coding/Development
- Keeps the team moving quickly by working on engineering efforts that aren’t always glamorous.
-
Architecture/Solutioning
- 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.
-
Ownership/Responsibility/Planning
- 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.
- Proactively communicates issues and addresses necessary trade-offs. Takes ownership of issues.
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.
-
Team/Collaboration/Communication
- 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 customer benefit.
- 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.
-
Coding/Development
- Sets clear and challenging goals for a portfolio of work, and pursues them with enthusiasm and passion.
-
Architecture/Solutioning
- Beyond participating in meetings, thoughtfully creates and leads meetings where helpful.
- Not only leads, but ideates new engineering efforts. Provides guidance and vision.
- Develops proven systems. Replicates those systems and approaches across the team so that others may learn from and improve on them.
- Partners with other teams to improve the effectiveness of our internal tooling.
-
Ownership/Responsibility/Planning
- Maintains deep industry knowledge and awareness of the technical landscape. Incorporates this analysis as appropriate into strategy.
- 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.
- 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.
- Fills out process docs without having to be asked.
Experience: Typically requires a minimum of 10 years of professional experience.
Distinguished Engineer #
-
Team/Collaboration/Communication
- 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 methods when collaborating, especially in tricky circumstances.
- Effectively communicates when there are problems, understanding risks and impact of any proposed changes. Listens well when others express tradeoffs next to other priorities.
-
Coding/Development
- Works on system architecture, thinking through problems and anticipating usage into the future. Builds systems that scale appropriately.
-
Architecture/Solutioning
- 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.
-
Ownership/Responsibility/Planning
- 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.
Experience: Typically requires a minimum of 12 years of professional experience.
Misc: Project Lead #
A Project Lead is responsible for leading a particular project (large or small) and responsible for the quality of its technical deliverables.
Anyone can lead a project at any stage in their career.
-
Involves the concept of "owning a project" from the engineering
side. Some responsibilities could include one or more of the
following:
- Identifying the technical approach.
- Creating task tickets to fill in gaps in acceptance criterea.
- Timeline management and completion estimates.
- Communication with stakeholders and managers around progress updates.
- Helps organize and facilitate productive feedback sessions with stakeholders.
- Can include a good amount of project management, keeping the trains running on time, keeping folks unblocked, and raising concerns to management when folks are stuck or timelines aren't being met.
- Creates alignment with the overall project goals and how the execution is carried out. Brings up conflicts in a productive manner.
- 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.