Overview

The Campaigns team is looking for an experienced engineer to help us build a new product that will define how our industry accomplishes large scale code changes. Campaigns enable developers to make changes across many repositories and code hosts, using code.

We’re a small, autonomous, international, full stack team. So we contribute in a lot of different ways: frontend/backend coding, technical writing, QA, supporting our customers, and working closely with Product and Design. If it matters to our users, then it’s part of the job.

We work together, laugh a lot, and are always learning.

Why this job is interesting

  • Campaigns solve a very real and painful problem that our customers want solved. Our team is totally focused on this concrete need. Since our customers provide ample feedback and are eager to test new features, continuously shipping to provide them value is highly rewarding.
  • We’re in the early stages of creating this product, and have a lot of autonomy and agency. As a result, we all have significant impact on the shape and direction of Campaigns. We can see our own fingerprints all over, making it all the more delightful when customers love our work.
  • We have all sorts of interesting challenges and opportunities for growth. Frontend and backend coding, architecture and design, authoring RFCs, testing, demoing to customers, collecting and incorporating feedback, supporting our customers… we do it all.
  • Our technical challenges are varied and fun: from git diff parsing to TypeScript, to efficiently querying REST/GraphQL APIs without overloading a code host, to building a “declarative distributed system” that reconciles state across code hosts, to designing the DSL that is our campaign spec, to building terminal emulation into our tests, it does not get dull around here.
  • We are still at the beginning of this journey, with so much cool work in front of us: better changeset sorting/filtering/management, automated labels/reviewers/merging, bringing the power of campaigns to monorepos, server-side execution, and more. And there are many more exciting ideas on our roadmap!
  • We’re a team full of funny, highly-skilled, empathetic developers who are all great communicators. Especially the manager, who is just all-around wonderful (and, it should be noted, is the one writing this).

What we need from you

We are looking for a full-stack engineer (or a frontend engineer with full-stack aspirations, eager to learn) who has strong fundamentals in good software development techniques and best practices, and who has built and deployed production-ready software that delivered value to customers.

Most of all, we’re looking for an engineer with whole-product concern and accountability. Someone who understands that success is measured by our customers, and that everything that impacts customer satisfaction is part of your job. If working directly with sales, marketing, support, and our customers feels like “that’s not my job,” then this is not your job. On the other hand, if you’ve shipped a product, beginning to end (for work or on the side, software or otherwise), we want to hear from you.

Beyond that, we’re looking for the following:

  • Experience creating single page applications using React or similar component-based frontend frameworks.
  • Skilled at writing clean, reusable CSS and semantic HTML to implement visual designs.
  • Familiarity with TypeScript or another typed programming language.
  • Experience (professional or otherwise) in at least one server side language, such as Go, Java, Python, PHP, or Ruby.
  • Familiarity with HTTP and web technologies/concepts such as REST and GraphQL.
  • Experience building and testing end-to-end applications (e.g. unit, integration, and e2e testing).
  • Good knowledge of Git in particular and other version control systems in general.
  • Able to write queries and design schemas in SQL, Postgres or other transactional, relational databases.

Not sure if this is you?

We want a diverse, global team, with a broad range of experience and perspectives. If this job sounds great, but you’re not sure if you qualify, apply anyway! We carefully consider every application, and will either move forward with you, find another team that might be a better fit, keep in touch for future opportunities, or thank you for your time.

Learn more about us

To create a product that serves the needs of all developers, we are building a diverse all-remote team that is distributed across the world. Sourcegraph is an equal opportunity workplace; we welcome people from all backgrounds and communities.

We provide competitive compensation and practical benefits to keep you happy and healthy so that you can do your best work.

Learn more about what it is like to work at Sourcegraph by reading our handbook.

Interview process

  1. You apply here.
  2. The Hiring Manager reviews all the information you provided on your application to determine if you meet our qualifications for this role (if there is another open role we think you would be better qualified for, we will let you know).
  3. Recruiter sets up a 30 minute call to learn more about what you are looking for, tell you about Sourcegraph, and answer any questions that you have.
  4. We set up a 1 hour interview with the Hiring Manager, who will tell you more about the role in the team. They will ask you about your past work and accomplishments and assess your suitability for the role.
  5. You complete a 3 hour coding exercise that we designed to test your technical ability and the responsibilities of the role as listed above.
    • Note: while we do not disqualify candidates who do not have React and TypeScript experience from taking the exercise, you will be required to use these for the exercise. We will take level of experience into account.
  6. An Engineer and a Designer will review and grade your submission. We will send you our review along with some follow-up questions.
  7. We schedule the following additional interviews, in no particular order, across multiple days:
    • 1 hour Team collaboration: We ask you about how you work and communicate in a team setting, how you handle tricky situations, decisions you made, and what you’d do differently today.
    • 1 hour Code collaboration: You pair with an engineer on a small task. Another engineer will observe, to reduce bias.
    • 30 minutes VP Engineering
    • 30 minutes CTO
    • 30 minutes CEO
  8. We check your references.
  9. We make you a job offer.

We want to ensure Sourcegraph is an environment that suits your working style and empowers you to do your best work, so we are eager to answer any questions that you have about us at any point in the interview process.

Click here to apply

Go back to the careers page for all open positions.