Offer enterprise-grade operational experience of GitLab products from streamlined deployment and maintenance, disaster recovery, secure search and discoverability, to high availability, scalability, and performance.
Enablement focuses on improving our capabilities and metrics in the following areas:
For more details, refer to the Enablement Sub-department Direction.
The following people are permanent members of teams that belong to the Enablement Sub-department:
|Alex Ives||Backend Engineering Manager, Database|
|Diogo Frazão||Backend Engineer, Database|
|Jon Jenkins||Senior Backend Engineer, Database|
|Krasimir Angelov||Senior Backend Engineer, Database|
|Leonardo da Rosa||Backend Engineer, Database|
|Matt Kasa||Senior Backend Engineer, Database|
|Prabakaran Murugesan||Senior Backend Engineer, Database|
|Simon Tomlinson||Senior Backend Engineer, Database|
|David 'DJ' Mountney||Backend Engineering Manager, Distribution:Build|
|Andrew Patterson||Senior Distribution Engineer, Distribution:Build|
|Balasankar 'Balu' C||Senior Distribution Engineer, Distribution:Build|
|Dmitry Makovey||Senior Distribution Engineer, Distribution:Build|
|Dustin Collins||Distribution Engineer, Distribution:Build|
|Robert Marshall||Distribution Engineer, Distribution:Build|
|Peter Lu||Backend Engineering Manager, Distribution:Deploy|
|Clemens Beck||Distribution Engineer, Distribution:Deploy|
|Gerard Hickey||Senior Distribution Engineer, Distribution:Deploy|
|Hossein Pursultani||Distribution Engineer, Distribution:Deploy|
|Jason Plum||Staff Distribution Engineer, Distribution:Deploy|
|Jason Young||Distribution Engineer, Distribution:Deploy|
|Mitch Nielsen||Distribution Engineer, Distribution:Deploy|
|Juan Silva||Fullstack Engineering Manager, Geo|
|Aakriti Gupta||Senior Backend Engineer, Geo|
|Douglas Barbosa Alexandre||Staff Backend Engineer, Geo|
|Gabriel Mazetto||Senior Backend Engineer, Geo|
|Ian Baum||Senior Backend Engineer, Geo|
|Javiera Tapia||Backend Engineer, Geo|
|Michael Kozono||Staff Backend Engineer, Geo|
|Valery Sizov||Senior Backend Engineer, Geo|
|Zack Cuddy||Senior Frontend Engineer, Geo|
|Andras Horvath||Manager, Engineering, Gitaly|
|James Fargher||Senior Backend Engineer, Gitaly|
|Justin Tobler||Backend Engineer, Gitaly|
|Karthik Nayak||Senior Backend Engineer, Gitaly|
|Patrick Steinhardt||Staff Backend Engineer, Gitaly|
|Pavlo Strokov||Senior Backend Engineer, Gitaly|
|Quang-Minh Nguyen||Senior Backend Engineer, Gitaly|
|Sami Hiltunen||Senior Backend Engineer, Gitaly|
|Will Chandler||Senior Backend Engineer, Gitaly|
|Changzheng Liu||Backend Engineering Manager, Global Search|
|Dmitry Gruzd||Staff Backend Engineer, Global Search|
|John Mason||Senior Backend Engineer, Global Search|
|Madelein van Niekerk||Backend Engineer, Global Search|
|Ravi Kumar||Backend Engineer, Global Search|
|Siddharth Dungarwal||Backend Engineer, Global Search|
|Terri Chu||Senior Backend Engineer, Global Search|
|Tomáš Bulva||Senior Frontend Engineer, Global Search|
|Paul John Phillips||Manager, Engineering|
|Aleksei Lipniagov||Senior Backend Engineer, Application Performance|
|Matthias Käppler||Staff Backend Engineer, Application Performance|
|Nikola Milojevic||Senior Backend Engineer, Application Performance|
|Roy Zwambag||Backend Engineer, Application Performance|
|Barry Firman||Backend Engineering Manager, Pods|
|Omar Qunsul||Backend Engineer, Pods|
|Rutger Wessels||Senior Backend Engineer|
|Thong Kuah||Staff Backend Engineer, Pods|
The following table shows who will provide cover if one or more of the Enablement Engineering management team are unable to work for any reason.
|Team Member||Issues/MRs Backup||People Management Backup||Escalation|
|Chun Du||Christopher Lefelhocz||Christopher Lefelhocz||Ashley Kramer|
|Nick Nguyen||Kamil Trzcinski (Pods/Decomposition)||Changzheng Liu, Alex Ives||Chun Du|
|Changzheng Liu||Dmitry Gruzd (Global Search), Matthias Käppler (Memory)||Nick Nguyen||Chun Du|
|Alex Ives||Andreas Brandl||Nick Nguyen||Chun Du|
|DJ Mountney||Jason Plum||Chun Du||Chun Du|
|Andras Horvath||Patrick Steinhardt||Chun Du||Chun Du|
|Barry Firman||Thong Kuah||Nick Nguyen||Chun Du|
If an Engineer is unavailable the person providing
Issues/MRs coverage will reassign open issues and merge requests to another engineer, preferably in the same group.
Some people management functions may require escalation or delegation, such as BambooHR and Expensify.
This can be used as the basis for a BCP Communication Plan and Role Assignments, as well as a general guide to Enablement Engineering continuity in the event of one or more team members being unavailable for any reason.
The following members of other functional teams are our stable counterparts:
|Nick Brandt||Product Designer, Enablement:Global Search|
|Amy Qualls||Senior Technical Writer, Create (Source Code, Code Review), Enablement (Database)|
|Achilleas Pipinellis||Senior Technical Writer, Enablement|
|Grant Young||Staff Software Engineer in Test, Enablement:Distribution|
|Kassandra Svoboda||Manager, Quality Engineering, Enablement & SaaS Platform|
|Nailia Iskhakova||Senior Software Engineer in Test, Enablement:Distribution|
|Nick Westbury||Senior Software Engineer in Test, Enablement:Geo|
|Vincy Wilson||Senior Manager, Quality Engineering, Enablement, Fulfillment, Growth, Sec and Data Science|
|Vishal Patel||Software Engineer in Test, Enablement:Distribution|
|Joshua Lambert||Director of Product Management, Enablement|
(Sisense↗) We also track our backlog of issues, including past due security and infradev issues, and total open SUS-impacting issues and bugs.
(Sisense↗) MR Type labels help us report what we're working on to industry analysts in a way that's consistent across the engineering department. The dashboard below shows the trend of MR Types over time and a list of merged MRs.
In order to embody GitLab CREDIT values, we take team status update to async. Instead of reporting on status in meetings, Directors, Senior Engineering Managers, Engineering Managers provide weekly async updates. The content of these updates may vary week over week but generally cover:
We use issues to communicate status asynchronously. The reporting issues reside in Enablement Status Update project. There are two types of report issues - issues for each group, stage, and Director; summary issues for each week and month for quick access. The creation of these issues is automated by scripts and a cron job in the same project. The summary issues are also updated regularly by the same cron job to pull the latest together.
Engineering managers are encouraged to make as many updates as needed throughout the week.
~Enablement::Weekly-Updatelabel are summarized in weekly and monthly issues, for example W23 Enablement Sub-Dept Status Summary (2022-06-12 - 2022-06-18), M6 Enablement Sub-Dept Status Summary (Jun 2022).
To enhance the overview of team direction, all Enablement development teams use Epics to organize projects and dogfood the Roadmap feature to communicate short- and mid-term product development roadmap, although each team customizes their usage such as applying specific labels. Examples:
WIP. These MRs exempt from the above review.
|WIP in Subject?||> 30 days?||Action Required?|
Documenting development decisions is another way to increase efficiency. These decisions can be either in an issue explicitly stating that we will not work on this issue, the product category page for your group or a more formal decision log in your group's section of the handbook. Whatever your chosen desitination, each group should try to maintain a single source of truth for the decisions. A recent example (without mentioning specific product name) had a development team researching an open source product to accelerate development time only to find out later that this research had been previously completed and the product was eliminated from consideration. If this decision had been discoverable via documentation or issue it would have saved precious development time.
We have started creating decision logs to benefit our internal development team as well as our greater GitLab community. It is up to each group to determine the best location for decision logs to be discoverable. For example, the Database team has a decision log for Sharding GitLab with CitusDB in the Enablement/Database section of the handbook and a decision log for the Sharding Working Group in the working group section of the handbook.
For issues, a clear decision is when an issue is successfully closed. However, if an issue is closed because we "won't do it" it may not be immediately clear. We are adopting the
~won't do label for those issues. Often the pattern is to just stash these issues in the
~backlog. This can be misleading to those watching the issue and frustrating to the original author, especially if they are a community contributor. When we apply a
won't do label to an issue, we are making a clear decision. If there is no pushback on the
won't do label then we made the right decision. If there is pushback and we need to reprioritize the issue, then that is a good outcome as well.
We hold our bar high when it comes to hiring. Our goal is to hire the best candidates who will make GitLab successful meanwhile ensuring that the candidates are also set up for success at GitLab. With that in mind, our interview panels consist of a minimum of 4 interviewers (a.k.a. 4 scorecards), and there is no upper bound if needed. However, typically it won't go beyond 6 interviewers in total. Our interview panels are designed so that multiple data points are available from different interviewers for a specific factor, such as technical competency. This lets us confidently make decisions by cross referencing interview feedback in order to avoid the risk of single data source.
To bring the best possible candidate experience and stay competitive, we schedule all interviews at once and try to fit all in a small time window. This means the interviews are not serial and the scheduling of an interview doesn't depend on the outcome of another one. On the other hand, we will give candidates advanced notice that the interview process can halt at any time and we will notify them if the case. This is to respect the candidates' time when we believe the candidate is a better fit for other opportunities.
optional, the Hiring Manager and their counterpart Product Manager can decide together whether Product Manager is invited to the interview panel
Peer Team Member Intervieware separate, the hiring manager can feel free to determine how many engineers are invited to each interview as long as a minimum of 2 engineers will provide independent feedback of technical assessments.
Strong Yesscorecards, excluding the recruiting call
must-havesassessed and positive (
nice-to-havesassessed and positive
nice-to-havesthe same way as required in #2 and #3. The ratings should reflect the hiring manager's evaluation of the candidate based on all feedback. They are not an average of scores given by the interview panel.
The Enablement teams leverage the following software or SaaS services to deliver our products. For general information of procurement, checkout the procurement team page. For procurement questions, bring to #procurement. To make new Purchase Order (PO), create a new procurement issue.
|Software||Vendor Link||Term||Renewal Date||Team Impacted||Comments|
|packagecloud.io||https://packagecloud.io/||Annual||March 30th||Distribution||Existing vendor, last renewal issue, last renewal PO|
|dependencies.io||https://www.dropseed.io/||Annual||November 1st||Distribution||Existing vendor, last renewal issue|
|postgres.ai||https://postgres.ai/||Annual||May 28th||Database||Existing vendor, last renewal issue|