Sourcegraph engineering career development framework

Our career development framework is here to help you understand the expectations of your role, and to provide a common language for you and your manager to discuss and plan your career growth. It is also an important part of our larger goal of ensuring everyone is equitably recognized for the impact they have at work, and to reduce bias in promotions and hiring.

What are the expectations of my role?

There are currently six levels for software engineers at Sourcegraph. A level is composed of three categories, each with a summary statement and several example behaviors. These categories are:

  • Proficiency: This is your demonstrated expertise on the skills relevant to your role and level. Proficiency changes in two ways as you progress in your career. You will increase your technical skills in both depth and breadth — often more heavily leaning on one or the other, but still growing both over time. Technical skills include, but are not limited to, quality of code and code reviews; knowledge of relevant technologies, code bases and tools; technical design skills. You will also add and grow other skills that make you a more effective contributor such as providing directional feedback within a relevant scope, giving feedback to others, and over time, setting scope by mapping between business goals, user needs, and technical solutions.
  • Execution: This is knowing how and acting on what it takes to be productive and achieve the right outcomes for Sourcegraph. Effective execution is generally accompanied by achieving impactful outcomes, but the key element is the skills and consistency you demonstrate to achieve the outcomes, not the specifics of an individual outcome. As you grow in your career, your focus will move from personal productivity and impact within your team to helping broader groups productively reach broader goals.
  • Teamwork: This is how you collaborate with others to make both them and yourself more effective. Teamwork includes how we interact with both teammates at Sourcegraph and external stakeholders such as our clients. At all levels we expect a professional and collaborative approach to teamwork. As you grow in your career, the span of people you regularly interact with will increase from your working group to multiple groups to stakeholders across and outside of the company. Your influence on our culture will grow from practitioner to champion to shaper.

It’s important to understand that what is listed in the level descriptions are example behaviors, and not checkboxes for promotion. Doing everything listed there is neither necessary nor sufficient for a promotion. The expectation is that you demonstrate a level of impact consistent with each of the category descriptions for your level. The magnitude of your impact is ultimately the measure of your career growth.

In most cases, a level builds on the expectations from the preceding levels: someone at level 2 must also meet the level 1 expectations. In addition to what is listed there, we expect engineers at all levels to exhibit our values.

Rather than precede each bullet point with “Consistently”, we leave it as implicit.

The level descriptions correspond to the start of the level, so that if an IC has a level N impact in all categories, they should then be promoted to level N (and not before). Or to put it another way, the level descriptions state the minimum expectations.

These are the expectations for ICs after they have completed their onboarding. Some of these expectations (such as around communication) would start on day 1, but others (such as expertise in the codebase) would not be expected until they are fully ramped up.

We expect every engineer to eventually reach at least level 3. It is the responsibility of your manager to track this, and to ensure that you are given the support and opportunities needed for career growth.

Successful engineers at Sourcegraph

In order to make the level descriptions below a bit more tangible, we also have the following document: Successful engineers at Sourcegraph.

When do I get promoted?

When your manager can make the case that you’ve had at least one quarter of high performance at your current level, and one quarter performing at the next level, in all three of the categories. It takes time to demonstrate the “consistently” implicit in the expectations, and we don’t want to promote anyone to a level in which they will struggle.

Promotions from one level to another are considered in our twice-yearly talent review. An in-band compensation increase (while staying at the same level) can happen at any time, in recognition of exceeding expectations in your current level without having yet met the expectations of the next level.

IC1 - IC6 Framework

IC1
IC2
IC3
IC4
IC5
IC6*

* Coming soon

As an IC you’ll progress on several axis:

  • From individual contributions to team contributions to departments to company
  • From tactical thinking to strategic thinking
  • From “Can work alone for X days” to “can work along with 3 others for X months”
  • From “Solves small problems” to “solves big problems” to “finds problems we need to solve”
  • From “has a hard time dealing with ambiguity” to god-like-world-building-powers
  • From practitioner to champion to shaper in regards to the influence on our culture

IC Levels

Level Proficiency Execution Teamwork Additional Notes/Key Points/Examples
IC1

An engineer focused on learning, growth, and establishing themselves as a contributing teammate. Entry level.

  • Prerequisites: Minimum relevant bachelor degree, or equivalent related experience.
  • Years of experience: Typically 0-2
  • 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.
  • Familiar with our docs and knows how to efficiently acquire knowledge.
  • Understands how Sourcegraph works @ the highest level.
  • 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.
  • Eager to learn and solve problems.
  • 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.
  • Reacts well to feedback and is able to quickly learn from it.
  • Entry level for professional careers. Still learning the role.
  • Core skills limited; requires detailed direction.
  • Focused on learning, growth, and establishing themselves as a contributing teammate.
  • Analogy: rode in a boat once; knows what sailing is.
IC2

