On this page


These agreements are examples of the agreements that we currently use at GitLab. However, the terms and conditions of an employee or contractor’s agreement will vary based on each employee or contractor’s specific circumstances. GitLab reserves the right to amend or change the sample agreements, as well as each employee or contractor’s actual agreement. The samples below are samples only — they are not valid as such and do not replace personalized signed agreements.

How to use this page to prepare a contract

Assuming that the hiring process went smoothly, now it is time to prepare the applicable contracts. The following set of steps should suffice:

  1. The currency should normally be the local currency of the new team member unless they explicitly request USD/EUR because their local currency has a lot of inflation.
  2. Employee entity: employ through the GitLab entity where they are located (US => Inc., NL => B.V., UK => Ltd, India => Lyra, Belgium => B.V.(Belgian contract) depending on the location in Belgium the contract will need to be in either French or Dutch with the English translation alongside
  3. Contractor entity: if the team member is in the US, or if the person is part of the Sales organization, GitLab Inc. is the contracting entity. In all other regions and functional groups, GitLab BV is the contracting entity.
  4. Make a copy of the relevant Template Contract (linked below) in Drive, and include the name of the new hire in the title of the copy.
  5. Find all fields with curly brackets ( { } ), and edit as appropriate. It is often efficient to do a find + replace on fields that appear multiple times such as names, email addresses, etc. (fields are named the same in the contracts / PIAA to make this easier). The one exception to the curly bracket find and replace process is the Belgian contract, the fields that need to be edited are highlighted.
  6. When removing optional clauses, take care that the paragraph / section numbering still makes sense (especially for the GitLab Inc offer letter).
  7. Have the contract reviewed, per the guideline on the Hiring page.
  8. Process new contract(s) via HelloSign (also see how to get legal documents signed ).
  9. If you are processing a GitLab Inc. contractor agreement, also send a W9. The template can be found in HelloSign.
  10. Once the contract is signed, place the signed pdf in the team member's folder in BambooHR.
  11. Delete the google doc that was used for the preparation of the contract; it is superseded by the signed version in BambooHR.

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 and emails 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 recipients. For example, Title: "[Team Member Name] - Contract"; Message: "Dear [Signatory], [Team Member Name], You can sign [document type] with HelloSign. Once you've both signed you will receive a copy by email. If you have any questions, feel free to reach out."
  10. Click on "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.

Employment and Contractor Agreements

The following contracts are in Google docs that are viewable by anyone with the link.

Preparing Employment Agreements for GitLabbers in India

GitLab is working in partnership with Lyra Infosystems for employing GitLabbers located in India. These agreements are mailed rather than emailed so there is a lead time of approximately one week for completion before the new hire can start their employment at GitLab. The process for creating and sending an agreement is as follows:

  1. Once the email offer from the hiring manager has been sent as per the hiring process People Ops will email Lyra HR with salary information for the new hire so that Lyra can prepare the Cost to Company (CTC) breakdown to include in the contract
  2. People Ops will reach out to the new hire and ask for full names of both parents
  3. When all of the information asked for in the above two steps has been received complete the contract as per the steps in the how to use this page to prepare a contract section, apart from staging the contract in Hello Sign.
  4. Once the contract is ready to be sent, save it as a PDF, email it to the new hire and cc peopleops and HR at Lyra
  5. Once the contract has been emailed, HR at Lyra will send the hardcopy for signature directly to the new hire's home address
  6. When the contract has been signed HR at Lyra will send Peopleops a PDF copy of the document which can then be filed in BambooHR
  7. Complete the last step in the how to use this page to prepare a contract section

Core Team Member Non-Disclosure Agreements

Core team members are an important part of the GitLab community. In order for these individuals to be able to participate in confidential GitLab communications we ask core team members to sign a Non-Disclosure Agreement. This document is reviewed and signed by the CFO.

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.

Consent Form for GitLab Usability Test

During this usability test I agree to participate in an online session using my computer and telephone. During the session I will be interviewed about the site, asked to find information or complete tasks using the site, asked to complete an online questionnaire about the experience, and I may be video recorded (together, these form the “Materials”).

I understand and consent to the use and release of the Materials by GitLab B.V. (“GitLab”). These materials will likely be made public. I understand that it is the discretion of GitLab to decide whether and how to use the Materials. I relinquish any rights to the Materials and understand the recording may be copied and used by GitLab without further permission. I hereby agree to release, defend, and hold harmless GitLab and its agents or employees, from and against any claims, damages or liability arising from or related to the use of the Materials, including but not limited to libel, defamation, invasion of privacy or right of publicity, infringement of copyright or trademark, misuse, distortion, blurring, alteration, optical illusion or use in composite form, either intentionally or otherwise, that may occur or be produced in taking, processing, reduction or production of the Materials, their publication or distribution.

I have read the above authorization, release, and agreement and I am fully familiar with the contents thereof. This release shall be binding upon me and my heirs, legal representatives, and assigns. I understand that participation is voluntary and I agree to immediately raise any concerns I might have.

If you have any questions after today, please contact {GitLab Contact Person}.

Please sign below to indicate that you have read and understand the information on this form and that any questions you might have about the session have been answered.


Please print your name: {Usability Tester Name}

Please sign your name:

Thank you!

We appreciate your participation.