Engineering Internships

Learn about GitLab’s engineering internship program.

For all things Emerging Talent please visit this page.

About

In 2020, and again in 2022, GitLab established an internship program that offers students, graduates, career switchers, and those returning to the workforce an opportunity to further their careers. Our goal is to run an inclusive engineering internship program to provide all qualifying candidates with a fair and equal opportunity. This program allows us to create opportunities for candidates, diversify the experience levels of our teams, and bring fresh perspectives to our initiatives.

On this page, you’ll learn more about how we first began this program, how to get involved as an engineering team, and how to request an intern for your team.

As we head into 2023, we are evaluating our internship offerings in the Engineering Division. When positions become available we will post the link to apply on this page.

Engineering Internship Program

To validate and refine our approach to offering internships at an all-remote company, we launched a program between May 2020 and August 2020. In 2022 we iterated on this process, introducing an associate level for backend, frontend, and fullstack positions as an option for hiring and a pathway from internships.

Get involved

Criteria for GitLab teams requesting an intern

Requests for opening an intern requisition will be evaluated on the following criteria:

  1. Mentorship
    • Does the team have a manager and 1-2 engineers willing to serve as mentors for the duration of the program?
    • Do the mentors have previous experience mentoring interns or associate engineers? Previous experience is a nice-to-have, but not a must-have.
  2. Workload
    • Does the team have a roadmap containing low weight issues with few dependencies suitable for an intern?
  3. Team Size and maturity
    • How established is this team? Will they be able to take on an intern without risking a decrease in velocity?
  4. Skills
    • Is the team willing to have the intern spend the time learning the technologies they may not know before they can contribute?

The team manager and mentors will also need to be able to actively participate in the interview process.

How to request an intern for your team

The process for opening an intern requisition would be as follows:

  1. Opening a requisition starts via either a backfill process or would be based on headcount availability and budget
  2. The requesting team writes up a proposal including: projects/workload, proposed career path, requirement knowledge, skills and abilities by the intern. This example of Security can be helpful for review
  3. The proposal will be reviewed by Engineering Leadership up to the CTO
  4. If approved the manager for the team will be the DRI for the internship
  5. The DRI will make sure the intern level is added to the Job Family for their group
  6. Recruitment/sourcing starts for intern
  7. The recommended minimum length for an internship is three months, but can be up to six months
  8. The goal is to bring the intern on board for a fulltime Engineering role after the internship
  9. The DRI should connect with the Department Head and People Business Partner when they would want to promote the intern to an associate level role at the end of the internship
  10. Before hiring, during the internship, and when potentially transitioning to full-time the DRI (manager) is responsible for aligning communication with the stakeholders.

Candidate qualifying criteria

Required

The following criteria are considered required for candidates to be eligible for Engineering Internship positions:

  1. First job in the tech industry, new graduate, or returning to the workforce
  2. Available full-time during the internship
  3. Able and willing to acclimate to, and operate in, an all-remote environment

Nice to have

Preference given to candidates with proven experience

  1. Contributing to open source projects
  2. Working with the GitLab product as a user or contributor

As an example of an intern position in our job families please review the Software Engineering Intern job family for further details.

Duration and timing

The ideal duration is a minimum of three months. Internships will last no more than six months. The expectation is that interns move to grow into associate or intermediate level engineers (example) at the end of their internship. The review of the level will be performed at the end of the internship.

An internship can start as soon as both the intern and the company are ready to begin.

Location

The internship program is all-remote. The countries where we are currently hiring interns can be found on the employment solutions handbook page.

The intern can choose to relocate themselves to a region where there happens to be a cluster of GitLab employees who co-work together (when not during the pandemic). But expenses, travel documentation, and all other considerations need to be handled by the intern. They should keep their manager informed of any plans. If the intern converts to a full-time hire all conditions of their country-of-residence must be met related to their country of residence.

Internship day-to-day activities

