Customer support career framework

Our career level framework is meant to help you understand the expectations of your role and provide a common vocabulary for you and your manager to discuss and plan your career development on the CS team (in addition to where you might want to take your career in the future as outlined in our career roadmap practice). Having shared and visible expectations (as well as a common vocabulary) gives us an accountability framework to reduce bias in promotions/hiring and ensures that we are equitably recognizing everyone for their impact.

What are the expectations of my role?

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

  • Proficiency
  • Delivery
  • Teamwork

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 consistently over a span of months within 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 support engineers at all levels to exhibit our Sourcegraph company values.

Rather than precede each bullet point with “consistently,” we leave it as implicit and we define this as X happening consistently over a period of at least ~6 months. It’s great to do something once, but the real measure of impact is if you are able to do that again and again over a substantial enough period of time.

The level descriptions state the minimum expectations after you have completed your onboarding. For example, if you were hired at a level 2, we would expect that you are having the impact outlined for both levels 1 and 2 once your onboarding is complete. This also means that before being promoted to level 3, for example, you would be expected to be already doing what is listed in level 3 before a promotion is possible.

We expect you to understand where you are at in the framework and always have something clearly defined that is pushing you to outgrow yourself to reach the next level. The process and timeline will vary person to person and should be captured in your career roadmap.

When do I get promoted?

Promotion discussions occur when your manager can make the case that you’ve had at least 12 months of consistent high performance at your current level, and at least 3 months performing consistently at the next level, in all three of the categories. Again, it takes time to demonstrate the “consistently” implicit in the expectations and we want to ensure that you are set up for success to perform at your current level.

Promotions from one level to another are considered in impact reviews conducted by CS leadership in collaboration with you individually. 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.

SE Regional Team Leads

Team Leads are designated senior ICs that are elevated within the team to take on additional responsibilities in support of the overall success of the team and individuals. These individuals are not full-time managers but are intentionally given less IC scope than their peers so that they can contribute to higher level initiatives within the team and organization.

As a Team Lead, you will have additional responsibilities beyond those your IC level, including:

Facilitator: Ensure adherence to established processes and facilitate team meetings. Act as a leader for the Support team in the absence of the Manager.

Coordinator: Coordinate changes or requests, ensuring they are properly facilitated and communicated between teams.

Mentor: Provide technical and soft skills mentorship to engineers. Assist with resolving complex technical issues and develop the customer service skills of the team.

Liaison: Listen to feedback and concerns from team members and customers, and bring them to the appropriate parties. Conduct regular 1:1 meetings and other ad hoc communication to stay aware of potential areas for improvement.

Levels

Level Non-Technical Proficiency Technical Proficiency Delivery Teamwork
IC1
An individual new to the field with no prior industry experience; focused on learning, growth, and establishing themselves as a contributing member of the team. Entry Level.
  • Troubleshoots and resolves common customer issues with guidance.
  • Demonstrates the essential needed to do work in our domain (as outlined in our guiding principles).
  • Willingly receives feedback from teammates to delivers positive outcomes for customers and the team.
  • Increases their knowledge of Sourcegraph, our customers, team, general processes and workflows through reading, observing, and doing.
  • Has a basic understanding of Linux.
  • Has a basic understanding of Git.
  • Has a basic understanding of databases.
  • Has limited working proficiency with code hosts.
  • Is familiar with containerized runtimes like Docker and Kubernetes.
  • Has a basic understanding of Sourcegraph main product areas.
  • Under the guidance of their manager, can create a plan to consistently deliver on their commitments, while creating space to allow for learning, growth and rest.
  • Exercises profound compassion, with colleagues and customers.
  • Recognizes when they are blocked and asks for support.
  • Actively asks teammates, including cross-functional (e.g. engineering), questions to seek feedback and clarity.
  • Participates and demonstrates curiosity in team meetings.
  • Follows documented team processes and seeks clarification when in doubt.
  • Communicates with candor and transparency.
