Gitlab hero border pattern left svg Gitlab hero border pattern right svg

Job Families

On this page

See them

They are organized by function in directories in the www-gitlab-com repo.

Format

For each job family at GitLab, there should be one position description as it is the single source of truth. A job family has the URL /job-families/department/title and contains the following paragraphs:

The position description will be used both for the Vacancy Creation Process, as well as serving as the requirements that team members and managers alike use in conversations around career development and performance management.

The job family does not contain

  1. Locations (EMEA, Americas, APEC), these are part of the headline
  2. Expertises, since these are free form.
  3. Anything that makes it look like a vacancy like "exciting opportunity" or "we're hiring for".

Leads and Managers

If you're working with a team lead or management job family, you should be aware of how GitLab defines these terms. Typically, team leads are individuals who oversee a specific project or area of expertise, but they do not manage people, which means they are not directly responsible for hiring, promoting, performance management, or termination of employees.

Manager job families are those responsible for directly managing other GitLab team-members. They do hire, promote, and terminate employees, and performance management is one of their key functions. Nomenclature to represent someone is a manger of people can be clarified with "Manager, Benchmark." The same holds true for director.

New Job Family Creation

If a hiring manager is creating a new job family within the organization, the hiring manager will need to create the job family. If this is a job family that already exists (for example, Gitaly Developer would use the Developer position description), update the current position description to stay DRY. If the compensation for the job family is the same as one already in roles.yml, you should just update the specialty, do not create a new job family.

Here is a brief walkthrough of this process.

  1. Create the relevant page in /job-families/[department]/[name-of-job-family], being sure to use only lower case in naming your directory if it doesn't already exist, and add it to the correct department subdirectory.
  2. The file type should be index.html.md.
  3. Add each paragraph to the position description, for an example see the backend engineer job family
  4. Assign the Merge Request to your manager, executive leadership, and finally the CEO to merge (also at-mention CEO in the #job-family chat channel). Also, cc @gl-compensation for a compensation review.
  5. Once the merge request has been merged, the People Ops Analyst will reach out to the HR Business Partner who supports the function to understand the job description and job family requirements in determining the appropriate compensation benchmark.
  6. Compensation Team: Compensation Benchmark data will be sourced from Comptryx, AdvancedHR, LinkedIn, Glassdoor, Paysa, Payscale and when applicable Cybercoders to determine the 50th percentile for the job family. For benchmarking we are only looking at the intermediate level in San Francisco.
  7. Compensation Team: In Comptryx, look at each position description by hovering over the title to make sure it aligns to our position description. For a history of mapping, take a look at the "Comptryx Benchmarks SF" tab in the "Comp Data Analysis and Modeling "Google sheet.
  8. Compensation Team: The level in Comptryx that aligns with intermediate is "proficiency,"except for in special cases (see the history of mapping for those cases).
  9. Compensation Team: Create a google document that includes the compensation data and determine the median for the benchmark, share the document with the CEO, CPO and CFO. Document should be titled Job title Comp Benchmark.
  10. Compensation Team: Create a merge request to add the benchmarks to the job families file in GitLab and assign it to the CEO. In the merge request refer to the job family title in the Google document that shows the compensation data sources and the proposed benchmark add the CPO, CFO and CEO to the MR for benchmark approval. Slack the CEO the MR for the new benchmark for review and approval. The CEO will review the document and approvals in the MR and then will make the final decision to merge the new benchmark. Once the CEO approves the MR will add the benchmark to the roles.yml file which will automatically cause the Compensation Calculator to show at the bottom of the position description page.
  11. Compensation Team: Also add the benchmark to the "SF Benchmark" tab in the "Comp Data Analysis and Modeling" Google sheet, and document how you mapped this data in "Comptryx Benchmarks SF" tab if Comptryx was used.

Job Family Creation Using Web Version of GitLab

Things You Will Need

Getting to the Right Place

Creating the New File

Title the File

Body of the File

Committing Changes

Assigning and Submitting Merge Request

Once the Merge Request is Submitted

Template for New Job Family

---
layout: job_family_page
Title: {Insert Title of Job Here}
---

{Insert brief description of the role here.}

## Responsibilities 
* {add a bulleted list of responsibilities here} 

## Requirements 
* {add a bulleted list of requirements here} 

## Levels 
### {Name of Level - i.e. Junior/Senior/Manager} 
#### {Level} Responsibilities  
* {add level responsibilities here}

#### {Level} Requirements
* {add level requirements here}

## Specialties 
### {Name of Specialty - i.e. Security, Monitor, Create, etc.} 
{Insert brief description of the specialty here.}

#### {Specialty} Requirements 
* {add a bulleted list of requirements for this specialty here}

## KPIs
* {add at least one KPI that this role will be the DRI for} 

## Relevant Links
* {add list of relevant links - i.e. links to relevant sections of the handbook}

## Hiring Process 
Candidates for this position can expect the hiring process to follow the order below. Please keep in mind that candidates can be declined from the position at any stage of the process. To learn more about someone who may be conducting the interview, find her/his job title on our [team page](/company/team/).
Additional details about our process can be found on our [hiring page](/handbook/hiring).
* {add a bulleted list of the hiring process here}