Developer

GitLab Inc. is a company based on the GitLab open-source project. GitLab is a community project to which over 1,000 people worldwide have contributed. We are an active participant in this community, trying to serve its needs and lead by example. We have one vision: everyone can contribute to all digital content, and our mission is to change all creative work from read-only to read-write so that everyone can contribute.

We value results, transparency, sharing, freedom, efficiency, frugality, collaboration, directness, kindness, diversity, boring solutions, and quirkiness. If these values match your personality, work ethic, and personal goals, we encourage you to visit our primer to learn more. Open source is our culture, our way of life, our story, and what makes us truly unique.

Top 10 reasons to work for GitLab:

  1. Work with helpful, kind, motivated, and talented people.
  2. Work remote so you have no commute and are free to travel and move.
  3. Have flexible work hours so you are there for other people and free to plan the day how you like.
  4. Everyone works remote, but you don't feel remote. We don't have a head office, so you're not in a satellite office.
  5. Work on open source software so you can interact with a large community and can show your work.
  6. Work on a product you use every day: we drink our own wine.
  7. Work on a product used by lots of people that care about what you do.
  8. As a company we contribute more than we take, most of our work is released as the open source GitLab CE.
  9. Focussed on results, not on long hours, so that you can have a life and don't burn out.
  10. Open internal processes: know what you're getting in to and be assured we're thoughtful and effective.

See our culture page for more!

At GitLab, developers are highly 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. Some developers specialize and focus on a specific area, such as packaging, performance or GitLab CI. Developers can specialize immediately after joining, or after some time, when they have gained familiarity with many areas of GitLab and find one they would like to focus on.

Responsibilities

Requirements

Workflow

The basics of GitLab development can be found in the developer onboarding document.

The handbook details the complete GitLab Workflow.

Senior Developers

Senior Developers are experienced developers who meet the following criteria:

  1. Technical Skills a. Great programmers: are able to write modular, well-tested, and maintainable code b. Know a domain really well and radiate that knowledge
  2. Leadership a. Begins to show architectural perspective b. Leads the design for medium to large projects with feedback from other engineers
  3. Code quality a. Leaves code in substantially beter shape than before b. Fixes bugs/regressions quickly c. Monitors overall code quality/build failures d. Creates test plans
  4. Communication a. Provides thorough and timely code feedback for peers b. Able to communicate clearly on technical topics c. Keeps issues up-to-date with progress d. Helps guide other merge requests to completion e. Helps with recruiting

Staff Developers

A Senior Developer will be promoted to a Staff Developer when he/she has demonstrated significant leadership to deliver high-impact projects. This may involve a number of items:

  1. Proposing new ideas, performing feasibility analyses, and scoping the work
  2. Leading the design for large projects
  3. Working across functional groups to deliver the project
  4. Proactively identifying and reducing technical debt
  5. Writing in-depth documentation that shares knowledge and radiates GitLab technical strengths
  6. The ability to create innovative solutions that push GitLab's technical abilities ahead of the curve
  7. Identifies significant projects that result in substantial cost savings or revenue
  8. Proactively defines and solves important architectural issues
  9. TODO

Internships

We normally don't offer any internships, but if you get a couple of merge requests accepted we'll interview you for one. This will be a remote internship without supervision, you'll only get feedback on your merge requests. If you want to work on open source and qualify please submit an application. In the cover letter field please note that you want an internship and link to the accepted merge requests. The merge requests should be of significant value and difficulty, which is at the discretion of the hiring manager. For example, fixing 10 typos isn't as valuable as shipping 2 new features.

Avoid the confidence gap; you do not have to match all the listed requirements exactly to apply. Our hiring process is described in more detail in our hiring handbook.

Work remotely from anywhere in the world. Curious to see what that looks like? Check out our remote manifesto.

Apply