Once/day we run a pipeline that syncs the specialty field for team members within the Engineering and Product division. This means that if team members edit that field in the file, this will result in the sync overwriting when it runs again. The reason for this is that we consider BambooHR as the single source of truth for this data. Thus team members and managers will need to make adjustments in BambooHR first and this will be automatically propagated in the team page entry.
To determine what to fill in for the specialty, we first look at the multi-select specialty field. If there is nothing present in this field, we look at the single select specialty field.
From 2020-12-18 we will do a daily check to see if any new Parental leave PTO was requested for the day before on PTO by Roots. If there are any PTO events created on that day, we will add 3 employment statuses to the team member's BambooHR profile:
Parental Leavewith the date the start date of the PTO event
End of Parental Leavewith the date the end of the PTO event
Activewith the date the end date of the PTO event + 1
Every week, a scheduled job queries all PTO events occurring during a ±4 week time frame. Sensitive information (eg. the type of PTO taken) is then filtered out from these PTO events. The compliant data is then uploaded to a Google Cloud Storage bucket for the data analytics team to consume.
The data team then makes a subset of this information available via Sisense to allow team members to create more accurate charts for metrics like number of merge requests per team member over a 30-day period.
A scheduled job runs on January first and for each team member located in the Netherlands, if their
Employee Accruals balance is negative, it is set back to 0 days.
A similar scheduled job also runs on July first, but in this case, for each team member located in the Netherlands, if their
Employee Accruals balance exceeds 10 days, it is set back to 10 days.
Once per day, closed issues in the training project are automatically marked as confidential for compliance.
Every hour, a scheduled job checks the letter of employment requests spreadsheet for new entries. For each entry, a letter of employment will be generated using the team member's BambooHR data. The letter is then sent directly to the team member's work email address.
Every day, a scheduled job looks for team members with a CXC contract expiring in two weeks. An email is sent to each of those team members to remind them of the contract renewal process. The GitLab CXC point of contact (email listed in the
CXC_CONTACT_EMAIL environment variable) is also copied on this email as a reminder to initiate the renewal process on their end.
Once per week, BambooHR locations are synced to GitLab groups. Team members are then added to the correct group. The list of groups (entities) can be found in the entities project.
When creating a merge request or issue that affects all members of a given GitLab entity, all members with direct membership can be pinged using
eg. for Canada Corp, use
On the first day of each month, we populate a spreadsheet including information for team members who have been at GitLab for more than 3 months. The spreadsheet is used by engineering to plan for on-call availability.
Synced fields are sourced from BambooHR and the team file.
Every Wednesday at 10AM UTC, we run the audit on all the team members who started the week before. A spreadsheet is created in a Google Drive folder that is shared with Total Rewards and the VP People Operations, Technology & Analytics. In the spreadsheet we will list all the team members that we audited and mark the columns that need to be checked.
Every first of the month at 10AM UTC, we run the audit on all the active team members at GitLab. A spreadsheet is created in a Google Drive folder that is shared with Total Rewards and the VP People Operations, Technology & Analytics. In the spreadsheet we will list all the team members that we audited and that had something marked as needs to be checked.