Below is an example of a 4-month internship program:

  1. Week 1: We expect an intern will:
    • Have completed key Day 1-5 onboarding tasks
    • Understand remote work and communication best practices
    • Set up their development environment
    • Work with their mentor to understand the development workflow and submit a small MR
    • Complete a Skill Gap Analysis with their engineering manager
    • Learn team specific processes
  2. Weeks 2-15: Remote internship
    • An intern’s daily schedule will generally reflect how GitLab team members work, which is to say, we will not impose a rigid schedule.
    • Interns will be encouraged to favor async communication and to set their own work schedule.
    • Mentors and program coordinators will provide coaching if an intern needs help in adjusting to remote work.
    • Interns will participate in the following pre-determined activities
      • Weekly 1:1 with their manager
      • Weekly 1:1 with a mentor
      • Weekly 1:1 with an internship program coordinator
      • Weekly intern coffee chat
      • 2-3 group meetings per week moderated by a program coordinator.
      • Regular pair programming sessions with a mentor and other team members.
    • Time for learning: When Interns are not familiar with the programming languages for the role (often Ruby on Rails and/or Javascript, sometimes Golang, Python, or C) there will be a certain time dedicated to learn those languages via (online) courses. In order to be hired into a permanent role, knowledge of and experience with the required languages is a requirement.
  3. Week 16: Intern send-off
    • Complete offboarding tasks and hand-off projects if they are not continuing employment with GitLab.
    • Participate in retrospectives to help improve the internship program.
    • Complete final Skills Gap Analysis with their engineering manager
    • Share experiences and learnings with the company and wider-community through media such as blog posts and GitLab Unfiltered.

Compensation

Internships at GitLab offered in the framework described on this page will be paid and follow the same logic as that depicted in our Compensation Calculator and according to our Global Compensation Principles. This means that, as usual, the San Francisco benchmark, location and experience factors will be taken into account during the recruitment process and before making an offer. Depending on country regulations, we will have to align with national labor laws.

Program Processes

Recruitment

For interns we will target students or career switchers and would look at our Talent community. We would not limit candidate intake to university students and are open to all qualifying candidates.

We exclusively focus all our active sourcing activities on candidates from underrepresented groups.

Advertising

We advertise on all the traditional talent acquisition platforms as well as the GitLab vacancies page. Additional advertising is done on internship focussed job boards (e.g. Youtern, angel.co etc.)

University Recruitment

We proactively reach out to and engage with universities/colleges to hold a Virtual Careers Talk to encourage students at those universities to apply. Also, we reach out to any associations within these universities that represent underrepresented groups and hold Virtual Careers Talk with them.

We plan to hold virtual talks at universities in the following regions: AMER, EMEA and APAC.

Interviewing

For intern candidates we are setting the bar high at the application stage and apply a similar process as to other level roles at GitLab. On this page you can view a typical timeline for our hiring process.

Measuring success

Hiring process after the internship

After the internship the aim would be to hire the intern as an Associate Engineer (depending on previous experience). The timeline for hiring decisions in a 4 month program would be as follows:

  • Week 8: Check in on feedback with all hosting teams
  • Week 10: Performing performance/skills assessments with interns based on the Job Families and Competencies
  • Week 11: Sharing feedback with interns
  • Week 12: Aligning with Finance/Business on headcount/budget
  • Week 12: Making a decision on offers to interns
  • Week 13: Communicating the offer/no offer to interns
  • Week 14: Awaiting final decision of interns
  • Week 16: End of the internship program

If an offer is not made or an offer is not accepted, there are opportunities to stay in touch with GitLab’s team or People Business Partner and re-enter a conversation at a later time.

Team Retrospective

Upon the completion of the internship, participating teams will be asked to complete a retrospective. This will follow the process used for GitLab’s monthly team retrospectives. Engineering managers should create an issue in the gitlab-com/engineering-internships project using the Retrospective template and customize it for their team. This issue will initially be confidential.

During the retrospective all team members should be encouraged to contribute, even if they didn’t work directly with the intern, so that a complete picture of the effect on the team can be built.

Following the retrospective period the issues will be made public.

GitLab Intern Feedback Survey

The feedback survey provides interns with the opportunity to freely express views about working at GitLab. The People Connect Team will send the Feedback Survey to all interns 2 days prior to the pilot completion. The People Business Partner & the intern may proactively set up time to discuss their responses and ask for further information. The feedback survey are not mandatory, however your input will help provide GitLab with information regarding what worked well and what can be improved in future iterations.