A solid and autonomous contributor, executor, and collaborator. Completes assignments which have clear, near-term objectives. Operates independently to perform routine tasks.

  • Prerequisites: Knows the organization and understands the group’s basic terminology and techniques.
  • Years of experience: Typically 2-5
  • 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.
  • Not scared of foreign code and embraces it as a learning moment.
  • Able to manage their time appropriately to encourage efficiency.
  • 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.
  • Ability to unblock themselves even if that means asking for help.
  • Self-sufficient and able to deliver without much guidance including being able to seek and lead smaller projects.
  • 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.
  • Upholds team culture and levels the technical proficiency on the team up.
  • Task oriented, but gaining/demonstrating independence.Core skills functional.
  • Requires some direction.
  • Effectively delivers work without complaint; communicates being blocked; seeks help and communicates outcome.
  • Analogy: learns about sailing; takes orders on specific tasks (grab that rope).
IC3

An experienced, strong individual contributor (Senior equivalent). Represents an area of specialization within the organization. Independently resolves complex problems. Contributes to cross-functional projects. Trains others.

  • Prerequisites: Key differentiator from IC2 is the ability to prioritize and work under broad direction. Can resolve new and complex problems within an area of specialization.
  • Years of experience: Typically 5-8
  • 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.
  • Exposed and comfortable in leading larger projects.
  • 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 progress and status updates to stakeholders.
  • 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.
  • Mentors junior engineers and uplevels team culture.
  • Actively unblocks teammates.
  • Problem solver. Operates autonomously.
  • Strong core skills, requires minimal direction.
  • Analogy: helps sail the boat; knows basic roping techniques, does basic tasks without help.
IC4

A particularly experienced, impactful contributor. Brings domain expertise to complex projects. Role requires contribution outside the direct area of responsibility. Leads interdepartmental projects.

  • Prerequisites: Has domain-specific knowledge and expertise. Key differentiator from IC3 is the established track record of resolving complex problems and the demonstrated ability to lead cross-functional projects.
  • Years of experience: Typically 8+
  • 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.
  • Owns a project from the start including running it by a customer.
  • Able to make trade-offs knowing the impact that it will have.
  • 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.
  • Accountable for the team’s work quality and professionalism to ensure the team delivers high quality and work diligently to limit the problems for our customers or other teams.
  • Independently scopes and implements solutions to extremely complex problems, and identifies the problems to be solved.
  • Confident 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.
  • Identifies problems that need to be solved and executes on them.
  • 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.
  • Helps retain customer relationships and incorporates solutions/suggestions from them.
  • Ability to delegate and clearly communicate capacity needed to work on those areas.
  • “Go-to” expert. Usually project leader.
  • Contributes outside direct area of responsibility.
  • Can hand off projects to other team members successfully
  • Analogy: sails smaller sailboats solo; knows advanced rigging techniques, confident sailor in most weather.
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. Provides innovative breakthroughs to toughest challenges. Influences management on strategic direction. Will have an impact on multiple organizations, countries/regions and disciplines as well as outside companies. Not all career paths include level 5.

  • Prerequisites: Has unique knowledge and the ability to apply that knowledge to a broader context.
  • Years of experience: Not essential
  • 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.
  • Demonstrates deep domain knowledge where teammates seek their advice on domain/code.
  • Responsible for working on the right thing.
  • 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.
  • Identifies company wide trends and acts on risks.
  • Accountable for business outcomes.
  • Accountable for the team’s work quality and professionalism to ensure the team delivers high quality and work diligently to limit the problems for our customers or other teams.
  • 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.
  • Enables those around them to be successful.
  • Proactively provides feedback and flags concerns that are going on within the org.
  • Deep expertise/unique knowledge.Broad impact, broad context.
  • Provides breakthroughs & requires no direction.
  • Partners regularly with the exec team.
  • Analogy: occasionally takes the helm; navigates rough waters; knows how to sail different types of boats.
IC6

Senior Staff Engineer. We haven’t yet finalized the description of this level at Sourcegraph.

Management Levels

Level Proficiency Execution Teamwork Additional Notes/Key Points/Examples
M3

Accountable for the performance and results of a small team of professional individual contributors..

  • Years of experience: Typically 0-2
  • Has IC4 equivalent technical knowledge.
  • Understands the technical aspects of the team they manage.
  • Provides technical guidance to the team.
  • Still writes some code.
  • Ensures work is done to a high technical standard.
  • Follows management best practices including regular 1:1s, team meetings, planning and retrospectives.
  • Delivers feedback on career growth and impact review results.
  • Assists reports in setting goals for both impact and personal growth.
  • Builds their team through effective hiring and onboarding.
  • Proactively manages reports who do not meet our high performance standards.
  • Establishes a culture and processes that promote good decision-making.
  • Delegates work effectively and sets clear expectations for ownership and execution.
  • Operates a single area or a couple of smaller areas of our services, with one or two teams with several individual contributors who report to you.
  • Responsible for the operational, people, and roadmap aspects of your area.
  • Focused on the operational details of your area, understanding the needs of your customers, and ensuring your team is performing effectively to serve those needs.
  • Has IC4 equivalent teamwork expectations.
  • Proactively builds teams by implementing team processes and creating opportunities for teammates to connect.
  • Ensures team members are happy and engaged, as measured by impact reviews.
  • Proactively resolves interpersonal conflicts.
  • Collaborates with cross-functional partners to balance product needs with technical feasibility.
  • 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.
  • Helps retain customer relationships and incorporates solutions/suggestions from them.
  • Ability to delegate and clearly communicate capacity needed to work on those areas.
  • Manages a one or two teams team of individual contributor professionals.Greater than 50% of time spent on manager duties vs. individual contribution.
  • Responsible for managing teammates performance and annual impact reviews.
  • Analogy: captain of a smaller crew; takes people on day trips.
