Repo Management Internship Info

Welcome to our internship page! We hope you will find useful information about internships on the Repo Management team, our hiring process, and what you can expect as an intern with us!

Open Intern Roles

We don’t currently have any open internship roles.

Hiring Process

Our interview process focuses on identifying somebody that we think will succeed during their internship. Our definition of success has multiple parts:

  1. You owned a real project and delivered real value to our customers
  2. You enjoyed your work during the summer and didn’t feel stressed or anxious
  3. You enjoyed working with our team and our team enjoyed working with you
  4. You resonate with Sourcegraph, our values, and our mission

We have multiple steps to learn more about you and for you to learn more about us.

Recruiter and Hiring Manager Screens

You will meet with our Recruiter and our Engineering Manager to talk about your background and why you’re a good fit for this role and our team. We want to learn about your interests, strengths, and why you’re excited about Sourcegraph and Repo Management. Our goal is to determine if you would enjoy this internship and find success as defined above.

Pairing Interviews

Once you clear the Recruiter and Hiring Manager screens, we will ask you to collaborate with our team on two, 1 hour pairing interviews. We think these interviews are the best way to determine if you will enjoy working with our team, if we will enjoy working with you, and if you have the technical foundations to succeed during the internship.

How We’ll Work
  1. We will pair with you on a scheduled 1 hour call.
  2. We expect you to share your screen during the session.
  3. We also expect that there will be communication from both sides of the call.
  4. You can pick any programming language/library that you are familiar with (Go is preferred)
  5. You can use online documentation
  6. It is OK to ask questions or guidance as you would a fellow developer you work with
What We’re Looking For
  1. Someone we want to work with
  2. Code that is working correctly
  3. Code that is easy to understand, maintain, extend in the future
  4. Someone that can explain the code and their thought process to fellow developers
  5. Someone that can communicate well and reacts to feedback positively

We have two different interview prompts, detailed below with a few specifics revealed during the interview itself.

Pairing Interview 1

We’re going to ask you to build a client library for a publicly available HTTP API that responds in JSON. We will ask you to write different methods that interact with the API, tests to confirm the methods work correctly, and error handling for edge cases. We will make requests using your client from the command line. We may chat about potential ways to improve the implementation for the future, e.g. making it production ready.

Things you’ll need for the interview
  1. A working editor / IDE environment for your language of choice
  2. A way to parse command line flags
  3. A way to make HTTP requests (e.g. http for Go, Requests for Python)
  4. A way to parse JSON responses from the API

Pairing Interview 2

We’re going to ask you to incrementally add a new set of features to an existing code base. The catch? The codebase is low-quality. Refactoring is definitely required before any new features can be added on. The codebase includes support for multiple languages and includes a test suite, which helps provide quick feedback as the candidate iterates on their solution.

Things you’ll need for the interview
  1. A working editor / IDE environment for your language of choice

Cross Team Collaboration Interview

Nothing happens at Sourcegraph without strong collaboration with others. A successful internship will also require you to work with our Product Manager (PM) and other stakeholders. In this interview, you will meet with our PM for 30 minutes to discuss how you’ve successfully collaborated with others in the past.

Values Interview

See Values Interview !