On this page

Focus of Database Team

The Database team focuses on improving performance, reliability, and availability of GitLab and This is done through a variety of different ways such as:

For further details, see the current vacancy for a Database Engineer.

The First Month

During your first month at GitLab as a database engineer or specialist we expect you to get familiar with GitLab, set up a working environment, and work on a few simple issues. Available issues can be found in the issue boards mentioned below. If there are no issues available or you are not certain what to work on it's best to discuss this with your team members.

After The First Month

After the first month (depending on how fast you get started this might take less than a month) we expect you to start focusing on work for a specific functional group. Currently the following groups are available:

Once you have chosen a functional group you will be primarily working on the issues related to that group, though you're of course more than welcome to also work on other issues. You will also be expected to help the members of those teams by helping them write better database queries, review merge requests, etc. Of course you don't have to do all of this at once, instead the team will help you ease into this process step by step.

You are free to switch groups at any time, though we prefer for this to be announced in the weekly database meeting so that everybody is aware of this. When doing so you should also inform the team leads of both the old and new team so they are aware of the change.

Note that when focusing on the work of a specific team you do not report to that team's lead or manager, instead you still report to the database team.

To make it easier to find your way around you can find a list of useful or important links below.

As a database specialist the following tools can be very helpful:


The following (private) Grafana dashboard are important / useful for database specialists:


Basically everything under, but the following guides in particular are important:

For various other development related guides refer to

Slack Channels

We recommend you join at least the following Slack channels:

Don't try to keep up with everything as some of these channels can see a lot of activity, instead just idle there in case somebody needs you. The most important channel is #database.

We also recommend turning off @here and @channel mentions for #production and #development to reduce the amount of unwanted notifications.

Important Groups

Make sure you are a member of the group This makes it easier to assign merge request approvers or mention all database specialists at once.


There are four main repositories database engineers work in:

We also primarily use the following labels:

Issue Boards

To make it easier to work we have the following issue boards:

Creating Issues

Always make sure an issue exists for the work you are about to perform. As a rule of thumb: work does not exist unless there is an issue for it. Issues are not only used to describe the work to do, but also to track progress. Make sure you update your issues on a regular basis with your findings, statistics, progress, etc. It's better to share too much information on the work being done than to share too little.

Assigning Issues

We recommend you only assign issues to yourself if you are actively working on them. If you are simply interested in an issue it's best left unassigned until you are working on it. This way you don't end up with an issue list that is thousands of issues long with no progress being made.


Don't sit around doing nothing if you can't find anything to work on! Instead just ask what should be done in the #database channel if no AP1/2/3 issues are available.

Weekly Goals

For planning we use so called "Weekly Goals". Weekly goals are written in an issue that's created for the next work week / sprint. These work weeks range from Monday to Friday. These issues are assigned to all database specialists. Some examples of these issues:

The work to be done is planned with the database team. When planning try to plan enough for 4 or so days, but make sure you don't plan too much. It's better to plan less and achieve everything than to plan a lot and achieve very little.

We also use these issues to document what we're working on and to communicate status.

The format of the issue bodies is fairly straightforward: for every database specialist there is a checklist referring to other issues (perhaps with some brief info) to perform, which are checked off as work is completed. Checklists can be created using the following Markdown:

* [ ] This is an item on my checklist
* [x] This item is marked as done

An overview of existing issues can be found at[]=Weekly+Goals.

To make it easier to create these issues you can use the issue template "Database Goals".

Notification Settings

To prevent yourself from getting buried in unread notifications it's best to adjust the default notification settings of your GitLab account. We recommend the following:

Using this setup you will not get any Email notifications. TODOs are still created but only if somebody mentions your username or a group you are a member of.

Slack Notifications

We recommend turning off Slack notification popups as these can be quite invasive, especially when multiple notifications are displayed at once. Turning off the sound notifications can also greatly help as you won't be distracted every time somebody sends you a message or mentions your username.