|
|
L1 – Software Engineer I
|
L2 – Software Engineer II
|
L3 – Software Engineer III
|
L4 – Staff Software Engineer
|
L5 – Senior Staff Software Engineer
|
L6 – Principal Engineer
|
L7 – Senior Principal Engineer
|
Software Design & Implementation
|
Quality
-
- Code style
- Documentation
- Automated testing
- Ease of integration
- Rarity of defects
|
-
Writes consistently good and maintainable code,
and needs little syntax/convention feedback.
-
Consumes documentation and only asks teammates
when documentation and effort don't yield results;
produces basic documentation.
-
Understands the basics of writing automated unit
& functional tests.
-
Consistently authors good test cases and achieves
good test coverage with the help of their team.
-
Writes most code without obvious bugs; knows how
to avoid common problems.
|
-
Writes consistently
great
code requiring
no
syntax/convention feedback.
-
Often
adds new and relevant documentation
to existing repositories of knowledge.
|
-
Understands the
organizational value
of great documentation and spends time to
maintain, update and extend
existing repositories of knowledge.
-
Advises
the rest of the team on quality of code, tests
& documentation.
-
Identifies
&
pragmatically applies
better code practices or tooling.
|
-
Creates & structures
documentation for large code projects concisely
& consistently.
-
Advises
their team and
other teams
on best practices for code, test &
documentation quality.
|
-
Considers
(and
proposes, when appropriate) new programming language & platform choices
for the organization.
-
Leads
efforts to improve documentation & code skills
sharing across teams.
-
Makes the
organization
more effective through smart &
pragmatic
application of non-cutting-edge but useful code
tools & patterns.
|
|
|
Architecture
- Composition & decoupling
- Code interface design
- Technical debt
- Data locality
- Data formats
- Performance
|
-
Some architectural design/approach feedback may
be necessary, but understands and applies
feedback consistently.
-
Is comfortable with the basics of code
interface design; is learning to be more
intentional.
-
Understands and can usually recognize technical
debt; can pay it down when advised.
-
Has some experience with data formats,
performance & locality; is learning
quickly.
|
-
Strong
architectural design & approach experience;
only the most complex
designs refined with senior teammates.
-
Good intuition
for code interface design; looks for opportunities
to learn from
other projects & teams.
-
Understands and
consistently
recognizes technical debt;
looks for opportunities to negotiate
and pay it down incrementally,
sometimes
with prompting.
-
Much more comfortable
with multiple data formats & their tradeoffs;
can
anticipate most
performance issues and make use of existing
patterns to solve them.
|
-
Deep
architectural & design pattern experience;
consults
for teammates on more difficult designs, and
sets up new projects
to ensure architectural success.
-
Understands and
plans with technical debt in mind;
negotiates
to pay it down incrementally and consistently,
advises and prompts
other teammates on technical debt.
-
Can solve
nearly all
performance and data issues within the context of
their team by applying experience & knowledge
sharing.
|
-
Works with Architecture team regularly to
define
& refine cross-team architectural approaches
with
extensive experience
& sharing.
-
Understands technical debt as a long-term budgeting and
risk management
tool; articulates
when to incur more and when
to pay it down.
-
Guides
organizational adoption of new data formats, data
stores, and patterns for performance & data
locality;
consults regularly across teams
on similar issues.
-
Sometimes employs prototyping for exploration of
designs.
|
-
Succeeds by introducing
simpler
and time-tested approaches to technical problems
to
several teams.
-
Fuses
organizational strategy
with technical architecture, including
cross-team
design & code sharing.
-
Uses prototyping as a
primary
tool for rigorous design exploration.
|
|
|
Running Systems
- Logging & metrics
- Profiling & debugging
- Monitoring & alerting
- Failsafe design
- Live production spelunking
|
-
Uses out-of-the-box tools to instrument and
monitor systems; works well with the monitoring
philosophy espoused by their team.
-
Can do basic code profiling alone and optimize
obvious offenders.
-
Understands the basics of failsafe design; can
implement with minimal prompting.
-
Has some comfort working with live production
systems, but may rely on teammates before taking
actions.
|
-
Customizes
out-of-the-box tools,
may create small custom tools
to instrument and monitor systems.
-
Helps tune and change
the monitoring philosophy on their team.
-
Can do
multi-application
and
multi-layer
profiling alone and optimize
almost all offenders.
-
Strong
understanding of failsafe design and regularly
implements and
occasionally
mentors
others on it.
-
Unqualified comfort
working with live production systems, debugging
issues and taking
careful
actions with
protections
against destruction.
|
-
Creates new
tools when necessary (and
avoids doing so
when not) to instrument and monitor systems;
defines, realigns
and understands cross-functional and cross-org implications
of team's monitoring philosophy.
-
Acts as a
primary mentor
on running systems for the rest of their
team.
|
-
Can solve
any
profiling challenge at
any layer
of the stack, down to
bits on disk/in RAM
and up to
multi-region clusters
of data.
-
Seeks out running systems mentorship opportunities
across teams.
|
|
|
|
|
|
Team Collaboration & Advice
|
Project & Team Scope
- Size & number of projects
- Regular participation scope across teams
|
-
Is a member of one or two small or medium projects
at a time.
- Works mostly with their own team.
|
-
Usually leads
one or two medium or large projects at a
time.
-
Recognized for
occasional
participation in
cross-team
relationships and projects.
|
-
Acts as an
ambassador
and
proactive connector
for their team with
other teams.
-
Usually leads at least
one major
project and sometimes
several medium projects
on their team.
-
Sometimes
leads cross-team projects
and plays a significant role in major
organizational initiatives.
-
Relied upon to keep
complex projects
on-track and sustainably implemented.
|
-
Works
between and across teams
almost as much as with their own.
-
Participates
in
major projects and initiatives
within and between teams, including working
groups.
-
Sometimes called in to
mitigate large risks
or solve
tricky problems.
|
-
Significant
contributor to Architecture team and
leader
of working group efforts across the organization.
|
-
Consults on
numerous medium & large projects across the
organization & actively connects different
teams & systems.
-
Leads
major strategic technical initiatives across many
or all teams.
|
|
Technical Collaboration
-
Communication of deeply technical subjects
-
Ability to disagree accurately &
constructively
- Reaching conclusions & committing
|
-
Communicates accurately about all technical
subjects in their work—both speaking/writing and
listening/understanding; spends more time learning
than explaining.
-
Can disagree and understand disagreement
constructively and non-defensively.
-
Fully embraces team solutions and commits to
delivery without issue.
|
-
Leads technical explanations when appropriate;
knows when to listen and give space to teammates.
-
Approaches disagreement with
inquisitiveness, empathy and the goal of a stronger solution;
models
this behavior for teammates; consistently
disarms conflict.
-
Guides
team toward a decision,
clarifies
and
gets buy-in, and holds self & teammates
accountable
for decision.
|
-
Facilitates
technical discussions between teammates; has
deep familiarity
with technical topics under discussion at all
levels.
|
-
Proactively
seeks out gaps in technical understanding,
especially
cross-functional, and works with a variety of teammates to fill
the gaps.
|
|
|
|
Communication & Empathy
- Clear, concise communication
-
Kindness, approachability and non-aggressive
style
-
Modifying communication based on listener's
perspective
-
Insight into listener's challenges & goals
-
Ability to communicate technical subjects to a
non-technical audience
|
-
Communicates concisely, effectively & clearly.
-
May sometimes need minimal coaching on
communication skills, but overall a strong speaker
and listener.
|
-
Coaching on communication skills is
rare and
exceptional;
very strong
speaker and listener.
-
Can usually explain technical subjects to
non-technical teammates.
|
-
Can explain
deeply
technical subjects to
non-technical
teammates with
ease.
|
|
-
Often
takes the lead to communicate technical topics to
technical &
non-technical directors
and business leaders.
|
|
|
|
|
L1 – Software Engineer I
|
L2 – Software Engineer II
|
L3 – Software Engineer III
|
L4 – Staff Software Engineer
|
L5 – Senior Staff Software Engineer
|
L6 – Principal Engineer
|
L7 – Senior Principal Engineer
|
Ownership & Accountability
|
Productivity, Time & Task
Management
- How much they can get done
- Ability to accurately estimate work tasks
-
Effective prioritization of tasks &
communication
- Timely completion of work
-
Full and thorough completion of all commitments
|
-
Accomplishes tasks within an acceptable time
frame.
-
Can estimate work tasks with help from teammates
& manager.
-
Understands & acts in accordance with given
priority of work tasks.
-
Consistently delivers work tasks based on prior
commitments and task definition to fulfill the
specification of work.
|
-
Maintains a
strongly consistent
personal velocity of work tasks.
-
Estimates work tasks accurately in most cases,
with
minimal oversight.
-
Understands,
negotiates
& applies work priorities correctly.
-
Knows when to
conclude
conversations, meetings, and pre-work tasks in
order to complete work on time.
-
Accomplishes
nearly all
work tasks in a timely manner; and
raises an alarm early
when tasks are off schedule.
-
Thoroughly
vets work requirements and helps refine them to
fulfill the intent of the requirements.
|
-
Leverages own abilities and practices to
mentor
and
improve
the productivity of the
entire team.
|
-
Successfully manages
cross-team
commitments and work completion.
-
Improves productivity of teammates across
multiple teams.
|
|
|
|
Project Accountability
-
Finding & filling gaps to complete projects
-
Effective communication with project
stakeholders
- Aiding others to reach project completion
|
-
Avoids surprising stakeholders whenever project
expectations change; communicates changes early
and often.
-
Consistently communicates with project
stakeholders about expectations.
|
-
Proactively
finds gaps in project plans and works with
stakeholders to specify them.
-
Effectively communicates project status and
expectation changes
without prompting.
-
May
occasionally
help teammates overcome obstacles and complete
project work.
|
-
Consistently
helps teammates overcome obstacles and complete
project work.
|
-
Enables and
improves cross-team collaboration
by helping individual teammates and working with
stakeholders.
|
-
Works with organizational leaders to improve
project accountability across
many or all
teams.
|
|
|
Production Support
-
Availability & responsiveness to production
issues
-
Appropriate & complete communication during
production issues
-
Effective escalation and management of
production issues
-
Thorough task & communication follow-ups for
production issues
- Participation in RCAs and follow-up work
|
-
Participates in team on-call or escalation
procedures and can resolve basic issues.
-
Communicates effectively to team about production
issues.
- Escalates issues appropriately.
- Takes good notes about production issues.
-
Participates in follow-up retrospectives and
completes assigned work as requested.
|
-
Can
comfortably
and
effectively
resolve issues
outside of their immediate scope
of experience.
-
Proactively
identifies risks
for production issues and works with stakeholders
to resolve.
|
-
Leads
definition & refinement of team on-call or
escalation procedures.
-
Can resolve
nearly all
issues escalated within their team.
-
Communicates about production issues effectively
with
public & leadership.
-
Acts as
primary owner
of production issues and
thoroughly
oversees them to completion.
-
Leads
RCAs, definition & assignment of follow-up
work.
|
|
|
|
|
Autonomy & Self-Starting
-
Ability to self-train on new projects &
technologies
- Resourcefulness in finding own answers
-
Awareness of the balance between consulting
teammates and making progress
|
-
Dives into new projects & technologies with
curiosity and a drive to understand.
-
Maintains a healthy amount of urgency and
consistency in their work.
-
Makes effective use of existing documentation,
examples and other resources to gain a solid
understanding before relying on teammates.
-
Knows
how to ask good questions
of their teammates and does so after trying
options on their own.
-
Has awareness of rabbit holes and doesn't burn too
much time on their own before consulting
teammates.
|
-
Gains adequate understanding of projects that
lack good documentation
or usage examples through systematic learning,
triage and discussions.
-
Contributes knowledge back
to projects to enable self-starting of other
teammates.
-
Very rarely
falls down rabbit holes.
|
-
Achieves
expert-level knowledge
of new systems & technologies through rigorous
learning, curious testing and prior experience.
-
Takes
primary responsibility
for improving projects to enable self-starting by
other teammates.
-
Avoids
rabbit holes through self-discipline, awareness
and resourcefulness.
|
|
|
|
|
|
|
L1 – Software Engineer I
|
L2 – Software Engineer II
|
L3 – Software Engineer III
|
L4 – Staff Software Engineer
|
L5 – Senior Staff Software Engineer
|
L6 – Principal Engineer
|
L7 – Senior Principal Engineer
|
Brand & Relationships
|
Product & Business Team
Relationships
-
Integration into product & business team
operations
-
Quality & depth of relationships with
product & business stakeholders
|
-
Understands how product & business teams
adjacent to theirs operate.
-
Builds & maintains a friendly relationship and
open channel of communication with product team
counterparts.
|
-
Works
proactively
with product counterparts to build strong
relationships within and
across teams.
-
Knows and
understands business
stakeholders’ motivations as it affects their
team.
|
-
Takes
primary responsibility
for relationships with product & business
stakeholders within and across teams to
better plan for and position
their own team.
-
Thinks about inter-team relationships
strategically
and work constantly to improve them.
|
-
Establishes
strong
relationships with product and business
stakeholders
across the organization
to facilitate their own cross-team scope.
|
|
|
|
Engineering Team Relationships
- Involvement in engineering strategy
-
Representing own team within engineering org
-
Quality of relationships with engineering
leaders
|
-
Understands team & organizational engineering
strategy and how they apply to their role &
team.
-
Works to represent self & team positively
within the organization.
-
May seek out relationships with engineering
leaders for mentorship or broader context.
|
-
Informs team engineering strategy by working with
their manager.
-
Actively participates
in execution and some planning of
organizational engineering strategy.
-
Seeks out
relationships with engineering leaders to build
understanding of organizational
strategy.
|
-
Decides & collaborates
on team engineering strategy with manager &
teammates.
-
Sometimes
involves self in organizational engineering
strategy.
-
Seeks to build
strong
relationships with engineering leaders across the
organization.
|
-
Effective
relationship builder throughout the engineering
organization.
-
Often
involved in strategic organizational plans.
|
-
Very effective
relationship builder among most or all engineering
leaders,
-
Proactively
involved in and
often leads
strategic
organizational decisions and plans.
|
-
Unquestionably strong
relationships with
all
engineering leaders in the organization.
-
Represents
role model
strategic engineering values and expertise.
-
Creates
& effectively manages many organizational
strategy plans.
|
|
External Representation
-
Thoughtfulness in positively connecting self and
team back to the brand (company, team, self)
-
Prominence & results from external
representation of company
|
-
Always represents self, team & company
positively to external audiences.
-
Thinks about how external communication affects
the brand and plans accordingly, sometimes with
help from teammates or leaders.
-
Not generally expected, but certainly encouraged
to represent company & team externally (e.g.
blog posts, meetup group talks, conference
speaking).
|
-
Might be
more proactive in seeking out external
representation opportunities.
-
Contributes
some
external blog posts.
|
-
Contributes &
solicits
blog post opportunities from teammates.
|
-
Consistently
represents self, team & company through
excellent blog posts.
-
Sometimes
represents self, team & company with external
speaking engagements.
|
-
Consistently
represents
self, team & company with external speaking
engagements.
-
May participate
in industry working groups on behalf of
company.
|
-
Acts as
primary contact
for any relevant industry working groups to
represent company.
-
Known among
some
industry groups for reputation at company.
|
-
Well-known among industry groups for reputation at
company.
-
Regularly cited & invited
as an expert within industry conferences for
expertise relevant to company.
|
|
|
L1 – Software Engineer I
|
L2 – Software Engineer II
|
L3 – Software Engineer III
|
L4 – Staff Software Engineer
|
L5 – Senior Staff Software Engineer
|
L6 – Principal Engineer
|
L7 – Senior Principal Engineer
|
Innovation
|
Contributing to Product Enhancements
-
Contributions to the product roadmap
-
Creating new abilities for the product team
|
-
Understands drivers behind product roadmap items
as it affects their team.
|
-
Sometimes
participates in roadmap feedback with product
team.
-
Looks for
opportunities to simplify product & technical
design.
|
-
Regularly
participates in the creation of the team roadmap
& ensuing feedback.
-
Builds a
reputation
for simplifying product & technical design
through
proactive
conversations.
|
-
Often
helps refine roadmaps
across teams
based on technical strategy & constraints.
-
Helps to
define & create
new product abilities by changing technical
strategy or constraints.
|
-
Proactively
seeks to
create or redefine
roadmaps with product & business counterparts.
|
-
Widely respected
for important contributions to product roadmaps
across the organization.
|
|
Driving Efficiency of Systems &
Practices
-
Opportunities for customer-impacting performance
improvements
-
Continuous improvement of development, team and
organizational practices to gain speed through
efficiency
|
-
Takes responsibility for customer-impacting
performance of systems on which they work.
-
Sometimes thinks about team practices; may suggest
improvements to team or manager.
|
-
Seeks to understand
and vet performance characteristics of new and old
systems;
shares
methods & knowledge.
-
Regularly
observes team practices & processes and
suggests
improvements to team or manager.
|
-
Consistently
pursues improvements to performance,
starting with
the impact to customers.
-
Thinks critically
about team practices & processes and
regularly
discusses improvements with leads & manager.
-
Observes
organizational practices & processes and
sometimes collaborates across teams
to improve them.
|
-
Applies
cross-team
experience to provide consistent and replicable
performance improvements for customers.
-
Regularly
discusses, tweaks and seeks feedback on
organizational practices & processes.
|
-
Takes
ownership & responsibility
for organizational practices & processes and
their continuous improvement.
|
|
|
Collaborating on Patents
- Surfacing patent opportunities
- Submitting patent applications
-
Protecting the brand via patent pre-clearance
for innovations
|
-
Understands company patent strategy and may
surface patent opportunities to team &
manager.
-
Collaborates on patent applications if asked.
-
Understands outside patent clearance guidelines
before writing new software.
|
-
Often
thinks about and surfaces patent opportunities to
team & manager.
|
-
Regularly
surfaces patent opportunities & risks to
manager &
Patents team.
|
-
Surfaces
cross-team
patent opportunities & risks to Patents team.
-
Ensures participation
from team members in idea disclosure and review
processes.
-
Works with Patents team to find ways to accomplish
goals with
minimized risk
with respect to
outside patents.
-
Works with Patents team to ensure company
protectable subject matter is identified during
collaborations with
third parties.
|
|
-
Takes
primary responsibility
for organizational patent opportunities &
risks.
-
Works
proactively
with Patents team to understand & refine
strategy.
-
Provides
opinions & due diligence
relating to
purchasable patent portfolios
when asked.
|
|
|
|
L1 – Software Engineer I
|
L2 – Software Engineer II
|
L3 – Software Engineer III
|
L4 – Staff Software Engineer
|
L5 – Senior Staff Software Engineer
|
L6 – Principal Engineer
|
L7 – Senior Principal Engineer
|
Vision |
Technical Strategy Mapping
-
Ability to articulate a vision for the future of
a technical context
|
-
Articulates a coherent future vision for a
component or components that they own within a
larger system.
|
-
Articulates a coherent future vision for
whole systems
and several components for which they have
responsibility.
|
-
Articulates a coherent future vision for
many systems
tended by their team.
-
Often assists
teammates with building and articulating visions
for their responsibility areas.
|
-
Articulates a coherent future vision for
systems that
span teams, or many systems
across teams.
-
Helps
define the model
of what good & appropriate technical visions
comprise.
|
|
-
Takes
primary responsibility
for building & articulating organization-level
technical visions.
-
Owns the definition & communication
of models describing good technical visions.
|
|
Integrity & Ethics
|
Fiscal Responsibility
-
Spend carefully and only when it's in service of
team & company goals
-
Ensure timely & accurate accounting of
business expenses
-
Understand cost impact of tools, applications
& services
-
Understand financial drivers of the business
|
-
Spends carefully and only when it's in service of
team & company goals.
-
Ensures timely & accurate accounting of all
business expenses.
-
Understands relevant financial drivers behind
projects or business initiatives.
|
-
Seeks out
and understands overall cost impact of
components for which they have
responsibility.
|
-
Proactively takes
responsibility
for cost management of team-owned systems &
resources.
-
Looks for opportunities to
increase cost efficiency
of team-owned systems & resources.
|
|
|
|
|
Privacy & Security
-
Understanding and applying privacy &
security principles
- Handling user data appropriately
- Reporting privacy & security concerns
|
-
Understands basic security & privacy
principles; always applies them to daily work.
-
Understands the importance & gravity of
handling user data and does so responsibly without
exception.
-
Immediately reports privacy or security concerns
to manager or Privacy/Security teams.
|
|
-
Works
proactively
with Privacy & Security teams to help
refine technical strategy
based on those constraints.
|
|
|
|
|
Honesty & Accuracy
- Realistic work estimates
-
Humility about lack of knowledge or experience
|
-
Understands and always tries to give consistent
and honest work estimates.
-
Usually understands the limitations of their own
knowledge and retains humility about their
experiences.
|
-
Almost always
understands the limitations of their own knowledge
and retains humility about their experiences.
|
-
Always
understands the limitations of their own knowledge
and retains humility about their experiences.
-
Encourages humility
in others through coaching.
|
|
|
|
|
Leadership
|
Mentorship & Guidance
-
Effectively mentoring and guiding teammates
one-on-one
-
Understanding the balance between giving answers
and providing opportunities to learn
-
Seeking out mentorship from teammates in
particular areas
-
Growing teammates to build redundancy or
replacement
|
-
Knows when to seek out mentorship to grow their
own experience.
|
-
Sometimes
mentors teammates one-on-one with or without
prompting.
-
Always
treats mentored teammates with respect and
kindness, regardless of their experience.
|
-
Proactively
mentors teammates one-on-one
without prompting.
-
Seeks out
opportunities to train other teammates with their
knowledge & skills to create
team redundancy
and
backfill ability.
|
-
Often
mentors teammates
across teams
based on experience & expertise.
-
Takes
full responsibility
for their own
succession
on their team, including planning, coaching,
mentorship & training.
|
-
Serves as a
role model
for mentorship within the engineering
organization.
-
Proactively
seeks out mentoring relationships.
-
Helps
improve mentors.
|
|
|
Broadcasting & Knowledge Sharing
-
Comfort speaking on technical subjects to groups
of engineers
-
Seek out opportunities to share unique expert
knowledge or experiences with broad groups of
teammates
-
Share knowledge externally via the company
technical blog
|
-
Feels comfortable explaining technical subjects to
their own team.
-
May broadcast to broader engineering groups
through Tech Talks or the company technical blog.
|
-
Feels comfortable explaining technical subjects
and receiving feedback
across teams, whether formally (Tech Talks) or informally.
-
Contributes to the company technical blog on a
regular basis.
-
May seek out speaking opportunities at local user
groups or conferences.
|
-
Likely
seeks out speaking opportunities at local user
groups or conferences.
|
|
-
Habitually seeks out
opportunities to share
pragmatic
experience and expert knowledge with teammates and
external engineers via Tech Talks, local user
groups and conference speaking engagements.
|
-
May speak externally on
cross-functional topics
to more diverse
non-technical audiences.
|
|
Influence & Alignment
-
Persuading and getting alignment across diverse
groups of teammates to accomplish a goal
-
Understanding the balance and power of making
quick decisions with incomplete information
|
-
Can persuade some direct teammates based on the
merits of a technical approach.
-
Makes well-informed technical decisions with all
or nearly all of the information required.
|
-
Balanced with good listening, can persuade their
entire team
of particular
tactical
approaches to problems.
|
-
Regularly
achieves strong alignment with their
own team.
-
Sometimes persuades
other team leads
of a new approach based on sound
tactical or strategic
reasoning.
|
-
Regularly influences
multiple teams
to align around a cross-team goal.
-
Can deal with some information ambiguity in
decision making, but may make most decisions based
on solid evidence.
|
-
Consistently works at a
strategic
level, influencing technical & non-technical
decisions to achieve cross-team alignment on
major near-term goals.
|
-
Successfully
shapes
organizational strategy
with
long-term
considerations from technical
architecture.
-
Can persuade teammates at a tactical level with
a lot of information, or the
entire organization
with
limited information
and sound, relevant experience.
|
-
Strongest
technical influencers in the organization, with
widely held respect and very
forward-thinking
plans.
|