Gitlab hero border pattern left svg Gitlab hero border pattern right svg

Promotions and Transfers

On this page


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 Business Partner or Chief People Officer, and do not make promises to the team member before the approvals are completed.

We recorded a training on this subject:

Offer Process in BambooHR or Greenhouse

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:

Processing Promotion or Transfer Changes

If the request is approved through BambooHR the People Operations Analyst will create the Letter of Adjustment whereas if the request is through Greenhouse the People Operations Analyst will be notified via the Compensation team email inbox that the letter has been signed. If this is the case, only data systems will need to be updated.

  1. If the request comes through BambooHR, approve the request, then update the entries in BambooHR to ensure that there are the proper dates, amounts and job information. Also, ensure to add stock options to the benefits tab if applicable. If the team member is moving to a Manager position, update their access level in BambooHR.
  2. Notify Payroll of the changes. This can be done in the following google docs: United States: "Payroll Changes", Everyone else: "Monthly payroll changes for non-US international team members". Payroll does not need to be notified for Contractors.
  3. Update the compensation calculator backend spreadsheet.
  4. If the team member is in Sales or transferred to Sales, update the changes tab on the "Final Sales OTE FY 2020" google doc.
  5. Make a copy of the Letter of Adjustment template and enter all applicable information based on the BambooHR request. The effective date is either the 1st or 16th of the month. For sales personnel with a variable change, the effective date is always the 1st of the month.
  6. Stage the letter in HelloSign and add the following team members to sign:
    • Add checkbox for the People Operations Analyst to audit
    • Add checkbox for the Manager to communicate the change to the team member and announce at the company calculator
    • Add signature field for the Compensation and Benefits Manager
    • Add signature field for the team member
    • Add sign date field for the team member
  7. Once signed by all parties, save the letter to the “Contracts & Changes” folder in BambooHR.
  8. Notify the People Operations Specialist to open a Transition issue by tagging them in the "Promotion/Transfer Tracker" google doc.


To demote one of your direct reports, a manager should follow the following steps:

Department Transfers

If you are interested in a vacancy, regardless of level, outside your department or general career progression, you can apply for a transfer through Greenhouse or the internal job board, link found on the #new-vacancies Slack channel. You will never be denied an opportunity because of your value in your current role.

Department Transfers Manager Initiated

If you are a manager wishing to recruit someone, the process is the same as an employee initiated transfer. We encourage the recruiting manager to be transparent with the employee's current manager. This will allow the current manager the maximal amount of time to plan for the transfer and speed up the overall process.

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;

When promotion is a consideration - Within Same Job Family

If a team member sees a vacancy posted that is the next level up within their job family (for example an Intermediate Frontend Engineer sees a vacancy for an Senior Frontend Engineer), the team member should have a conversation with their manager about exploring that opportunity. Once that discussion is completed the team member should follow the internal department transfers guidance above.

It is the manager’s responsibility to be honest with the team member about their performance as it relates their promotion readiness. If the manager agrees that the team member is ready, then they will be promoted to the next level. If they do not think the team member is ready for the promotion, they should walk through the experience factor worksheet and their career development document, as well as work on a promotion plan with the team member. The manager should be clear that the team member is not ready for the promotion at this time and what they need to work on. If the team member would still like to submit an application for the role after the conversation with their manager, they can apply and go through the same interview process as external candidates. The recruiter will confirm with the manager that the promotion readiness conversation has taken place before the internal interview process starts.

For Internal Applicants - Different Job Family

If the role is in a completely different job family (within their own division or in a completely different division, for example, if a Product Designer is interested in a Product Manager role), the team member must submit an application via the posting on GitLab’s internal job board on Greenhouse.

After the team member applies, the recruiter will reach out to the team member to connect regarding compensation for the role. In some cases, the compensation may be lower than the current one. Once the team member understands and agrees with the compensation for the new role, they can continue the interview process.

Internal and external candidates will have the same process with the same amount of interviews and when possible the same interviewers, with the exception of the full screening call (which will be instead a short conversation to discuss compensation, as mentioned above). However, if the internal applicant will be staying in the same division and the executive level interview is a part of the process, the executive may choose to skip their interview. All interview feedback and notes will be captured in the internal team member’s Greenhouse profile, which will be automatically hidden from the team member. After interviews are completed, internal “reference checks” will be completed with the applicant’s current manager by the new hiring manager.

It is recommended that team members inform their manager of their desire to move internally and their career aspirations. Your manager should not hear about your new opportunity from the new hiring manager; it should come from you prior to the new hiring manager checking in for references with the current manager.

If you are unsure of the role, set up a coffee chat with the hiring manager to introduce yourself. Express your interest in the role and your desire to learn more about the vacancy requirements and skills needed. If after that conversation you do not feel that you are qualified or comfortable making the move, ask the hiring manager to provide guidance on what you can do to develop yourself so you will be ready for the next opportunity. It may also be possible to set up an interning for learning situation with the hiring manager.

For People Ops & Recruiting Team

Vacancies will be posted both externally and internally using Greenhouse for at least 3 business days.

Once an internal candidate completes their interviews and the internal references are completed, an offer needs to be submitted and approved in Greenhouse by working with the new manager, the People Business Partner, and the People Ops Analyst. Once the offer is approved, the offer will be extended verbally to the internal candidate by the hiring manager for the role.

After the offer is approved and extended by the hiring manager, the Recruiter will follow up with an email containing the details, and the Candidate Experience Specialist will prepare and send a Letter of Adjustment (LOA) through Greenhouse for the GitLab Signatory and the internal candidate to sign.

Once the contract is signed, the Candidate Experience Specialist will move the internal candidate to “Hired” in Greenhouse, making sure to not export to BambooHR.

After the internal candidate is moved to “Hired”, the recruiting team will notify the People Operations Analyst who will [update BambooHR]((/handbook/people-group/promotions-transfers/#processing-promotion-or-transfer-changes) with appropriate changes.

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.

As detailed in our Learning & Development Handbook, team members will be supported in developing their skills and increasing their knowledge even if promotion is not their end goal.

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.)

How long does an internship of this nature last? This will vary from team to team, but typically 6 weeks to 3 months depending on the goals for your internship.

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.

Does completing an internship guarantee me a role on the team? Completing an internship through this program does not guarantee an internal transfer. For example, there may not be enough allocated headcount in the time-frame in which you complete your internship.

If at the end of your internship, you are interested in transferring teams please follow the guidelines in Internal Department Transfers.

Starting your new interning role

Please create a new issue in the Training project, choose the interning_for_learning template, and fill out the placeholders. Here is an example.

Once you've agreed upon the internship goals, both managers should inform their respective groups' People Business Partner.


We recommend that, at any given time, each team is handling only one intern. This is to allow for an efficient and focused mentorship without impacting the capacity of the team. You can, of course, adjust this depending on the size of the team but please consider the impact of mentoring when scheduling internships.

Specialty Change

If a team member is staying on the current benchmark, but changing their specialty (moving from plan to secure for example), the only request needed is a Job Information Change in BambooHR. This request will be submitted by the current manager. There is no impact to compensation or leveling. If the current manager needs to backfill the role, please reach out to the recruiting team.