At GitLab, we encourage team members to take control of their own career advancement. For all title changes, the team member should first speak with their manager to discuss a personal professional development plan. If you feel your title is not aligned with your skill level, come prepared with an explanation of how you believe you meet the proposed level and can satisfy the business need.
As a manager, please follow the following processes, discuss any proposed changes with either the People Ops Business Partner or Chief Culture Officer, and do not make promises to the team member before the approvals are completed.
We recorded a training on this subject:
Promotions & Compensation Changes
Any changes to title and compensation should be pushed through as quickly as possible. To promote or change compensation for one of your direct reports, a manager should follow the following steps:
Create a Google Doc
Promotions: The manager (or team member) will create a path to promotion google doc which outlines the criteria of the role. (i.e. promote based on performance, not based on potential). If the criteria for promotion is not adequately described on the relevant job description page, then work on that first.
Try to remove feelings and use evidence; links to MRs, issues, or project work that clearly demonstrates the skills, knowledge and abilities of the person. There will be situations when an employee is ready to move to the next level through a promotion, however due to the nature of the business that particular role or next level may not be available for a business reasons. Example the employee is ready for a Manager or Director role, however the business does not have the need, budget or scope for an additional manager/director at that time. The position may or may not become available in the future but it is not a guarantee.
Values alignment is also very important when considering promotions. This is especially the case for anyone who is moving to Senior. As one moves into management, the importance compounds. Values thrive at a company only when we take them into consideration for hiring and promotions.
Compensation Only: Create a google doc outlining the reasons for the compensation increase also tying the rationale to our values and the job description. Do not add compensation values ot the google doc - only reasoning. Compensation values go into Bamboo only. Make the google doc accessible to anyone at GitLab who has the link.
Complete an Experience Factor Worksheet
The worksheet should be completed by the manager in line with the experience factor guidelines by reviewing the team member with the new leveling criteria. For example, if the team member is promoted from intermediate to senior, a senior experience factor worksheet would be used to influence compensation for the promotion. This also helps to ensure that the team member is fully aware of any new expectations that come with the promotion.
If the job is being advertised via the jobs page the individual must apply for the role in order to be compliant with global anti-discrimination laws. Similarly, if there is no job posting, one must be created and shared on the company call so that everyone has the opportunity to apply and be considered.
The Direct Manager will submit the request in BambooHR
Login to BambooHR.
Select the team member you would like to adjust.
In the top right hand corner, click Request a Change.
Select which type of change you are requesting. If you are only looking to adjust compensation, then select Compensation. If this is a promotion that includes a title change and a compensation change, select Promotion. To only change the title, select Job Information.
Enter in all applicable fields in the form, and then submit.
Note: Salary information is entered per payroll. For example, if the team member is in the United States, the annual salary is divided by 24 to get the pay rate to be entered. If the employee is in the Netherlands, please divide by 12.96. The divisor can be found in the "Pay Frequency" table in BambooHR. For any questions on how to fill out the form, please reach out to People Ops.
In the comments section please include a link to a google doc for all requests (promotion, compensation only, etc.) outlining the reasons for the proposed change. Please do not include salary information in the doc so it can be shared on the company call, if applicable.
If there is a change to variable compensation, please fill out the "OTE Change" request separately.
The request is next reviewed by the indirect manager in BambooHR.
Once the indirect manager approves the request, the People Operations Analyst will ensure the proposal adheres to the Global Compensation Calculator, with a comment in BambooHR outlining old compensation, new compensation, and a link to the salary calculator. People Operations will also comment on the number of additional stock options that the team member will be granted.
Next, the CFO will review the request. If there are any questions, the CFO will add a comment outlining the specific concerns and the People Operations Analyst will ensure follow-up within a week to escalate to the CEO or deny the request.
The CEO reviews the request for final approval.
If the request is approved, the People Operations Analyst will send an email to the manager confirming the approval. The manager informs the individual of the promotion and changes (if any) in compensation.
People Operations Analyst processes the changes in relevant administrative systems and notifies Payroll of any changes. This can be done in the "Payroll Changes" Google Doc found on the Drive.
If there was a title change associated with the request, People Ops will complete a merge request to change the title on the Team Page.
If there was a compensation change, People Ops will draft and stage the Letter of Adjustment, and file in the Contracts and Changes folder in BambooHR.
Promotions are then announced by the manager on the company call; where the manager describes how the individual met the promotion criteria and includes a link to the merge request where the individual's title is updated on the team page.
If some amount of onboarding in the new role or offboarding from the old role is required (for example a change in access levels to infrastructure systems; switch in groups and email aliases, etc.), the manager will make an associated issue on the GitLab Organization issue tracker to list and track progress on those topics.
To demote one of your direct reports, a manager should follow the following steps:
The manager should discuss any performance issues or possible demotions with the People Ops Business Partner in their scheduled meetings with a corresponding google doc.
To initiate the process, the manager must obtain agreement from two levels of management.
Proposed changes to a current job description or a new job description should be delivered with request for approval by the second level manager and the People Ops Generalist.
Demotions should also include a review of compensation and stock options in the google doc. Managers should consult with People Operations on these topics; and of course always adhere to the Global Compensation Calculator.
Once agreement is reached on the demotion and changes (if any) in compensation, send the google doc to the CEO for final approval.
Once approved, the manager informs the individual. Please cc People Ops once the individual has been informed, to processes the changes in the relevant administrative systems, and stage a Letter of Adjustment.
Changes in title are announced on the company call.
The manager will initiate any necessary onboarding or offboarding.
If you are interested in a position, regardless of level, outside your department or general career progression, you can apply for a transfer.
If you are interested in a transfer, simply apply for the new position. If you are not sure the new role is a good fit, schedule time with the hiring manager to learn more information about the role and the skills needed. If after that conversation you are interested in pursuing the internal opportunity, it is recommended that you inform your current manager of your intent to interview for a new role. While you do not need your their permission to apply to the new role, we encourage you to be transparent with them. Most will appreciate that transparency since it's generally better than learning about your move from someone reaching out to them as a reference check. You can also use this as an opportunity to discuss the feedback that would be given to the potential new manager were they to seek it regarding your performance from your current and/or past managers. We understand that the desire to transfer may be related to various factors. If the factor is a desire NOT to work with your current manager, this can be a difficult conversation to have and shouldn't prevent you from pursuing a new role at GitLab.
Transfers must go through the application process for the new position by applying on the jobs page. The team member will go through the entire interview process outlined on the job description. If you have any questions about the role or the process, please reach out to your functional group's Human Resources Business Partner: Julie Armendariz for Sales, Marketing, and Corporate functions; and Jessica Mitchell for Engineering, Product, and Alliances. In all cases, the applicable HR Business Partner should be informed before a transfer is confirmed.
In the case of transfers, it is expected and required that the gaining manager will check with internal references at GitLab, including previous and current managers.
Before the offer is made the recruiter will confirm with the team member and the gaining manager that they have indeed reached out to the current manager. They will discuss the new internal opportunity and that an offer will be made to the team member.
People Ops will ensure that, if applicable, the position has been posted for at least three business days before an offer is made.
If after interview, the manager and the GitLabber want to proceed with the transfer, internal references should be checked. While a manager cannot block a transfer, there is often good feedback that can help inform the decision. It is advised that the GitLabber talk to their manager to explain their preference for the new team and to understand the feedback that will be given to the new manager. It should also be noted, that performance requirements are not always equal across roles, so if a GitLabber struggles in one role, those weakness may not be as pronounced in the new role, and vice versa. However, if there are systemic performance problems unrelated to the specific role or team, a transfer is not the right solution.
A new contract will be sent out following the hiring process.
If the GitLabber is chosen for the new role, the managers should agree on an reasonable and speedy transfer plan. 2 weeks is a usually a reasonable period, but good judgment should be used on completing the transfer in a way that is the best interest of the company, and the impacted people and projects.
If the team member is transferred, the new manager will announce on the company call and begin any additional onboarding or offboarding necessary.
Internal Department Transfers
If you are interested in another position within your department and the manager is also your manager you must do the following;
Present your proposition to your manager with a google doc.
If the position is advertised on the jobs page, to be considered you must apply for it. If there is no job posting, one must be created and shared on the company call so that everyone has the opportunity to apply and be considered.
The manager will asses the function requirements; each level should be defined in the job description.
If approved, your manager will need to obtain approval from their manager, through the chain of command to the CEO.
Compensation and stock options will be reevaluated to ensure it adheres to the compensation calculator. Don't send the proposal to the CEO until this part is included.
If the team member is transferred, the manager will announce on the company call and begin any additional onboarding or offboarding necessary.
Leveling Up Your Skills
There are a number of different ways to enhance or add to your skill-set at GitLab, for example, if you do not feel like you meet the requirements for an inter-department transfer, discuss with your manager about allocating time to achieve this. This can be at any level. If you're learning to program, but aren't sure how to make the leap to becoming a developer, you could contribute to an open-source project like GitLab in your own time.
Interning for Learning
If your manager has coverage, you can spend a percentage of your time working ('interning') with another team.
This could be for any reason: maybe you want to broaden your skills or maybe you've done that work before and find it interesting.
If your team has someone working part-time on it, it's on the manager of that team to ensure that the person has the support and training they need, so they don't get stuck. Maybe that's a buddy system, or maybe it's just encouragement to use existing Slack channels - whatever works for the individuals involved.
How does this work?
What percentage of time should be allocated? Well, 10% time and 20% time are reasonably common. As long as you and your manager have the capacity the decision is theirs and yours.
What about the team losing a person for X% of the time? How are they supposed to get work done? Each manager needs to manage the capacity of their team appropriately. If all of the team are 'at work' (no one is on PTO, or parental leave, or off sick), and the team still can't afford X% of one person's time - that team might be over capacity.
Can I join a team where I have no experience or skills in that area? That's up to the managers involved. It may be that the first step is to spend some time without producing anything in particular - in which case, it's possible that the tuition reimbursement policy may be a better fit (Or it might not.)
This sounds great but how do I initiate this process? First step is to discuss this with your manager at your next 1:1. Come prepared with your proposal highlighting what skills you want to learn/enhance and the amount of time you think you will need. Remember, this should be of benefit to you and GitLab. You and your manager will need to collaborate on how you both can make this happen which may also involve discussing it further with the manager of the team you may be looking to transfer to. All discussions will be done transparently with you. Be mindful though that the business needs may mean a move can't happen immediately.
How do I find a mentor? On the team page, you can see who is willing to be a mentor by looking at the associated expertise on their entry.
Starting your new interning role
It's recommended that you work with your current manager, the manager of the team you are interning with and your internship mentor to document the percent of time, length of the commitment and goals for your internship. Ensure you reference the job responsibilities of the role you are interning for when determining goals. Once finalized, make sure that you enable public (to Gitlab) access to the document. Here is an example.
Once you've agreed upon the internship goals, both managers should inform their respective groups' People Ops HR Business Partner. On the start of the internship you should use the public goals document to:
Communicate the interning team members new role in their current team meeting and/or slack channel
Communicate the interning team members new role in the team they are interning on's meeting and/or slack channel
Communicate the interning team members new role on the company call as a "reintroduction"
Update the interning team member's team.yaml entry to reflect the addition of the new role