People Operations Standard Operating Procedures

On this page

Role of People Operations Standard Operating Procedures

For more information about People Operations Policies please see People Operations. This page is dedicated toward how People Ops does what it does best.

Setting up new contracts

New team hire contracts are found on the Contracts page, including instructions on how to set up new contracts.

Using HelloSign

When we need contracts to be signed we use HelloSign. Follow these steps to send out a signature request.

  1. Choose who needs to sign. (just me, me & others, or just others)
  2. Upload your document that needs signing
  3. Enter the names of the people that need to sign
  4. With more than one signature required, assign signing order (for contracts or offer letters, always have the GitLab Signatory sign first)
  5. Add the People Ops team to the cc. Also add the hiring manager to the cc, if that person is different from the signatory.
  6. Click on "Prepare Docs for signing"
  7. Drag & Drop the Signature and Date fields to the corresponding empty spaces in the document (you can select the signee with the pop up screen)
  8. For GitLab Inc. agreements, add a required text box to Exhibit A, and a supplemental larger text box below for a comment that is not required.
  9. Add a title and a message for the recipient. For contract use for example: "Dear […], You can sign [document type] with HelloSign. Once you've signed you will receive a copy by email. If you have any questions, feel free to reach out"
  10. Request Signature.

Once you've sent out the document you will receive email notifications of the progress and a copy of the signed document after all parties have signed. If you need to make a change, there is an "Edit & Resend" option in HelloSign. If a new document has to be uploaded, cancel the original and stage a new one to send for signatures.

Letter of Adjustment

When a team member receives any change in compensation we need to create a Letter of Adjustment instead of staging an entirely new contract. This document is signed by the Sr. Director of People Operations and the team member through HelloSign. Once the document has been signed, it is uploaded into BambooHR under the Contracts and Changes folder on the Documents Tab. Also, file any other supporting documentation, for example, an email with the approval to change the compensation. Information in BambooHR, TriNet, and HRSavvy should also be updated, if applicable.

Processing changes

Any changes to a team member’s status, classification, promotion/demotion, pay increase/decrease and bonus needs to be communicated via email to People Ops by the team member's manager or CEO. People Ops will then enter the changes in BambooHR under the relevant section on the Jobs tab in the member’s profile; and then file the email in the Contracts and Changes folder in the Document tab.

