ABCDE
1
LevelExecution & ResultsTechnical SkillCommunication & Influence✔➡
2
SDE I• Estimate simple projects and deliver them on time, most of the time
• Complete simple projects containing some amount of ambiguity with minimal oversight
• Complete well defined, moderately complex projects with guidance from another engineer
• Know when to ask for help vs. trying to solve an issue individually
• Seek out architectural help as needed from other engineers before diving into a project
• Address mistakes quickly; may occasionally make the same mistake more than once
• Reflect on mistakes and suggest improvements for minimizing them in the future
• Remove some blockers individually and escalates the rest as needed to become unblocked quickly
• Lead the incident retrospective process, occasionally with guidance of more senior engineers; identify low-hanging action items to prevent or mitigate the effects of similar incidents in the future
• Write elegant, easy to understand code
• Write simple tests, drawing from pre existing patterns
• Code review simple projects and provide meaningful feedback
• Internalize best practices and processes, and employ them effectively
• Learn new technology individually with little or no guidance
• Leverage an on-call runbook in order to help troubleshoot the most common production issues; escalates a majority of uncommon production issues to more senior team members
• Communicate relevant updates to the team proactively
• Provide actionable and specific feedback proactively
• Reflect on product successes and failures; participate meaningfully in retrospectives
• Communicate effectively with collaborators and stakeholders
• Communicate blockers proactively, even if a path to becoming unblocked is known
3
SDE II• Estimate moderately complex projects and deliver them on time
• Complete moderately complex projects containing some ambiguity with minimal oversight
• Split projects into smaller subtasks/milestones when asked, and prioritize and sequence subtasks and milestones for effective delivery
• Serve as a technical lead for simple to moderately complex projects with guidance and oversight
• Pair with other engineers on highly complex projects with guidance and oversight
• Solves most issues individually, occasionally escalating to other engineers for assistance
• Will make mistakes occasionally, but does not repeat the mistakes
• Lead and facilitate sprint standups and retrospectives
• Remove most blockers individually and proactively escalate or seek assistance to become unblocked quickly
• Lead the incident retrospective process completely, soliciting input and data from others as needed; drive the process to identify and identify action items or process changes that will prevent or mitigate the effects of similar incidents in the future
• Debug moderately complex issues most of the time, especially when we've encountered the issue before
• Write effective tests, creating new test patterns as needed
• Code review simple to moderately complex projects and provide meaningful feedback, encouraging the use of best practices and patterns that would improve the elegance of the code
• Core competency in at least one technical area
• Troubleshoot and resolve most common production issues without assistance; able to determine basic troubleshooting steps for uncommon production issues and occasionally contributes to on-call runbook
• Provide feedback for helping to shape best practices and processes within the team when asked
• Provide guidance/oversight to other engineers, helping them to develop good judgement on solving technical problems
• Ask questions if the goal or impact of a project is unclear
• Communicate relevant updates to the team, stakeholders, and collaborators proactively
• Proactively seek feedback and always looking for opportunities for self-improvement
• Lead retrospective discussions and writeups in collaboration with other engineers
• Mentor other engineers in core competency area(s)
• Communicate effectively across the organization
4
SDE III• Estimate highly complex projects and deliver them on time
• Complete highly complex projects, sometimes with a fair amount of ambiguity, with little to no oversight
• Split highly complex projects into appropriately sized subtasks/milestones, and prioritize, sequence, and delegate subtasks effectively to other engineers for effective delivery
• Define success metrics for projects; ensure proper instrumentation and experiment design
• Serve as a technical lead for highly complex projects with minimal oversight
• Lead and facilitate planning and grooming discussions within the team
• Persistent and vigilant in pursuit of unblocking themselves or others on the team
• Contribute key technical insights to incident retrospectives that help the team determine the best action items to prevent or mitigate the effects of similar incidents in the future
• Debug most highly complex issues regardless of whether we've seen them before
• Write effective tests to catch/prevent subtle or complicated bugs
• Code review highly complex projects, identifying most opportunities to improve the correctness and elegance of the code through recommended best practices and patterns
• Rarely requires assistance to troubleshoot highly complex issues
• Core competency in two or more technical areas
• Rarely makes coding mistakes
• Identify root cause of most production issues, provide for temporary resolution as needed, and provide direction on longer term resolution; frequent contributor to on-call runbook
• Mentor other engineers on writing elegant, easy to understand code
• Mentor other engineers to develop proficiency in serving as a technical lead
• Provide guidance to other engineers on the team to help them refine estimates, enabling them to deliver on time
• Proactively helps iterate/evolve best practices and processes to address friction and challenges within the team
• Occasionally identify opportunities to address friction and challenges across the engineering team
• Core competency in at least one product area
• Partner effectively with product and design to help ensure we are utilizing our resources in the most impactful way for the business
• Provide mentorship to other engineers, helping to improve their technical decision-making and judgement, as well as their impact on the team
• Help other engineers on the team to reduce coding mistakes
• Lead retrospective discussions and writeups seeking input from other engineers, collaborators, or stakeholders as appropriate
5
SDE IV• Lead completion and delivery of multiple concurrent projects with clear deliverable timelines and milestones
• Contribute to common/shared code, components, libraries, and/or services resulting in substantial improvements to developer productivity
• Identify and mitigate risks, ambiguities, and unknowns in very highly complex projects that may negatively impact on-time delivery
• Assess scope vs. value tradeoff effectively in all the work that we do, collaborating with product, design, and other engineers as needed to ensure the right balance on a per-project basis
• Lead and effectively complete and deliver very highly complex projects with a high degree of ambiguity, typically involving other engineers
• Strategic use of technical debt as a lever in effective delivery of project
• Revisit tradeoff cost/benefit decisions, especially those involving the purposeful accumulation of technical debt
• Provide guidance in incident retrospectives to help the team determine the correct priorities and sequencing for action items
• Provide key input and guidance in helping to solve our most difficult and challenging issues, and provide recommendations for preventing or mitigating the effects of the issues in the future
• Introduce new testing methodologies, best practices, patterns, or frameworks as needed to ensure comprehensive test coverage
• Code review highly complex projects both within and outside of the team
• Core competency in several technical areas
• Proactively identify opportunities to improve performance and resiliency of our platform to make on-call more tenable for future engineers
• Identify inconsistencies caused by lack of best practices and patterns, and proactively collaborate with the team to gather input to define and rollout new best practices
• Identify opportunities to improve processes and organizational structure to address ongoing friction or challenges
• Mentor other engineers on increasing their impact both within and outside of their team, including identifying opportunities for them to do so
• Mentor other engineers on improving estimation accuracy and mitigating risks that may prevent on-time delivery
• Identify opportunities to improve the efficiency and effectiveness of the broader engineering team
• Identify opportunities to improve the technical proficiency of the broader engineering team
• Core competency in multiple product areas
• Active voice in shaping priorities and resource allocation for the team
• Participate in shaping longer term technical and architectural goals in consideration of product/company strategy, organizational growth, scalability, security, and other factors