IC2
An individual beginning to autonomously contribute, execute, and collaborate on routine customer issues while developing their skills. Support Engineer.
  • Solves customer issues, sometimes with guidance, and is able to collaborate with their teammates to help them troubleshoot problems.
  • Consistently embodies our guiding principles in the cases that they take responsibility for.
  • Externally, is able to effectively and proactively communicate with customers, facilitating collaboratively as appropriate.
  • Integrates feedback from teammates to deliver high-quality solutions.
  • Increases their communication, product, technical (dev or ops), collaboration, and facilitation knowledge/skills through reading, observing, and doing.
  • Is proficient in the primary elements of deployment types (Docker and Kubernetes).
  • Has professional working proficiency of Git.
  • Has professional working proficiency of all code hosts - GitHub (Cloud or Self-hosted), GitLab (Cloud or Self-hosted), Bitbucket Server, Bitbucket Data Center, or Perforce.
  • Has a strong understanding of Sourcegraph main product areas (Search, Batch Changes, Insights, Monitoring, etc)
  • Has a strong understanding of databases.
  • Has a strong understanding of containerized runtimes like Docker and Kubernetes.
  • Has a strong understanding of cloud technologies.
  • Manages their day-to-day workflow appropriately to reliably deliver on their commitments, adhering to all defined team processes and workflows.
  • Asks for guidance in unfamiliar areas or for underspecified tasks and speaks up if is not at ease with what they understand they need to do.
  • Has a general understanding of how users interact with our product/infrastructure.
  • Is able to establish rapport with customers and colleagues to achieve meaningful and productive conversation.
  • Their tickets are maintained and kept up-to-date to allow for accurate team-level reporting.
  • Actively participates and is able to initiate conversation in team and cross-functional meetings.
  • Suggests improvements to team processes and helps keep the handbook up-to-date.
  • Communicates thoughtfully and intentionally, both synchronously and asynchronously.
  • Is flexible to change.
  • Resists group think and helps the team maintain productive, healthy dialogues.
IC3
A mid-level individual contributor beginning to independently solve for more complex customer issues. Senior Support Engineer
  • Is able to effectively facilitate troubleshooting calls with customers independently.
  • At any point in time, anyone can review their cases alongside our guiding principles and definitions of success, and they meet these at least 95% of the time.
  • Externally, they lead all plans for issue resolution, maintaining clear and transparent communications with customers throughout; they identify next steps and followthrough to completion.
  • Is skilled at diffusing customer frustrations/escalations.
  • Writes validated customer-facing documentation updates related to the dev ops aspects of our product.
  • Can explain the reasoning and trade-offs behind their decisions, including technical decisions.
  • Provides helpful, timely case documentation and/or code reviews.
  • Invests in their own growth; willingly exploring new tools, skills, areas of the codebase, etc.
  • Is an expert in all deployment types.
  • Has advanced knowledge of Sourcegraph main product areas and is a subject matter expert in at least one product area (Search, Batch Changes, Insights, Monitoring, etc)
  • Has advanced knowledge of cloud technologies.
  • Has full professional proficiency of Git.
  • Has a working understanding of 1 or more of Sourcegraph’s codebase languages (Go, Javascript, Python, Typescript) while developing proficiency in the rest.
  • Prioritizes their work in alignment with team/company goals and objectives.
  • Scopes and implements solutions to pre-defined problems, with guidance.
  • Detects problems (in the product or our processes) that could erode the customer experience and actively engages to resolve them.
  • Firmly grasps how users interact with our product/infrastructure.
  • Is skilled in establishing rapport with customers and colleagues, and consistently delivers results on time.
  • Communicates clearly, both synchronously and asynchronously, escalating blockers quickly, clarifying requirements and sharing assumptions and context.
  • Sets the example on defining/modifying team processes; participating in identifying problems, suggesting improvements, and helping with solutions.
  • Proactively adds and edits handbook documentation to help others.
  • Offers timely, helpful feedback to others and trusts them to decide to what extent to incorporate it.
  • Helps onboarding and orienting new team members.
  • Participates in the hiring process where possible, conducting interviews (with training) and writing helpful feedback.
