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

GitLab Onboarding Processes

Onboarding Processes

This page is a guide for People Operations Specialists when onboarding new team members. All onboarding tasks and guidelines for new team members are in the People Ops Onboarding Issue. Each onboarding issue is structured with general tasks at the top and department or role-specific tasks below. In some cases, specific tasks may link to supplemental issues such as in-depth training. All new hires will receive invitational access to their GitLab email, GitLab accounts, and any other work-related accounts on Day 1.

People Operations Specialist will create the on-boarding issue, and start the onboarding tasks, no later than one week before the new team member joins. Should a contract not be signed prior to 4 working days from the start date, a new start date will be required. If any changes are made to the onboarding template, kindly notify team members of other teams that the change will impact.

To ensure we create a fluid onboarding experience, provide enough time to the IT Ops team for laptop orders and fewer delays on day 1. People Operations specialists require a minimum of 4 business days (with the new hire timezone as the basis) before the new hire's start date. At 14:00 UTC every Wednesday, PeopleOps Bot slack bot will send an alert in the #peopleops-alerts channel which includes details missing from BambooHR accounts of team members joining the following week. The People Operations Specialist team will fill in these missing details as soon as possible since completeness and accuracy of BambooHR profiles is necessary for all automation.

At 16:00 UTC every Thursday, the bot will send another alert in the #peopleops-alerts channel with a list of new team members joining the following week. This list includes names, email addresses, joining dates, and job titles of the new hires along with links to a Periscope graph showing the hiring progress over time. After a final and quick round of verification of the details, the People Operations Specialist team will then post in the #team-member-updates channel welcoming all new team members.

Onboarding Issue Tasks

The People Operations Specialist will create the GSuite account first.


Thereafter, update BambooHR with the information documented here.

