Working at Sourcegraph
Sourcegraph is building a code AI platform for developers and companies of all sizes, with the mission of making it so everyone can code. Coding is too complex for most people to get started, and it’s only getting worse as consumers demand more from software and code piles up. We’re making it less complex. The code AI platform includes 2 products: Code Search and Cody. Code Search makes it easy for developers to onboard to codebases quickly, make large scale refactors, and find and reuse code. Cody, our AI coding assistant, writes code and answers developers’ questions using their code graph as context, making it easy to learn about a codebase and start contributing.
Customer case studies
Cloudflare solve the big code problems they face every day with Sourcegraph. For example, engineers can quickly identify out-of-date code libraries by only searching certain repositories, while excluding specific file types. And it’s easier to search for error logs. As a result, the team can refactor and debug faster and feel confident they've addressed each issue.
CERN's Large Hadron Collider (LHC) features five-year operational periods and the software must be stable during this time. Sourcegraph helps developers make small, backward-compatible changes and ensures that any change made by a given team to one part of the codebase doesn't break (or require adaptations of) dependent code written by other people. It’s essential that these changes are done correctly, as mistakes can stop the operation of the CERN accelerators and waste precious time for physics research.
How engineering works at Sourcegraph
How are the teams structured?
The Engineering department at Sourcegraph consists of: Development, Product Management and Design. The org chart is available on the Sourcegraph website.
What tools do engineers use?
- Design: Figma
- Source Control: git & GitHub
- Issue tracking: GitHub
- Docs: Sourcegraph
- Devops: Sentry, Honeycomb, Incident.io
- Comms: Slack, Twitter, Blog
Can developers pick their own tools?
Yes, we generally believe everyone and every team should be able to choose the tools that enable them to best do their jobs. We have many different editors in use and a lot of the monitoring and deployment tools we use across the company now were spearheaded by individuals. That being said, there are some soft constraints around the introduction of tools and technologies that affect others' work. For example, we are open to using new languages if there is a reason to favor them over existing languages in our stack, but have a status quo bias toward our existing set of languages.
How does the development process work? What's the process for working through bugs, features and tech debt?
Sourcegraph assigns work using a Job Fair system, treating all engineering work as projects with business champions, tied to KPIs, and allowing the organization to work as a single, flexible labor pool of freelancers, simultaneously optimizing for business impact, velocity, and engineering career growth.
We generally use GitHub Issues and Projects as the roadmap source of truth. We have a biweekly product demo day for features and fixes that are shipping.
How does code get reviewed, merged, and deployed?
- Development happens in branches.
- Changes then are squash-merged into our main branch following code review from code owners.
- Deployment to sourcegraph.com is automatic after a change is merged into the main branch.
- We have a monthly release cycle for self-hosted customers, which is cut from the main branch.
What is the QA process?
Automated CI using Buildkite, with automated end-to-end tests.
What are some recent examples of interesting development challenges solved by internal teams as part of building the product?
- sg: internal tool for managing the Sourcegraph dev environment
- Sub-repository permissions: enforcing code permissions within repositories.
- Scaling up our infrastructure to support millions of open-source repositories and private code on sourcegraph.com.
- Both Notebooks and Code Insights were created as hack projects to help with onboarding, documenting code investigations and understanding high-level trends in our code, but they worked so well, we ended up productizing it and releasing them to our customers.
How does on-call work?
- OpsGenie for handling and routing alerts. Incident.io for collaboratively responding to incidents.
- We have an on-call rotation, but no one gets woken up in the middle of the night, because we distribute the rotation to our teammates around the world (fully remote).
Hiring process at Sourcegraph
How does the application process work? What are the stages and what is the timeline?
Applications are received through our careers page and we have a standardized engineering interview process plus a set of resources for candidates.
It is our goal to fill our openings as quickly as possible while maintaining a high quality bar and a strong candidate experience. Once a candidate begins the interview process with us, we aim to complete the interview process in 2-weeks or less.
The process typically looks like this:
- Recruiter screen (30m).
- Hiring Manager Screen (30-60m).
- Team interviews - technical interview (60m) + cross-functional team collaboration interview (60m).
- Values interview (30m).
- Leadership interview (30m).
What is the career progression framework? How are promotions and performance reviews managed?
Our Career Frameworks help us define the responsibility level and expectations of each role. Each level is defined by impact, seniority, knowledge, skills, and job title, and is associated with a specific pay band. There are currently six levels for software engineers at Sourcegraph. A level is composed of three categories These categories are:
Proficiency: This is the demonstrated expertise in the skills relevant to the role and level. Execution: This is knowing how and acting on what it takes to be productive and achieve the right outcomes for Sourcegraph. Teamwork: This is how you collaborate with others to make both them and yourself more effective.
More details on our Engineering Career Framework can be found here.
Our promotion philosophy is to support the growth & advancement of Teammates, in alignment with our values. Sourcegraph’s success is fueled by our incredible Teammates, which is why we foster a culture of continuous growth and accelerate opportunities to level up.
Promotion decisions are calibrated based on a Teammate’s achievements, execution at a higher job scope, and values alignment. The People Partner and Leadership Team are responsible for calibrating promotion nominations in alignment with our Impact Review process and bi-annual promotion cadence.
Our Teammates can pursue promotion opportunities in two ways:
- Through our promotion process to move up their specific Career Framework or Leadership track.
- By applying and interviewing for open positions that are approved in our headcount plan. This type of promotion may occur outside of a review cycle, but eligibility is determined by prior Impact Assessment.
The following criteria support promotions:
- A Teammate is already performing at the next level or job scope prior to promotion.
- The business need exists for the role to increase in job scope, or capacity requirements show additional headcount at a higher job scope is required (IC5+ and M4+).
- The promotion decision is occurring at a justified and fair rate.
More details on our talent assessment framework can be found here.
Console is the place developers go to find the best tools. Each week, our weekly newsletter picks out the most interesting tools and new releases. We keep track of everything - dev tools, devops, cloud, and APIs - so you don't have to.