IC1 |
An engineer focused on learning, growth, and establishing themselves as a contributing teammate. |
Possesses and demonstrates core technical skills, while focusing on learning and improving in everything they do.
|
Able to achieve positive outcomes on small well defined problems.
|
An engaged member of their team.
|
- Contributes technical solutions to well-scoped tasks, with guidance.
- Demonstrates the essentials needed to do work in their domain.
- Reviews code for their teammates by asking questions and applying what they learned.
- Integrates feedback from teammates to deliver high-quality solutions.
- Increases their technical knowledge through reading, observing, and doing.
|
- Manages their own time and wellbeing, meeting commitments while finding balance and creating rest.
- Asks for guidance in unfamiliar areas or for underspecified tasks. Speaks up if not comfortable with the scopes or timelines.
- Exercises user empathy, whether their users are internal or external.
- Recognizes when they’re blocked and asks for support.
|
- Actively asks teammates questions to seek feedback and clarify, including cross-functionally (e.g. Design and Product).
- Participates and demonstrates curiosity in team meetings.
- Follows documented team processes and helps keep the handbook up-to-date.
- Communicates empathetically.
- Is flexible to change.
|
IC2 |
A solid and autonomous contributor, executor, and collaborator. |
A solid technical contributor who produces high-quality code.
|
Autonomously executes on the team’s short-term goals and actively contributes to project planning.
|
A solid communicator and proactive collaborator.
|
-
Proficient in core technical skills of their primary focus area, while
continuing to develop proficiency in some aspects.
- Writes maintainable, well-tested code that aligns with the style and practices of the team/codebase.
- Can explain the reasoning and trade-offs behind their technical decisions.
- Provides helpful, timely code reviews.
- Invests in their own productivity; willingly explores new tools, skills, and areas of the codebase.
|
- Breaks down tasks, plans, estimates and cuts scope as appropriate to deliver reliably.
- Prioritizes their own work in alignment with team goals.
- Detects problems in requirements and actively engages to resolve them.
- Has understanding of how users interact with their product/infrastructure.
- Reliably delivers results on time.
|
-
Communicates clearly (in meetings and asynchronously), escalating blockers
quickly, clarifying requirements and sharing assumptions and context.
-
Exemplifies team processes; participates in identifying problems, suggesting
improvements, and helping with solutions.
-
Proactively adds documentation to help others; is learning to present
internally and externally.
-
Gives timely, helpful feedback to others and trusts them to decide to what
extent to incorporate it.
-
Helps onboarding and orienting new team members; mentors more junior team
members where possible.
-
Participates in the hiring process where possible, conducting interviews
(with training) and writing helpful feedback.
|
IC3 |
An experienced, strong individual contributor (Senior equivalent). |
An experienced, versatile technical contributor who demonstrates foresight in technical decision making.
|
Independently scopes and implements solutions to complex, loosely-defined problems.
|
A strong, clear communicator, making collaboration happen where it should to move their team forward and a particularly valuable contributor to discussions.
|
-
Expert in their domain: deep understanding of their team’s code, debugs
their team’s code expertly, and has mastered their tools (Git, $EDITOR,
profiler, etc).
- Willingly dives into unfamiliar areas of the codebase.
-
Finds technical solutions to open-ended, potentially ambiguously defined
problems.
-
When finding solutions, identifies the core problems that need to be solved,
as well as goals, risks, trade-offs, customer impact, technical debt,
non-technical factors, etc.
-
Gives feedback on higher-level aspects (architecture, scalability,
customer-focus, etc.) in code reviews and RFCs, holding teammates to the
same high standard they set for themselves.
-
Maintains awareness of approaches outside of Sourcegraph that we’re not
using, and uses this to help define best practices for the team/domain.
|
- Independently scopes and implements solutions to complex, loosely-defined problems.
-
Estimates methodically, based on iterative learning. Sets realistic
deadlines that drive effort but support healthy work habits. Cuts scope as
needed, mitigating risk by shipping frequently.
-
When faced with roadblocks, identifies appropriate courses of action,
engaging others or unblocking themselves as appropriate.
-
Accountable end-to-end, through planning, shipping, cleanup, and
maintenance. Proactive about potential issues without overengineering.
-
Proactively identifies areas for improvement and improves common code,
balancing new feature development with refactoring, upgrades, cleanups, etc.
|
- Communicates technical issues and decisions clearly, brings clarity to discussions and helps drive them forward.
- Routinely drives improvements in team/company processes (retros, testing, on-call, planning, etc.)
- Considers effects of their work and words on other teams and represents the team well in discussions with other teams, customers, and stakeholders.
- Shares their experience and expertise to help others grow, through mentoring and coaching more junior engineers where possible, insightful code/design/RFC reviews, etc.
- Proactively proposes additions and changes to the team’s roadmap.
|
IC4 |
A particularly experienced, impactful contributor.
|
An engineer whose technical expertise benefits their entire team.
|
Supports the EM and PM in ensuring that the team is always working on the right problems with the right scope given higher level goals, and that the team is reliably delivering on time.
|
A very strong communicator who drives cross-functional collaboration efforts and the long-term direction of their team.
|
- High-quality technical decision making, leading team-sized tasks that affect one or more complex systems or mission-critical areas.
- Consistently incorporates non-technical factors into technical decisions and weights them appropriately.
-
Proficiency beyond their domain: broad understanding of our architecture,
debugs expertly across the broader codebase, advises on broader technical
issues, etc.
-
Invests in technology, tools, and processes that benefit their entire team,
and lifts teammates through feedback, mentorship, and sharing reusable
patterns.
|
- Independently scopes and implements solutions to extremely complex problems, and identifies the problems to be solved.
- Remains composed in: ambiguous situations, challenging situations, situations involving multiple stakeholders, etc.
- Intentionally and proactively aligns their work around a deep understanding of how people use the products/services they build.
- Proactively identifies areas for improvement beyond the scope of their team, and contributes meaningfully to solutions while continuing to deliver on their team’s goals.
- Works closely with EM/PM to validate technical feasibility of team roadmap.
|
- Effectively able to convince and challenge teammates and cross-functional stakeholders using valid expertise and respectful communication.
- Actively seeks dissenting opinions, disconfirming evidence, etc.
- Shares a long-term vision that influences the team’s roadmap.
|
IC5 |
A Staff Engineer, responsible for identifying impactful problems aligned with business objectives that need to be solved and then driving the solution to those problems.
|
A respected technical leader, on and off their team.
|
Defines deep or broad goals that align with top level company goals, and ensures delivery to meet business needs.
|
An extremely strong communicator doing outstanding stakeholder management.
|
- Sets the technical vision for their team, and influences the broader technical vision.
- Initiates and drives projects with broad/deep impact that enable higher quality work.
- Provides oversight, coaching, and guidance through code and design reviews, both on and off the team.
- Acts as a trusted advisor, drawing on functional expertise to inform customer-driven strategy.
|
- Proactively identifies areas for improvement across engineering. Suggests process and methodology improvements.
- Works closely with Engineering/Product leadership to validate alignment of team roadmaps within their org.
- Independently scopes, designs, and delivers solutions for large, complex challenges.
- Operates with calm and grace in ambiguous/uncertain situations. Does not shy away from taking calculated risks.
|
- Provides technical expertise internally and externally, informing what can be achieved.
- Regularly shares knowledge to influence and up-level large and/or senior audiences.
- Persuades and challenges clients and internal stakeholders, using valid expertise and respectful communication.
- Responsive to a variety of unexpected requests for advice or consultation; gracefully handles more frequent context-switching.
|
IC6 |
Senior Staff Engineer. We haven’t yet finalized the description of this level at Sourcegraph.
|