GitLab
A single application for the entire DevOps lifecycle
GitLab Professional Services
Accelerate your software lifecycle with help from GitLab experts
Popular GitLab use cases
Remote Work Continuous Integration (CI/CD) Source Code Management (SCM) Out-of-the-box Pipelines (Auto DevOps) Security (DevSecOps) Agile Development Value Stream ManagementGitLab
A single application for the entire DevOps lifecycle
GitLab Professional Services
Accelerate your software lifecycle with help from GitLab experts
Popular GitLab use cases
Remote Work Continuous Integration (CI/CD) Source Code Management (SCM) Out-of-the-box Pipelines (Auto DevOps) Security (DevSecOps) Agile Development Value Stream ManagementThese 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.
If any changes are needed to any one of the contract templates, please ping the Senior Manager, People Operations or one of the People Operations Specialist's to make the changes. The following process needs to be followed by the People Operations Specialist Team:
Important no changes or edits should be made to the contracts without the required approval
The following contracts are for reference only and are viewable by anyone with the link.
For team members legally able to work and live in the Netherlands, we should use the GitLab BV contract template. PEO contract templates should be provided by the PEO directly. We should not use GitLab BV or GitLab IT BV contracts for PEO models.
Locations where we do not have an entity or Professional Employer Organisation, GitLab IT BV contractor agreements should _always_ be used. Kindly keep in mind that if you were hired under a GitLab IT BV or GitLab BV Contractor agreement, that we are continuously working towards a Scalable Employment Solution in these locations, and your contract will therefore change in future:
Assuming that the hiring process went smoothly, now it is time to prepare the applicable contracts. Once the verbal offer is made, the coordinator will send the contract to the applicant, using DocuSign in Greenhouse. On rare occasion, the coordinator may have to create the contract outside of Greenhouse using Google Docs; if this is the case, the coordinator needs to have a People Ops team member review the contract for accuracy before sending it out for signature.
First, be sure to validate the following:
GitLab Inc full-time, with variable bonus/commission
. Then click "Generate". It will now populate and .docx and .pdf files under the "Offer Documents" section. Download the pdf and preview it to ensure everything populated correctly. If there are any token errors (i.e. problems with the information pulling from the candidate's profile and into the contract), Greenhouse will notify you. Most likely, if that happens it is because a field in the candidate profile is not accurately filled in. Once you fix the error, you'll need to "Regenerate" the contract.Offer through DocuSign
. In the "To User" field, choose the GitLab signatory for the contract. In the "CC" field, add the recruiter and the hiring manager. Then click "Preview on DocuSign".2
next to the GitLab signatory's name to a 1
, change the 1
next to the candidate's name to a 2
and change the 1
next to the hiring manager's name to a 2
. This ensures that the contract goes to the GitLab signatory to sign first, as well as the recruiter for a Cc and once signed by them it will go to the candidate and the hiring manager with a Cc. Then click "Done".fill in list of options
click add option
type in YES. Click add option
again, type in None. Click save as custom field
, name it as desired. Click Save
On the left side of the screen, navigate to standard field icon. Select Text, resize the box as desired.
On the right side of the screen, scroll down, select Conditional Logic
click on Create a rule
Click on the Yes/None
dropdown, at the top of the screen, where it says Click on the field to show when trigger field
, type YES in the equal to box. Click Done
Click on the Text box. Click save as custom field
name it as desired.
You will need to create the conditional logic rule each time you send out contracts, it does not save for future use.
There may also be other fields you'll need to add a textbox for, so double check if there are any other fields that need to be completed by either the candidate or GitLab signatory (as contracts for different entities vary; one that is easy to miss is the UK contract which requires the candidate to input their national insurance number). Once you've verified that all the information is correct and appropriately assigned, click "Send" at the top right corner.{ }
) in the template on Google Drive, find and replace that field (including the curly brackets) with the corresponding Greenhouse tokens (including the curly bracket). For example, {Contributor Name}
in the Drive template will be replaced with {{CANDIDATE_NAME}}
.
{{CURRENCY}}
, bonus is {{BONUS_AMOUNT}}
, and stock options is {{STOCK_OPTIONS}}
. Another field that is easily confused is the title; the {{JOB_NAME}}
is the name of the vacancy, which is not always necessarily the same as the title the candidate will have; to make sure it is always correct and includes the appropriate level and specialty for the candidate, use the token {{FULL_TITLE__INCLUDING_LEVEL_AND_SPECIALTY_}}
.{{CANDIDATE_SIGNATURE}}
, {{CANDIDATE_SIGNATURE_DATE}}
, {{COMPANY_SIGNATURE}}
, and {{COMPANY_SIGNATURE_DATE}}
. Find each signature page, then hit enter to create the new line after the "Signature", "Name", "Title", and "Date" sections, then copy the corresponding Greenhouse tokens. These can be easy to miss, so double check each signature section has the appropriate Greenhouse tokens, each on their own line.{{VARIABLE_BONUS_TYPE_OFFER_SECTION}}
which will tell Greenhouse to automatically choose the correct bonus type based on the offer package created in Greenhouse.Entity
employment-type
, with/without bonus
", e.g. GitLab Inc full-time, with variable bonus/commission
.Test
button next to it; click this, and it will validate that all of the Greenhouse tokens are correctly inputted. If there are any errors, it will notify you. You will then need to go back to the template in Google Docs and correct the errors, redownload it, and reupload it to Greenhouse (after deleting the original one with mistakes). If all of the tokens are functioning properly, there will be green checkmarks, and you're ready to use this template for contracts!...
to the right of the template name, then click delete and confirm.The "source of truth" for the contract templates are in the Google Drive, in the folder titled "Employee and Contractor Templates and Staging". Any updates to contracts will be done there first, and then the recruiting team needs to be pinged to be made aware of the changes so they can update the corresponding Greenhouse template.
To change or update a contract that has already been created and uploaded into Greenhouse, return to the corresponding Google Drive doc in the "Greenhouse Templates" folder, open the templates that need to be updated (there may be multiple that need to be changed, since there are different varieties of each contract to accommodate bonus structures, full-time/part-time, etc.), then update each accordingly. If you need to add new tokens to accommodate the change, be sure to follow step 5.3 in the above instructions. Once you have finished making any updates, click "File" in Google Docs, then "Download as" and "Microsoft Word (.docx)". Then go back to the "Offer Templates" section in Greenhouse. Find the contract that you are replacing, copy the name of it so you can maintain consistency, then click the three dots ...
to the right of the template name, then click delete and confirm. Then click "Upload New", paste the name of the template, and upload the new version. Click "Test" to validate that everything translated correctly (per step 9 above), and you are ready to use the new template.
To change a start date after a GitLab entity contract has been signed and the new team member has been "hired" in GreenHouse the Candidate Experience Specialist will complete the following steps:
#people-exp_ces
To change a start date after a PEO contract has been signed and the new team member has been "hired" in GreenHouse the Candidate Experience Specialist will complete the following steps:
In rare cases, we may rescind our offer before a candidate signs the contract. Work with the Recruiter, Hiring Manager, People Business Partner, VP of Recruiting, and Contract Employment Counsel on ensuring uniform communication. Once the candidate has been informed verbally and via email by the recruiting team, follow these steps:
In rare cases, candidates may reject our offer after they have signed the contract. If they have been hired in Greenhouse and exported to BambooHR, follow these steps:
There are certain times when a contract needs to get resent to the candidate after they have been hired into the system, should that happen. Follow the steps below:
#people-group-confidential
asking for the BambooHR profile be deleted due to having to resend a contract and not wanting a duplicate profile. Provide the BambooHR link in the message.For Recruiting Ops:
Contract amendments or modifications are processed by the Candidate Experience Specialist if the team member has not started or by the People Operations Specialist if they have.
If an amendment needs to be made and the previous contract was never active, the Candidate Experience Specialist should:
Note: It is essential that People Operations Specialists are informed of all changes, as various fields must be updated in BambooHR.
A contractor requests a modification to their contract due to a name change/company incorporation (Example: The individual recently incorporated a company, and would like to invoice GitLab through their company versus individually)
Contracts & Changes
section of the employee's profileImportant: Employment contracts cannot be backdated. If a team member requests to backdate a contract for invoicing purposes, an addendum should be added to the contract stating: "As the Contractor has not invoiced GitLab for payment since their start date on contractor start date
, GitLab will pay the Contractor for this period of time in accordance with the Contractor’s base compensation". The start date on the new contract should always reflect the date the contract is staged for signatures.
Contracts & Changes
section.In this location, a temporary contract (tijdelijk contract) is for 12 months, with a pre-determined end date. A dismissal procedure is not required to terminate a temporary contract at the end of its duration. However communication about the extension of the contract must happen at the latest 1 month before the actual contract end date (aanzegtermijn).
It is common for Dutch employers to offer a second temporary contract when the first expires, but it's not guaranteed. As a Dutch employer, this is standard procedure for GitLab. As of 2015-07-01, employees who have worked with an employer on temporary contracts for at least two years are entitled to an indefinite contract if the work agreement continues, and this is known as the chain rule (ketenregeling).
The process for next steps at the end of the first 12-month temporary contract is as follows:
Should a team member request indefinite employment after the initial 12-month contract or second 12-month contract, approval via email should be requested based on performance, from the team member's manager as well as the People Business Partner that is working with the business unit. The approval email should be printed to pdf and saved under Contracts and Changes
in BambooHR. This is extremely rare, unless there are mitigating circumstances.
Note: A team member cannot have more than three temporary contracts with the same employer in a row. If a fourth contract is offered by GitLab then it must be a permanent one.
GitLab IT BV contracts should only be used for contractors. All Netherlands employees should be issued the GitLab BV contract. PEO contract templates should be provided by the PEO directly. We should not use GitLab BV or GitLab IT BV contracts for PEO models.
GitLab has an entity in Australia and use this contract in this location. All team members in this location are employees.
GitLab is working in partnership with CXC Global to employ GitLab team-members located in several countries listed below. The actual employment contracts will be sent and issued by CXC and are in accordance with local labor law. CXC also handle the processing and payment of payroll and associated taxes and compliance in each of the countries on behalf of GitLab. The contracts themselves are between the individual and CXC. The offer details will be provided to CXC by GitLab's hiring team.
CXC will hire individuals as casual employees with an initial contract of two years. This can be extended. Working time is set at 40 hours each week and payment of salary happens on a monthly basis upon payment of invoices that CXC will submit to GitLab at the beginning of each month. In addition to the details on leave, as stated in CXC's contract, further details are also provided in a separate letter.
CXC provides a 12 month contract in this location, this can be extended. They are only able to support contractors that have an establised entity/company in Poland. The offer details will be provided to CXC by GitLab's hiring team.
CXC provides a 12 month contract in this location, this can be extended. They are only able to support contractors that has an establised entity/company in Ukraine. The offer details will be provided to CXC by GitLab's hiring team.
GitLab has partnered with Safeguard to hire in Hungary, South Africa, Switzerland, Ireland, France, Italy, Brazil, Spain, South Korea, Japan. You can also review this document that Safeguard created regarding frequently asked questions about their process.
To create the contract:
GitLab is working in partnership with Lyra Infosystems for employing GitLab team-members 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:
GitLab is working in partnership with CIIC to employ GitLab team-members located in China. Signed agreements between GitLab and CIIC are required to employ any new hire. Therefore, there will be a lead time of approximately three weeks prior to starting. As soon as it becomes clear that an offer to a candidate is going to be made, People Ops will reach out to CIIC to begin the process. The process for preparing the agreements between all parties is as follows:
GitLab and New Hire:
GitLab & CIIC:
CIIC & New Hire
Once the Labor Contract has been signed by both CIIC and the new hire the individual can now commence their work with GitLab.
A wet signature is required for German employment agreements the following process must be followed:
As GitLab continues to scale, we sometimes convert the employment status of BV Contractors in a country to one of the following forms of employment:
This also aligns with GitLab's strategy and growth plans.
Team members with Independent Contractor agreements are ineligible for employee benefits. The compensation team members receive for services provided as independent contractors, reflects the difference in the cost of employee benefits provided to employees, which is estimated at 17%. GitLab reserves the right to review and revise its agreements, and to convert team members from independent contractor to employee where appropriate. If a team member is converted to an employee of either a PEO or a GitLab Entity, the team member will be eligible for employee benefits, and the salary will be adjusted downward to reflect the cost of these benefits now being added to your overall compensation. GitLab will take all steps that it is able to provide affected team members sufficient notice of a change such that they can plan accordingly.
The People Operations Specialist is responsible for managing the country conversion processes outlined below.
non-official country vendor recommendation
based on: employee experience, social norm in the location, cost impact to the employee, overall SLA between GitLab and the country vendor, cost impact to GitLab, country vendor ability to scale and delivery quickly, alignment with our values, and meeting tech needs/digital way of working. This recommendation should be shared with the larger People Operations International Expansion for feedback in the #country_conversions Slack channel.non-official country vendor recommendation
first and aim to align the benefits package with GitLab's needs.people-group-confidential
Slack channel to confirm that a new country vendor has been selected and to highlight conversion date.Employee and Contracts Templates and Staging
folder in the shared drive. These should then be sent to the main Account Manager of the selected PEO to confirm which local contact should be used for the conversion.Mutual Termination Agreement
that will be shared using this template.Mutual Termination Agreements
should be sent ~72 hours after team members have received their new contracts.Mutual Termination Agreement
, found in the Drive called Employee and Contractor Templates and Staging
mentioned above. This will need to uploaded to HelloSign signed by both the team member and CFO in accordance with the new selected start date of the team member. The start date is usually within two calendar months after the initial conversion email was sent.Contracts & Changes
section.payroll type
, location
, and any other relevant updates.total-rewards@gitlab.com
to audit BambooHR and other systems to ensure there are no pending updates.hiring: false
to hiring: true
.status
in the Country Conversions and Entity Creation Tracking issue to reflect the conversion as complete.countryconversions@domain.com
and nonuspayroll@domain.com
, as well as the Sr. Manager, Global Payroll and Payments.people-group-confidential
Slack channel to confirm that the country is being converted to a legal entity and highlight conversion date. Communicate any PEO overlap or transition time, per item 3.Contracts & Changes
folder.Mutual Termination Agreement
that will be shared using this template.Mutual Termination Agreements
should be sent ~72 hours after team members have received their new contracts.Mutual Termination Agreement
, found in the Drive called Employee and Contractor Templates and Staging
mentioned above. This will need to uploaded to HelloSign signed by both the team member and CFO in accordance with the new selected start date of the team member. The start date is usually within two calendar months after the initial conversion email was sent.Contracts & Changes
folder.payroll type
, location
, and any other relevant updates.total-rewards@gitlab.com
to audit BambooHR and other systems to ensure there are no pending updates.hiring: false
to hiring: true
; update the Employment Types at GitLab and collaborate with the Candidate Experience Specialist team to update the Completing a contract page.status
in the Country Conversions and Entity Creation Tracking issue to reflect the conversion as complete.Below is a visual workflow that summarizes the country conversions process.
Division Owner | Color |
---|---|
People Ops | Purple |
Tax/Finance | Yellow |
Total Rewards | Blue |
Payroll | Green |
Country Vendor (external) | Red |
While the process above indicates a contract conversion for all team members based in certain country, the process below indicates single contractor conversions, including but not limited to:
While this process is largely related to relocation conversions, any single contract change should also follow this process
. The People Operations Specialist team is also responsible for managing the contractor conversion process by following the steps below:
peopleops@gitlab.com
to provide visibility to the team.
Note: The exception to this rule are contract conversion requests made for indefinite contract requests in the Netherlands, as the People Operations Specialist team receives email reminders for these conversions from BambooHR.People Operations Specialist Owner
for the conversion in the Relocation Conversion Tracking sheet to avoid duplicated work and to ensure fair distribution of work load.Contracts & Changes
section.Mutual Termination Agreement
, found in the Drive called Employee and Contractor Templates and Staging
mentioned above. This will need to uploaded to HelloSign signed by both the team member and Senior Director of People in accordance with the new selected start date of the team member.Contracts & Changes
section._nonuspayroll@gitlab.com
and total-rewards@gitlab.com
to noitfy them of the conversion.Important: As highlighted above in the Process for GitLab team-members in the Netherlands
section of this page, best practice for team members in the Netherlands is to issue two consecutive 1-year Temporary Contracts prior to moving to an indefinite contract. After the completion of two consecutive 1-year Temporary Contracts, we move to the indefinite contract. Should a team member request an indefinite employment contract after the initial 1-year Temporary Contract, approval via email should be requested based on performance from the team member's manager as well as the People Business Partner.