Backend Engineer, Gitaly: Cluster

  • GitLab
  • Remote
  • 05 Feb, 2024

Job Description

The GitLab DevSecOps platform empowers 100,000+ organizations to deliver software faster and more efficiently. We are one of the world’s largest all-remote companies with 2,000+ team members and values that foster a culture where people embrace the belief that everyone can contribute. Learn more about Life at GitLab.

The GitLab DevSecOps platform empowers 100,000+ organizations to deliver software faster and more efficiently. We are one of the world’s largest all-remote companies with 2,000+ team members and values that foster a culture where people embrace the belief that everyone can contribute. Learn more about Life at GitLab.

At GitLab, developers are independent and self-organized individual contributors who work together as a tight team in a remote and agile way.  Most backend developers work on all aspects of GitLab, building features, fixing bugs, and generally improving the application. Senior Backend Engineers at GitLab work on our product. This includes both the open source version of GitLab, the enterprise editions, and the GitLab.com service as well. They work with peers on teams dedicated to areas of the product. They work together with product managers, designers, and frontend engineers to solve common goals.

Gitaly is the Git data storage tier of GitLab, providing a reliable, secure and fast distributed Git data store over gRPC. For more information about Gitaly, see the team’s Direction page. 

Gitaly’s high-availability storage requires developers who understand distributed storage systems, their management, observability and availability. Cluster team contributes features, fixes bugs and improves performance of this software stack.

Currently, we're building a new distributed cluster solution and improvements to our Disaster Recovery readiness.

Responsibilities

Within the Gitaly team specifically, in this role, you will:

  • Participate in architectural discussions and decisions surrounding Gitaly.
  • Design RPC interfaces for the Gitaly service.
  • Scope, estimate and describe tasks to reach the team’s goals.
  • Develop Gitaly in accordance with the product’s goals.
  • Instrument, monitor and profile Gitaly in the production environment.
  • Build dashboards and alerts to monitor the health of your services.
  • Conduct acceptance testing of the features you’ve built.
  • Educate all team members on best practices relating to high availability.
  • Participate in architectural discussions and decisions surrounding Gitaly.
  • Write performant, maintainable, and elegant code and peer review others’ code.
  • Be positive and solution-oriented.
  • Constantly improve the quality & security of the product.
  • Take initiative in improving the software in small or large ways to address pain points in your own experience as a developer.
  • Qualify developers for hiring.
  • Respond to user emergencies, platform alerts and support requests, including regular on-call duties.

Requirements

  • Mandatory: proven professional experience building, debugging, optimizing software in large-scale, high-volume environments.
  • Mandatory: proven professional experience writing and testing high-quality code.
  • Mandatory: a good understanding of building instrumented, observable software systems.
  • Highly desirable: proven professional experience writing and testing quality code in Go.
  • Highly desirable: a good understanding of git’s internal data structures or experience running git servers.
  • Highly desirable: experience with gRPC.
  • Highly desirable: willingness to learn Ruby.
  • Highly desirable: experience running highly-available systems in production environments.
  • You share our values, and work in accordance with those values.

Avoid the confidence gap; you do not have to match all the listed requirements exactly to apply!

To view the full job description and its compensation calculator, view our handbook. The compensation calculator can be found towards the bottom of the page.

Additional details about our process can be found on our hiring page.

Remote-Global
The base salary range for this role’s listed level is currently for residents of listed locations only. Grade level and salary ranges are determined through interviews and a review of education, experience, knowledge, skills, abilities of the applicant, equity with other team members, and alignment with market data. See more information on our benefits and equity. Sales roles are also eligible for incentive pay targeted at up to 100% of the offered base salary.
Colorado/Washington pay range
$98,000$189,000 USD
California/New York/New Jersey pay range
$98,000$210,000 USD

Country Hiring Guidelines: GitLab hires new team members in countries around the world. All of our roles are remote, however some roles may carry specific location-based eligibility requirements. Our Talent Acquisition team can help answer any questions about location after starting the recruiting process.  

Privacy Policy: Please review our Recruitment Privacy Policy. Your privacy is important to us.

GitLab is proud to be an equal opportunity workplace and is an affirmative action employer. GitLab’s policies and practices relating to recruitment, employment, career development and advancement, promotion, and retirement are based solely on merit, regardless of race, color, religion, ancestry, sex (including pregnancy, lactation, sexual orientation, gender identity, or gender expression), national origin, age, citizenship, marital status, mental or physical disability, genetic information (including family medical history), discharge status from the military, protected veteran status (which includes disabled veterans, recently separated veterans, active duty wartime or campaign badge veterans, and Armed Forces service medal veterans), or any other basis protected by law. GitLab will not tolerate discrimination or harassment based on any of these characteristics. See also GitLab’s EEO Policy and EEO is the Law. If you have a disability or special need that requires accommodation, please let us know during the recruiting process.