At GitLab, we encourage team members to take control of their own career advancement. We have no minimum time in role requirements for promotions or transfers at GitLab. 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:
A Career Mobility Issue is created when the one of the following criteria is met;
When a career mobility may not be needed (but can be requested);
The Total Rewards Team will notify the People Experience Team of a pending migration of a team member via @ mention in the Promotion/Transfer Tracker. The People Experience Associate currently in the assignment rotation will assign the migration to an Associate in the People Exp/Ops Tracker.
Important things to ensure:
The People Experience Associate completes a bi-weekly audit of all career mobility issues that are still open and checks that all tasks have been completed by all members applicable. In the event that tasks are still outstanding, the People Experience Associate will ping the relevant team members within the transition issue to call for tasks to be completed.
Once all tasks have been completed and the issue is still open, the People Experience Associate will close the transition issue accordingly. The transitioning team member can also close the issue once satisfied all the tasks are complete.
All migration tasks by the applicable team members needs to be completed within 2 weeks of the migration start date.
For any transfer being submitted through Greenhouse hiring process, the following is required:
As part of the career development structure within the Engineering division, interim and acting role opportunities occasionally arise. For more information on how interim and acting roles fit into Engineering career development, please reference the Engineering career development handbook page. For information on the interim and acting processes, please continue reading below.
As highlighted in the BambooHR or Greenhouse Process section, all interim roles (regardless of the number of applicants) should go through the Greenhouse application and interview process. The interview process steps will be determined by the hiring manager and next level leader. This will contain several steps of the standard GitLab hiring process. The process for team members interested in applying for an interim role is as follows:
Once a team member successfully completes the interview process and is selected for the interim period, the following steps should be taken to ensure the team member is set up for success in their interim role.
Senior Manager, Engineering (interim)). This update serves as the SSOT for tracking interim start and end dates, in addition to providing transparency pertaining to who is currently executing in an interim role. Job code and job grade will remain the same, as interim periods have no impact on compensation.
When the interim period comes to a close, one of two outcomes can occur:
A person "acting" in the role is someone who occupies a role temporarily and will move back to their original role after a set amount of time or other conditions. "Acting" in a role may be experimenting with the role as a part of determining an individual's career development path, or may be filling in for a vacant role while we hire someone to fill the role permanently. While interim is only applicable to the Engineering division, acting is used across GitLab.
Interviews are not required role Acting roles as they generally do not end in promotion, nor are direct reports in BambooHR generally moved to Acting managers. The process for selecting someone for an acting position is:
Please note that promotions will freeze from 2020-12-01 to 2020-02-01 due to Annual Compensation Review. Please ensure all promotions are submitted to BambooHR by December 1st.
To promote or change compensation for one of your direct reports, do the following steps:
Things to consider before you start the process:
#new-vacanciesslack channel so that everyone has the opportunity to apply and be considered.
Create a google doc that outlines the criteria of the role. Make this document viewable and editable by all. If the criteria for promotion is not adequately described on the relevant vacancy description page, work on that first. Do not add compensation values to the google doc - only reasoning. Compensation values go into BambooHR only. Make the google doc accessible to anyone at GitLab who has the link. We have no minimum time for promotions at GitLab.
Tips for creating a promotion document:
Anyone at GitLab who has the link
For compensation changes Only:
The general promotion document serves as a baseline to outline what should be included in all promotion documents, irrespective of division, department, or role. Additional sections may be included depending on role-specific requirements (for example, in Engineering, it is common to have a "technical abilities" section.)
While this varies, most promotion documents should be roughly 4-6 pages in length (though it is possible to have a solid document with less!). Quality is more important than quantity for promotion documents; 20 pages of documentation should not be necessary if the team member is truly ready for a promotion.
Anyone at GitLab who has the link
At GitLab, we ensure that promotions are impactful from the compensation perspective, stay within range of the compensation calculator, and are equitable to peers in the same role. As part of the BambooHR request, the manager will be able to submit a recommended increase in cash compensation for their direct report using the compensation calculator. If you have any questions feel free to reach out to your People Business Partner or the Total Rewards Team.
This section describes the approval chain after a manager submits a promotion or compensation change request in BambooHR.
As part of the BambooHR promotion approval process outlined above, Total Rewards checks that the department is within the 12% rolling promotion rate before approving the promotion from the Total Rewards side. This information is also accessible to all GitLab team members and can be reviewed in Sisense.
If a department is over the 12% promotion rolling rate, the following process should be followed:
Promotion Request: [Team Member Name].
@mentionthe skipped department leader for approval in the Division-specific promotion Slack channel. Example: Promotion for Backend Engineer to Senior Backend Engineer. The BambooHR process includes the direct manager, department Director and EVPE. The missing department leader here is the VP of Development. In this case
@mentionthe VP of Development for approval.
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.), notify People Experience Associates in the internal Promotions/Transfers spreadsheet tracker (using the
email@example.com alias) and the People Experience Associates will create an associated Career Mobility Issue with the Slack Command list and track associated tasks for the previous and new manager. Tag or mention the aligned People Business Partner in the Career Mobility Issue.
To demote one of your direct reports, a manager should follow the following steps:
Job information changes are anything that requires an update to the team member's profile in BambooHR that is not compensation related. The current manager is the person who needs to submit all job information change requests (including requests to change team member's manager).
Process for the current manager:
Job Title Specialtyfield (if applicable)
Job Title Specialtychange requests. Notify People Experience Associates in the internal Transition Tracker spreadsheet tracker (using the
firstname.lastname@example.org) and the People Experience Associates will create an associated Career Mobility Issue with the Slack Command list and track associated tasks for the previous and new manager. Tag or mention the aligned People Business Partner in the Career Mobility Issue.
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. We have no minimum time in role requirements for transfers at GitLab.
If and when you decide to officially apply for an internal position, please make sure your current manager is aware. Your official application is signaled by you applying to the open role or reaching out to the recruiting team. Informal conversations about the role do not require a team member to inform their manager. If you have concerns about communicating your interest in an internal role to your manager, please reach out to your People Business Partner.
#team-member-updatesSlack Channel and begin any additional onboarding or offboarding necessary. Before the new manager makes the transfer announcement they must confirm with the team members current manager that the current team has been informed about the team members new position and transfer.
If the team member is staying in the current benchmark for the Job Family, but changing their Specialty or Department (ex: moving from Plan to Secure or moving from Development to Infrastructure), the above steps will be followed. Solely the recruitment procedure might be shortened if the requirements for the role are the same. At a minimum we would ask for the hiring manager to have an interview with the team member.
If selected for the role, a letter of adjustment will be sent outlining the changes to department and specialty for the Total Rewards team to process in BambooHR. If the current manager needs to backfill the role they should reach out to the Finance Partner.
If you are a manager wishing to recruit someone, the process is the same as a team member initiated transfer. We encourage the hiring manager to be transparent with the team member'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.
If you are interested in another position within your department and the manager is also your manager you must do the following;
#team-member-updateSlack channel and begin any additional onboarding or offboarding necessary.
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 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.
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 internship for learning situation with the hiring manager.
While the Internal Transition Issue aims to kick off the logistics of switching roles, the guidelines below are meant to guide the communication of internal promotions and transitions to ensure consistency and alignment from all parties involved.
new managershould post the announcement in the
#team-member-updatesSlack channel. This should ideally happen (timezome permitting) on the same day that the candidate signs their Letter of Adjustment.
current managercan proceed with making this announcement in other relevant team-specific channels.
NOTE: Though the Total Rewards and People Experience team may have visibility into promotions or transfers due to the administration of updating information as part of their roles, they should not communicate with the team member about their promotion/tranfer until an announcement has been made.–
Company priorities can change and occasionally some or all members of a team may be asked to transfer to high priority vacancies within other teams.
Early and ongoing communication with affected teams is key to ensuring a successful realignment. Hiring managers should clearly articulate the business need and quantifiable benefits from the realignment, as well as position a team focus and roadmap that gives affected teams an understanding of how their future contributions will benefit GitLab.
Consideration should be given to impacts on product category maturity commitments for teams with departing team members.
Relevant items that can assist include:
When possible, realignments should respect the Product Development Timeline to allow impacted teams to complete existing work.
In cases where multiple individuals are asked to transfer to high priority roles:
Vacancies will be posted internally using the Greenhouse internal job board for at least 3 business days. If a role is not posted internally there must be a business case documented in the HRIS file of the team member who received the new role. See Department Transfers for additional details.
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.
If your manager has coverage, you can spend a percentage of your time working (through an 'internship') 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.
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.
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.
Please create a new issue in the Training project, choose the
internship_for_learning template, and fill out the placeholders.
No internship for learning should be approved without both managers having a conversation and agreeing upong the percentage of time the team member will spending on the internship. Also, the team members manager may has discretion not to approve the internship for learning if there are team member performance issues.
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.