IC4
A senior-level individual contributor that has demonstrated capabilities to consistently resolve more complex customer issues independently. Senior Support Engineer
  • Is an expert in their domain: they have a deep understanding of our product and codebase/dev ops practices, and are a skilled communicator, collaborator and facilitator.
  • Has in-depth knowledge of the existing codebase and stays abreast of new refactors, omissions, etc.
  • Finds technical solutions to open-ended, ambiguously-defined problems (in our product or centered on the support team/workflow).
  • 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 insightful feedback on higher-level aspects (architecture, scalability, customer-focus, etc.) in case/code reviews and RFCs, holding teammates to the same high standard they set for themself.
  • Maintains awareness of approaches outside of Sourcegraph that we’re not using, and uses this to help define best practices for the team/domain.
  • Is a subject matter expert in all deployment types, and acts as a mentor to IC1s and IC2s.
  • Is an expert in cloud technologies.
  • Is well-versed in all Sourcegraph features and contextual concepts.
  • Is an expert in Git.
  • Has full proficiency in all code hosts and working knowledge of at least one other code host apart from GitHub, GitLab, BitBucket or Perforce.
  • Is proficient in writing code in Go, Javascript, Python or any of our core programming languages.
  • Writes maintainable, well-tested code (for our product or for team tooling) that aligns with the style and practices of the team/codebase.
  • Independently scopes and implements solutions to complex, loosely-defined problems.
  • Estimates methodically, based on iterative learning, and sets realistic expectations/timelines that drive effort and support healthy work habits.
  • When faced with roadblocks, identifies appropriate courses of action, engaging others or unblocking themself as appropriate.
  • Is accountable end-to-end on everything for which they take responsibility.
  • Proactively identifies areas for improvement and balances new work with the necessary day-to-day tasks needed to keep the team operating well to provide a positive customer experience.
  • Communicates technical and non-technical issues and decisions clearly, bringing clarity to discussions, and helps to drive the process forward.
  • Routinely drives improvements in team/company processes (retros, planning, etc).
  • Considers the effects of their work and words on other teams, and represents the Support team well in discussions with cross-functional teammates, customers, and stakeholders.
  • Shares their experience and expertise to help others grow, through mentoring and coaching where possible.
  • Proactively proposes additions and changes to the team’s forward plans.
IC5
A particularly experienced individual who excels in their capabilities with a focus on leadership and growth; possesses unique knowledge and ability to navigate the most complex customer issues and inquiries; takes on an active role in mentoring IC1s-IC4s. Staff Support Engineer
  • Makes high-quality technical and non-technical decisions leading team-sized tasks that affect one or more complex systems or mission-critical areas.
  • Consistently incorporates non-technical factors into technical decisions and weighs them appropriately.
  • Has proficiency beyond their domain areas, understanding more about business operations and/or engineering scope/efforts.
  • Invests in technology, tools, and processes that benefit their entire team.
  • Lifts their teammates through feedback, mentorship, and sharing reusable patterns.
  • Is a subject matter expert in all Sourcegraph features and contextual concepts, and regularly helps unblock and enable their teammates.
  • Has full proficiency in all code hosts and working knowledge of multiple other code hosts apart from GitHub, GitLab, BitBucket or Perforce.
  • Is an expert in writing code in Go, Javascript, Python or any of our core programming languages.
  • Independently scopes and implements solutions to extremely complex and/or vague customer issues, 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/customer experience.
  • Proactively identifies areas for improvement beyond the scope of our team and contributes meaningfully to solutions while continuing to deliver on our team’s goals.
  • Is thoughtfully (and with empathy) 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 go forward plans.
  • Operates in a way that demonstrates self-awareness (often identifies feedback before anyone has to give it to them) and active intentionality (has a plan before they communicate/act).
IC6
This role has not yet been defined. Principal Support Engineer