M4

Accountable for performance and results of a medium sized team or multiple small teams.

  • Years of experience: Typically 2+
  • Has IC5 equivalent technical knowledge.
  • Possesses a strong technical understanding of their team’s systems and a high-level understanding of our technical systems.
  • Provides technical guidance to their teams and other teams.
  • Ensures work is done to a high technical standard and helps define those standards.
  • Still writes code (per the Sourcegraph expectation that everyone writes code) but not necessarily on the critical path for projects.
  • Establishes high standards for development and architecture.
  • Develops team capabilities through training and strategic hiring goals.
  • Proactively cultivates leadership skills in team members.
  • Defines team goals and strategies that align with broader organizational goals.
  • Translates those goals and strategies into effective roadmaps for the team.
  • Operates a single complex area or a couple of medium sized areas of our services, with one or two teams with several individual contributors who report to you.
  • Continually improve and expand the operational footprint of your area as complexity/scope increases.
  • Effective at driving debate and goal setting with the manager team.
  • Has IC5 equivalent teamwork expectations.
  • Set the bar for operational, people, and roadmap aspects of your area and advise/coach other managers effectively on the process.
  • Coordinates priorities and commitments between teams to ensure the successful delivery of goals.
  • Develops strong technical leads to oversee the day-to-day of their teams.
  • 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.
  • Enables those around them to be successful.
  • Proactively provides feedback and flags concerns that are going on within the org.
  • Leads a medium-to-large sized team.
  • Responsible for managing teammates performance and annual impact reviews.
  • Individuals are more seasoned and have broader influence than M3.
  • Analogy: captain of a ship; takes mid-sized vessels on longer voyages through bumpy water (strong tactical decision-maker, handles unforeseen issues).
M5

Accountable for the performance, results and strategic direction of a department.

  • Years of experience: Typically 4+
  • Technical expectations in line with M4.
  • Stays up-to-date on industry trends and their impact on the business.
  • Generally manages managers.
  • Define goals and strategies for achieving those goals in a thoughtful and persuasive way.
  • Translates goals and strategies into effective roadmaps that coordinate efforts across teams, including those outside of their direct management.
  • Analyzes and communicates engineering and business tradeoffs.
  • Occasionally represents the company externally.
  • Accountable for the performance and results of a large organization, such as a regional function, a large product line, large sales areas or a global job family.
  • Provides leadership and mentoring to expert level individual contributors.
  • Hire and develop your teammates effectively.
  • Primarily focuses on cross-functional and cross-team collaboration.
  • Accountable for team building within teams, but effectively delegates most of it to managers or TLs.
  • Coaches managers and technical leads in team-building skills.
  • Adapts organizational structures to make teams most effective at meeting goals
  • Proactively minimizes organizational friction.
  • Typically reports to M6 or VP-level. Usually will be a “manager of other managers.
  • Sets priorities and the strategic direction of the department.
  • Role may have complexity such as multi-site/ country/ regions, or large team size.
  • Responsible for managing teammates performance and annual impact reviews.
  • Sizable financial responsibility relative to other roles within the function.
  • Requires very little direction.
  • Analogy: captain of a large ship; takes large vessels on long voyages through treacherous waters (strategic battle-tested leader, directs operational units).
M6

Accountable for the performance and results of a large organization, such as a regional function, a large product line, large sales areas or a global job family.

  • Years of experience: Typically 6+
  • Technical expectations in line with M4.
  • Embraces and drives change; stays up-to-date on industry trends and their impact on the business.
  • Understands the current landscape of our business; plans with business needs in mind.
  • Establishes processes and structures that promote effective execution and accountability.
  • Develops a high-level technical vision aligned with business needs and secures buy-in.
  • Represents the company externally on a regular basis.
  • Defines growth and hiring goals.
  • Own a significant business area - entire service or multiple services.
  • Set the goals for and own the operational responsibility for the entire business area.
  • Focus is on driving outcomes with significant impact through others.
  • Develop leaders in your area and you raise the bar on quality across the company.
  • Drive significant org changes across the company to improve throughput, retention and customer outcomes.
  • Collaborates with peers across the company to align goals across departments and disciplines.
  • Uses their visibility to set a strong example of our culture and values.
  • Likely reports to head of a major org (SVP or VP level).Often has very large team relative to the function.
  • Usually has global responsibility.
  • Likely has major financial oversight or influence on operational expenses.
  • Role is very strategic in nature with long-term impact.
  • Analogy: oversees several boat captains; capable of directing a fleet of large ships safely through a tropical storm (inspires action, coordinates simultaneous initiatives). Directs efforts of both air and ground search parties (Inspires action, coordinates simultaneous initiatives).