The People Operations Specialist will then create an onboarding issue with a ChatOps command in Slack 4-5 business days prior to the new team member's start date:

  1. Log into BambooHR and verify the information is accurate: Name, Job title, Starting date, Department, Country, Entity (Inc, BV, Safeguard, CXC, Lyra etc. etc.), People Manager or not, Name of the Manager (to assign the onboarding issue to).
  2. Use command: /pops run onboarding +BambooHR ID number (not Employee ID #). This can be found in the URL when the employee's file is open and usually straight after the = sign. If BambooHR's API is down, this ChatOps command will fail and will need to be created manually.
  3. Once this has been created, check the accuracy of reporting lines and job titles. If the manager is not automatically tagged, it could be because the employee's manager uses a name in GitLab that is very different from the one in BambooHR, and they don't use their email id as the primary email id in GitLab. They will then manually need to be assigned.
  4. Once created, copy and paste the link into the Google sheet GitLab Onboarding Tracker. Please note that this document is only viewable to PeopleOps and ITOps to protect personal information.

Ordering Supplies

If a GitLab team-member is in need of supplies and is unable to purchase the items themselves, People Operations Specialists can place the order, per Spending Company Money.

Use the Amazon business account for all Amazon links. In order to see what is available to ship in each country, use that country's Amazon website to sign in, place the order, and ship.

For Apple products, sync with IT Ops to place the order.

See more at the IT Ops policy for laptops

After an order has been placed or a laptop has been shipped, update Finance and BambooHR via asset tracking.

Adding a New Team Member to BambooHR

As part of onboarding, People Operations Specialists will process new hires in BambooHR. Aside from the steps listed in the onboarding issue, this is a description of how to add the proper information into BambooHR.

Personal Tab

  1. Verify the team member was given an Employee ID number.
  2. Enter the appropriate Country.
  3. Enter the locality (geo area, country). This information should be visible in the offer details. If you have any questions, please reach out to the compensation team.
    • Please note the formatting must be entered exactly as outlined in the location factor file with "area, country" or the integration outside BambooHR will fail.
  4. Region: Should either be Americas, EMEA, or JAPAC.
  5. Verify the work email is entered.

After verifying the work email is set up, go to top right corner, and set access level to "employee self service"

Jobs Tab

  1. Hire Date - This will be blank. Make sure to enter in the correct date.
  2. Role
    • Leader - if director or above
    • Manager - if has any direct reports
    • Individual Contributor - all others
  3. Cost Center - Leave blank for now. This will become relevant as we scale.
  4. Payroll Type
    • Employee - paid through Payroll
    • Contractor - IND - Independent Contractor agreement
    • Contractor - C2C - Contractor Company agreement
    • PEO - anyone employed via a Professional Employer Org
  5. Exception to IP Agreement - If they answered Yes, on the IP agreement in the contract. Also, send the text for the exception in an email to the VP of Engineering for approval. File the approved email in BambooHR.
  6. Compensation Table
    • Use the BambooHR Calculator in Google Drive to do the following steps. Reach out to an Analyst if you need access.
    • Effective Date - Hire Date
    • Pay Rate - Entered as if it were a payroll amount. For example, a US employee would be entered as their yearly amount divided by 24 payrolls in a year. A contractor would have their monthly contract amount listed.
    • Pay Per - Monthly for contractors and employees paid once per month, Pay Period for all other employees
    • Pay Type - Use either Salary or Hourly for employees, or Contract for contractors.
    • Pay Schedule - Select the pay period. Currently we have twice a month for the US, and monthly for all others.
    • Overtime - This is the FLSA Code - This will either be exempt or non-exempt depending on how the role is classified. If there are questions on the classification, please ask the People Ops Analyst.
    • Change Reason - Hire
    • Comment - Please add any comments that are relevant from the contract terms.
  7. Pay Frequency (Note: Pay Frequency times pay rate should equal annual compensation)
    • 12.96 for GitLab B.V. employees in the Netherlands
    • 13.92 for GitLab B.V. employees in Belgium
    • 24 for GitLab Inc. employees in the United States
    • 12 for everyone else paid monthly
  8. On Target Earnings
    • If the team member does not have any variable compensation, enter "No" in the Variable Pay box, then do not add any additional information in the table. If yes, continue.
    • Add the effective date, annual amount of the variable component in local and USD, and the OTE in local and USD.
    • Lastly, add the cadence to which the variable component is paid out.
  9. Currency Conversion
    • The effective date is either January 1 or July 1, whichever is more recent. Every January and July, the People Ops Analyst will conduct a currency conversion for all team members.
    • Use Oanda for the currency conversion. Always convert the currency from local currency into USD so that we remain consistent.
    • Enter the currency conversation factor from Oanda with all 5 decimal places.
    • Enter the Local Annual Salary with the appropriate currency code and the converted salary in USD.
  10. Job information
    • Effective Date - Hire Date
    • Location - Which entity the new team member is contracted through.
    • Division - Enter the appropriate division from the dropdown.
    • Department - Enter the appropriate department from the dropdown.
    • Job Title - Choose the job title. The title should read as Level Benchmark. If the position is at the Manager or Director level it should read as Level Manager, Benchmark. If it does not exist already, scroll to the bottom, click "Add New" and save the new job title.
    • Reports To - Select their manager.
    • Job Title Speciality - If there is a specialty (this would be seen in the contract as titling reads Level Benchmark, Specialty, but region alignment is not considered a specialty), use the drop down to select the appropriate specialty. If the specialty is not listed in the drop down menu, create a new one. The Job Title Specialty field has no restrictions except that time zone or territory alignment do not qualify as specialties. (Examples of a Specialty: Growth, Commercial, DoD. Examples of what is not a Specialty: Americas East, EMEA, APAC)
    • Enter whether the team member is part-time or full-time. Any comments? Add them to the compensation table.
  11. Employment Status
    • Enter the hire date and set the status to active. Also leave a comment if there is anything of note in the contract. Except;
    • Hires in the Netherlands should have 2 entries;
      1. Temporary Contract with date marked as the start date
      2. Temporary Contract Ending with the date marked as exactly one year from their hire date
    • New team members from GitLab LTD (UK), CIIC(China), Safeguard Hungary, and Safeguard Spain all have a three month probation period.
    • Team members from GitLab GmbH(Germany), GitLab PTY(Australia), Lyra(India), Safeguard in countries Italy, Nigeria, South Africa, Ireland will have a six month probation period. * Set the status to probation period. This sets up an alert for the manager and People Ops automatically, 2 weeks, 1 week, and a day before the probation period expires. Details of the probation period process can be found on the contracts page.Please use these probation periods in BambooHR for team members in these specific groups.
  12. For employees of HRSavvy, LYRA, and CIIC email the Employee ID number to our contact to align our systems.

Benefits Tab

  1. Stock Options
    • Enter the start date
    • Employee or Contractor (This should match Payroll Type on the Jobs Tab)
    • Enter the number of shares from the contract.

Auditing the BambooHR Entry

  1. Download a copy of the contract from the Documents Tab. Verify the information (start date, title, stock, etc) matches the entries in BambooHR as outlined in Adding a New Team Member to BambooHR.
  2. If all the information is correct, mark the new hire as complete on the "Payroll Changes Report" in BambooHR.

Settings in BambooHR

Changing a Format (Example: Date)

  1. Click on Settings
  2. Choose Account
  3. Select General Settings
  4. Change the date format to match desired output

Add a New Division

  1. Click on Settings
  2. Select Employee Field
  3. Select Division
  4. Add new division

Auditing System Changes

At the end of each week a People Operations Analyst will review all data entered into BambooHR through the Payroll Change Report for audit purposes. Once a month an audit should be conducted from all payroll providers to ensure the salary information matches BambooHR.

Analyst Onboarding Tasks

  1. Audit the BambooHR Entry
  2. Add to the compensation calculator
    • Add the Employee ID, First Name, Last Name
    • All other items in Blue are to be entered. Columns in black are formulas that need to be carried down.
    • Ensure the Locality follows the criteria for geo areas.
    • If the team member is over range for their compensation, the Metrics column will read as false. Please copy the formula down to generate the adjusted location factor for metrics reporting. For Sales, the Benchmark will need to be manually input based on the Sales Comp spreadsheets.
    • Audit the locality in BambooHR under the personal tab to ensure it matches to the comp calc.
  3. Create a new profile in Lumity (if a US team member)
    • Login to Lumity
    • Click your name and then switch to admin view
    • Under employees, select manage.
    • Click Hire Employee and enter information as prompted.
    • Benefits plans are dependent on the state the new hire lives in. OOS stands for Out of State and should be selected if the new team member does not reside in California, Hawaii, or Colorado.
  4. Create a new profile in Betterment
    • Login to Betterment's Business Account (this is different than the personal account)
    • Click Employees
    • Click add an Employee
    • Enter all information as prompted
    • All new team members in the US are primary, not part of a union, able to access a computer, and eligible to participate (except interns).

Hiring Manager Onboarding Tasks

Add blank entry to team page

  1. Go to the / www-gitlab-com project.
  2. Click on the data folder, then on the next page click on the team.yml file.
  3. Click on the button labeled Web IDE between the Edit and Replace buttons.
  4. Find the vacancy entry for the new team member's position, and replace with some of the new employee details:
    • DO NOT change slug, unless you are copying template then use jobabbreviation-firstname-lastinitial (ex. mpm-agnes-o). If you do not have a place holder, create a slug by using a unique naming convention such as jobabbreviation-firstname-lastinitial.
    • Type = change vacancy to person
    • Name = First Name Last Initial only
    • Remove placeholder line.
    • Location Factor = 0.7 (PeopleOps will update at future date)
    • Role = UPDATE URL to correct /job-family. Must be relative link, do not include Make sure Title is accurate & matches onboarding issue using proper capitalization
    • Reports to = Manager slug
    • Picture = ../gitlab-logo-extra-whitespace.png team member is tasked to update
    • Departments = REMOVE Vacancy; Add main department (i.e. Marketing or Sales).
    • Story = Joins on Month XXth team member is tasked to update.
    • Expertise = REMOVE Recruiter and Application Link lines
  5. If no vacancy entry is found for this position, create an entry and make sure the information above is correct. Also:
    • Create a temporary slug, made up of shortened title / abbreviation. Search to be sure that no other team member already has this slug. If the team member will manage team members, make sure that the direct hires have the slug listed in the reports_to section.

Template for New Team Member entry

- slug: 
  type: person
  location_factor: 0.7
  country: Remote
  role: <a href="#update-link">ADD TITLE</a>
  picture: ../gitlab-logo-extra-whitespace.png
    - Vacancy
  story:  |
          Joins on ...