An overview of this role

GitLab’s Git storage layer lies at the foundation of its version control solution, and making Git access fast, scalable, and reliable is critical. As part of the Gitaly:Git team, you’ll work to improve performance and find new ways to improve and scale Git access by designing and implementing improvements to our Git storage layer including integrating existing Git features as well as developing new features in the Git project itself.

Some examples of our projects: 

  • Bundle URIs for fetches and clones
  • Replace Git’s existing files refs backend with a reftable backend
  • Server side repository backups

What you’ll do  

  • Develop features and improvements to the GitLab product in a secure, well-tested, and performant way
  • Develop improvements and features to the Git open source project
  • Collaborate with Product Management to maintain a high bar for quality in a fast-paced, iterative environment
  • Advocate for improvements to product quality, security, and performance
  • Solve technical problems of moderate scope and complexity.
  • Craft code that meets our internal standards for style, maintainability, and best practices for a high-scale web environment.
  • Conduct Code Review within our Code Review Guidelines and ensure community contributions receive a swift response.
  • Recognize impediments to our efficiency as a team ('technical debt'), propose and implement solutions
  • Represent GitLab and its values in public communication around specific projects and community contributions.
  • Confidently ship small features and improvements with minimal guidance and support from other team members. Collaborate with the team on larger projects.
  • Participate in Tier 2 or Tier 3 weekday and weekend and occasional night on-call rotations to assist in troubleshooting product operations, security operations, and urgent engineering issues.

About the team

The Gitaly:Git team aims to make Git access fast, scalable, and cost effective for GitLab users. Much of this happens through the Gitaly service, a backend gRPC service written in Go that shells out to Git for Git operations. With ever growing repository sizes and Git workloads, scaling the Gitaly service is not a trivial task. This involves improvements to areas of the Gitaly service to decrease latency, to handling traffic spikes in intelligent ways, to optimizing certain commands in Git itself to speed up operations, to novel ways of handling and storing Git data. Working at the lowest levels at GitLab, these improvements are felt all the way up the stack from UI responsiveness in the GitLab application, to Git push latency, and how long CI/CD jobs take.

You can see what we are working on in our Team page.

How GitLab will support you

  • Benefits to support your health, finances, and well-being
  • All remote, asynchronous work environment
  • Flexible Paid Time Off
  • Team Member Resource Groups
  • Equity Compensation & Employee Stock Purchase Plan
  • Growth and development budget 
  • Parental leave 
  • Home office support

Please note that we welcome interest from candidates with varying levels of experience; many successful candidates do not meet every single requirement. Additionally, studies have shown that people from underrepresented groups are less likely to apply to a job unless they meet every single qualification. If you're excited about this role, please apply and allow our recruiters to assess your application.

Remote-Global

What you’ll bring 

  • At least 5 years experience in software engineering
  • Proven professional experience writing and testing quality code in Go
  • Experience with C or a willingness to learn and to contribute to Git
  • A solid understanding of distributed systems
  • Experience with Ruby on Rails is a plus
  • Experience with Kubernetes is a plus
  • Proficiency in the English language, both written and verbal - sufficient for success in a remote and largely asynchronous work environment
  • Experience with performance and optimization problems and a demonstrated ability to both diagnose and prevent these problems
  • Comfort working in a highly agile, intensely iterative software development process
  • An inclination towards communication, inclusion, and visibility
  • Experience owning a project from concept to production, including proposal, discussion, and execution
  • Self-motivated and self-managing, with excellent organizational skills
  • Demonstrated ability to work closely with other parts of the organization
  • Share our values, and work in accordance with those values
  • Ability to thrive in a fully remote organization