Further changes may need to be processed in TriNet or Savvy to fully process the change. If the team member is located in the UK, Belgium or India an email with the change will need to be sent to the payroll provider/co-employer.
People Ops is responsible for seeing the change through to completion. Once completed, People Ops sends an email to the person reporting / requesting the change (member's manager or CEO) to confirm this.

Auditing Changes

Once a change has been made, an alternative representative from People Ops will audit that change. The audit trail is located in the Google Sheet titled "System Data Entry Verification." Enter the team member's name, where the change was made, date, and entered by. This should be done for all changes related to new hires, terminations, salary changes, special pay, and title changes. The should be completed within a 72 hour period. Ping who should perform the audit within the sheet.

Process for Monthly Payroll Approval (UK, Belgium & India)

Payroll cut off for sending changes is usually the middle of the month (15th-17th). The payroll provider will send a report for approval to the People Operations email address and copy in the Financial Controller. The Financial Controller will approve the payroll by sending a confirmation email back to the payroll provider. Once processed the payslips are sent electronically directly to the team members for them to access via a password protected system.

Using BambooHR

We use BambooHR to keep all team member information in one place. All team members (all contract types) are in BambooHR. We don't have one contact person but can call BambooHR if we want any changes made in the platform. The contact info lives in the Secretarial Vault in 1Password.

Some changes or additions we make to BambooHR require action from our team members. Before calling the whole team to action:

  1. document what the process will be regarding this action (e.g. "need information X") for new team members. (Recall that we strive to change processes by documenting them, not vice versa).
  2. make sure that it is necessary for the entire team to act, or whether the work can be done by People Ops (even if this is tedious to do for People Ops, it is preferred, so as not to burden the team),
  3. make sure that the call to action is OK-ed by management,
  4. and check the steps to be taken by testing them with a single team member or a test account that does not have admin privileges.
  5. in the note to the team, point to the documentation created in step 1, explain the need and the ask, and who to turn to in case of questions.

Adding a New Team Member to BambooHR

As part of onboarding, the People Ops Specialist 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. Region: Should either be Americas, EMEA, or JAPAC.
  4. Enter the team member's time zone.
  5. Verify the work email is entered.

Jobs Tab

  1. Hire Date - This will automatically populate with the day that the profile was transferred from Workable. 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. 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 Specialist.
  4. Reports to EID - Direct Manager's employee ID number.
  5. Cost Center - Leave blank for now. This will become relevant as we scale.
  6. Exec Name - Executive in the team member's reporting chain who reports to the CEO.
  7. Payroll Type
    • Employee - paid through Payroll
    • Contractor - IND - Independent Contractor agreement
    • Contractor - C2C - Contractor Company agreement
  8. Exception to IP Agreement - If they answered Yes, on the IP agreement in the contract.
  9. Compensation Table
    • 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 - Leave blank unless for an hourly employee
    • Pay Type - Use either Salary, Hourly, or Contract.
    • Pay Period - Select the pay period. Currently we have twice a month for the US, and monthly for all others.
    • Change Reason - New Hire
    • Comment - Please add any comments that are relevant from the contract terms.
  10. Pay Frequency (Note: Pay Frequency times pay rate should equal annual compensation)
    • 12 for contractors, GitLab LTD, and LYRA
    • 12.96 for GitLab B.V. employees in the Netherlands
    • 13.92 for GitLab B.V. employees in Belgium
    • 24 for GitLab Inc. employees
  11. On Target Earnings
    • If the new team member is on a commission or quarterly bonus plan according to their contract, please add the details into this table.
  12. Currency Conversion
    • Every January and July the People Ops specialist will conduct a currency conversion for all team members.
    • Using either January 1 or July 1 as the currency conversion effective date, use Oanda for the currency conversion factor.
    • Enter the Local Annual Salary, and the converted salary in USD.
  13. 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 - Leave blank for now. This will become relevant as we scale.
    • Enter whether the team member is part-time or full-time. Any comments? Add them to the compensation table.
  14. 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.

To Terminate a Team Member from BambooHR:

  1. Click on the gear icon in BambooHR at the top right of the screen.
  2. Select Terminate Employee.
  3. Enter the Effective Date of the termination.
  4. Select Voluntary or Involuntary.
  5. Enter the termination reason and if eligible for rehire.

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

Adding a New Job Title

  1. Click on Settings
  2. Select Employee Field
  3. Select Job Title
  4. Add new job title to the drop down list

Add a New Division

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

Process Referral Bonus

If applicable, People Ops will process a referral bonus.

Document a future bonus in BambooHR

  1. Go to the employee who referred the new team member in BambooHR
  2. Under the Jobs Tab click Update Bonus
  3. Add the date the bonus will be paid if all conditions are met (90 days from hire of new employee)
  4. Enter the bonus amount of $1,000
  5. Enter the bonus type to be a Referral Bonus
  6. Enter a note stating that this is a future bonus (this will be changed once the bonus has been paid)

Add a note to the new team member in BambooHR

We want to add a note to the new employee of who referred them, so that if they receive a discretionary bonus within the first six months, the referral also receives a discretionary bonus.

  1. Go to the notes page under the new employee
  2. Add a note of who referred this team member

Notification to Process a Bonus

BambooHR will send an email to PeopleOps on the date that the referral bonus should be paid for processing through the applicable payroll system. If the team member is a contractor, send them an email (and cc Finance) to invoice the bonus. Once the bonus has been processed, change the note in BambooHR to denote the referral bonus has been paid.

Asset Tracking

Items paid for by the company are property of the company.

Assets with purchasing value in excess of $1000 USD are tracked in BambooHR, for assets of lower value we rely on the honor system. These assets come to People Ops attention by one of two ways: 1. People Ops makes the purchase on behalf of the team member, or 2. the Finance team notices the line items on expense reports / invoices and passes this along to People Ops.

The information is then entered into BambooHR (to track who has which piece of equipment) by People Ops, and it is included in the Fixed Asset Schedule by Finance (to track asset value and depreciation).

  1. Go to the team member in BambooHR
  2. Click on the Assets Tab
  3. Click Update Assets
  4. Enter Asset Category, Asset Description, Serial Number, Asset Cost, and Date Loaned
  5. This process is repeated for each asset purchased

Birthday Swag

BambooHR should send an email to People Ops the day before and the day of a team member's birthday. Celebrate by sending the team member an email (template below) and post on the #general channel on Slack so all team members can help them celebrate.

Birthday Email Template: "Happy Birthday! Please use this link [insert link] to redeem your birthday swag! You will need to login or create an account with the swag store to receive your free birthday shirt! The username will be your GitLab email. Once you are are in the store you should see your options to order a GitLab birthday shirt. Please let people ops know if you have any questions."

The link for the swag store birthday campaign is located in the People Ops vault in 1Password.

Managing the PeopleOps onboarding and offboarding tasks

Here are some useful guidelines to set up everything for our new team members with the onboarding issue. If Google Sheets or Docs are mentioned, these will be shared with you on Google Drive.

Onboarding

Ordering Supplies

If a GitLabber is in need of supplies, People Ops 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 we have a relationship with Bay Street Business to place all orders and act as our liaison.

Using TriNet

Entering New Hires into TriNet

Employer enters the employee data in the HR Passport with the information below

  1. Under the My Staff tab- select new hire/rehire and a drop down menu will appear.
  2. Enter all of the necessary information:
    • Company name auto-populates
    • SS
    • Form of address for hire (Mr. Ms, etc.)
    • First name
    • Last name
    • Middle name or initial
    • Country
    • Address
    • Home phone
    • Home email
    • Gender
    • Ethnicity (you must select something - guess if employee declines to state)
    • Military status

At the bottom of the screen, select next

* TriNet’s start date
* Reason - drop down menu with options
* Employment type - Full time or PT options
* Select reg/temp bubble
* Employee Class - drop down between regular and commission
* Estimated annual wages (does not include anything besides base salary)
* Benefit class
* Future benefits class -
* Standard Hours/week - Part time or Full time
* Business Title - see org chart
* Job Code - no need to enter anything here
* FLSA status- drop down options are exempt, non-exempt, computer prof-non-exempt, computer prof- exempt
* Supervisor - drop down menu of names
* Compensation Basis (Make sure to verify that hourly employees are non-exempt and annual employees are exempt)
* Compensation Rate
* Departments
* Work Location - drop down menu
* Pay Group - only one option
* Alternate Employee ID - found in BambooHR
* Work email
* Grouping A/level - not necessary
* Grouping B/sponsor- not necessary

Select next or save (if you select save, it will hold your information)

* Vacation/PTO - drop down menu only provides one option- select this
* Sick- drop down menu only provides one option- select this
* Personal Time - leave blank
* Floating Holidays - leave blank
* Birthdate - mm/dd/yyyy
* Workers compensation- select unknown and it will default to our principle class code for our industry Window: Describe employees job duties - simple description

After submission - you will receive a prompt for final submission, select, and submit.

Note: if you save the information to finish at a later date, go to the Work Inbox and select New Hires Not Submitted to continue.

  1. The employee receives a welcome email the night before their start date.
  2. The employee is prompted to log on, complete tax withholding (W4 data), direct deposit information, section 1 of the I-9, and benefits election (if eligible).
  3. The employer logs in to HR Passport and is prompted by way of work inbox item, to complete section 2 of the I-9.

Adding a Trusted Advisor to TriNet

A trusted advisor is a team member in People Ops who is granted access to TriNet, but is not an employee of GitLab Inc. Since they are not added to the system as a part of onboarding, we need to add them as a trusted advisor to make any changes within the system.

  1. Add to the TriNet Platform
    1. From TriNet Passport homepage, click on the tab My Company
    2. Select My Workplace, Trusted Advisor Setup
    3. Complete the information in the online form
    4. Click Submit
  2. Assign the Role of Trusted Advisor
    1. From TriNet Passport homepage, click Find
    2. Select Find Person by Name
    3. Type in the person’s name
    4. Click search
    5. Once the name appears, click on it
    6. From the options to the left, select Assign Roles
    7. Click on Add
    8. From the drop down select the access role desired
    9. Click Add

You can also follow the same process for assigning a role to a GitLab Inc. employee who is already in the TriNet system.

Making changes in TriNet

Add a New Location
  1. Go to HR Passport homepage
  2. Click Find
  3. Click Find Location.
  4. When search field appears, leave blank and click Search.
  5. Click on Add location.
  6. Complete location information. For a remote location, enter the location (ex. WA remote) in all fields except city, state, and zip.
  7. Click Add.
Transfer Employee to Different Location
  1. Go to HR Passport homepage.
  2. Click Find.
  3. Select find person by Name.
  4. Type the name, click search.
  5. From the choices, select the name.
  6. On the left side of the screen, select Employment Data.
  7. Select Employee Transfer.
  8. Change location and fill in necessary information.
  9. Select Update.
Record Pay Change
  1. Go to HR Passport homepage.
  2. Click Find.
  3. Select find person by Name.
  4. Type the name, click search.
  5. Select Employment Data on the left side of the screen.
  6. Click Employee Pay Change
  7. Select Effective Date.
  8. Enter new rates.
  9. Answer the worker's compensation question.
  10. Save.
Record Job Change
  1. Go to HR Passport homepage.
  2. Click Find.
  3. Select find person by Name.
  4. Type the name, click search.
  5. Select Employment Data on the left side of the screen.
  6. Select the reason for the change.
  7. Enter the effective date.
  8. Click next.
  9. Select the reason.
  10. Change the business title. Also, change any other applicable fields.
  11. Enter yes or no under the worker's comp section.
  12. Click Update
Enter a Bonus into TriNet
  1. Go to HR Passport homepage
  2. Under "My Company" select "Payroll Entry & Admin"
  3. Select the proper payroll
  4. Under Other Earnings, select the BNO code and enter the amount of the bonus.
  5. Never hit submit. (It will cause the entire payroll to be paid the next day)
  6. Click Save when done. Note: Make sure to file all appropriate documentation in BambooHR. Also, if the employee has been employed for less than six months, check the notes section in BambooHR to see if they were referred by anyone at GitLab. If so, process a discretionary bonus for that team member as well.

Visa Processing

To transfer an H1B Visa, GitLab needs to initiate the transfer before the team member can start work. In the past we have used Immigration Law Group as our legal counsel to help us through these steps.

  1. People Ops should reach out to legal counsel to start the process.
  2. Legal Counsel will reach out to the new team member and their manager to gather all information in regards to the transfer itself and the position.
  3. If there is a need for a rush in processing the H1B (plans for travel outside the US, for example) then you can file the transfer under premium processing, if approved by the CEO.
  4. Once the documents have been prepared by the law group, they will be sent to the CFO for wet signatures, and then returned to the law group.
  5. Once the law group receives the signed forms, they can file the transfer with USCIS. Note: Until we receive confirmation that the transfer paperwork has been received by USCIS, the new team member cannot start work at GitLab.
  6. Confirm to legal counsel when the new team member starts work at GitLab.
  7. File all documentation in BambooHR surrounding the transfer.

Offboarding

Returning property to GitLab

As part of offboarding, any GitLab property needs to be returned to GitLab. GitLab will pay for the shipping either by People Ops sending a FedEx shipping slip or it can be returned by another mutually agreed method. If property is not returned, GitLab reserves the right to use a creditor company to help retrieve the property.

FedEx info for the team member

Pull up the departing contributors home address. Find a Fedex location close to them. Then follow the template below.

"Hi [Name of team member]

The closest Fedex to you is located on [full street address, city, state, zip code]. Driving or walking directions can be found here: [enter link from “mapping home location to the Fedex location”]

Once there you can use Fedex boxes that you need and do the following actions:

  1. Package the equipment in the box
  2. Send package to GitLab HQ in San Francisco
  3. Mark on the invoice "Bill Recipient"
  4. Our Fedex number is: [find the number in Secretarial Vault in 1Password]
  5. Provide People Ops the tracking number via email

Please let People Ops know if you have any questions."