Gitlab Interview Questions (11+ Questions)

Last Updated: June 23, 2026 โ€ข 11 Questions โ€ข Real Company Interviews

Prepare for your Gitlab interview with our comprehensive collection of 11+ real interview questions and detailed answers. These questions have been curated from actual Gitlab technical interviews across various roles including DevOps Engineer, Data Engineer, QA Engineer, and more.

11
Interview Questions
1
Categories
3
Difficulty Levels

Table of Contents

Our Gitlab interview questions cover a wide range of technical topics and difficulty levels, from entry-level positions to senior roles. Each question includes detailed explanations and answers to help you understand the concepts and prepare effectively for your interview.

๐Ÿ’ก Pro Tips for Gitlab Interviews

  • Practice each question and understand the underlying concepts
  • Review Gitlab's specific technologies and methodologies
  • Prepare follow-up questions and edge cases
  • Practice explaining your solutions clearly and concisely

Interview Questions & Answers

1. Recursive Database File Backup

Company: GitLab Difficulty: easy Categories: Devops

We need to back up entire folder and its sub directories for specific file types. We have dot db files and we need to back them up with do db dot back to have the backup of those database files. Our task asks us to recursively scan this OPT data directory, find all the DB files and just add this extension. It's explicitly ask us not to move those files, but to create copies of those. First we'll use find command to find all the DP files. We can use find dot, which will scan the directory we're currently in. We need to scan for files, so we need to add flag type F, otherwise we will get also a list of directories as well. We need to add name and we need to add wild card dot db. One cool thing of find command is we can use exec. It will apply certain things on the files that it finds. We need to copy those files but not copy them as is, but we need to add an extension dot back. And then we add semicolon to terminate our exec command.

2. Docker Volume Cross-Platform Consistency

Company: GitLab Difficulty: easy Categories: Devops

In this scenario we have two Docker containers, Ubuntu and Alpine. We have the volume my vault, that has not been yet created and we need to create this docker volume and mounted to both of these containers. Whenever we write something into Ubuntu container, it's going to be readable from the alpine container as well. We need to create docker volume named my vault, and for this we'll type docker volume create my wall. Inspect this volume to make sure that it was created successfully by typing Docker volume inspect my vault. Now we need to run Ubuntu Container Mount my vol volume and execute command to write this text into Hello txt file. Docker run rm, which will delete this container as soon as this command is executed. We'll mount the volume by typing hyphen V my role, name of the volume semicolon slash data. Run Alpine and then we will mount my vol to data the same as we did with Ubuntu. But instead of writing to this file, we're going to read from data Hello TXT. The result is hello from Ubuntu. We managed to use same volume by two different containers.

3. Remove Last Commit and Discard Changes

Company: GitLab Difficulty: easy Categories: Devops, Data analysis, Data engineering, Quality assurance

We've committed some local changes that contain incorrect changes and we need to completely erase that from history. Our task is to navigate to this repository, remove last commit entirely. The most important thing here is to discard all associated files changes. First run get log to see all the current commits. We will go a few steps back, and we also need to discard all associated file changes. This means that this is not soft reset, which will reset that, but keep the local changes. So this has to be a hard reset. We have bad commit, wrong changes. It's the last commit and we will reset it. One commit back, run Git, reset hard at one.

4. Node Drain Blocked by PDB

Company: GitLab Difficulty: medium ๐Ÿ”’ Premium Categories: Devops

5. Image Tag Validation with Admission Control

Company: GitLab Difficulty: medium ๐Ÿ”’ Premium Categories: Devops

Implement Kubernetes admission control: configure ValidatingWebhookConfiguration for image tag validation, enforce latest-tag policy, and secure cluster deployments.

6. Integration Testing with Docker Compose

Company: GitLab Difficulty: medium ๐Ÿ”’ Premium Categories: Devops

We have a web application stack with multiple services, Nginx and Redis, defined in a Docker Compose YAML file. We need to spin up these services in CI, verify that they're working correctly, and tear them down afterwards. Docker Compose is a tool which is used for defining and running multi-contain...


๐Ÿ”’ Premium Content

Detailed explanation and solution available for premium members.

Upgrade to Premium โ†’

7. Modify Terraform List

Company: GitLab Difficulty: medium ๐Ÿ”’ Premium Categories: Devops

Transforming a Flat Map to a List of Objects in Terraform

When working with Terraform, there are instances where you need to transform data structures to better interface with external systems, such as APIs. One common requirement is converting a flat map into a list of objects. This is particu...


๐Ÿ”’ Premium Content

Detailed explanation and solution available for premium members.

Upgrade to Premium โ†’

8. Group and Filter with HAVING

Company: GitLab Difficulty: medium ๐Ÿ”’ Premium Categories: Data analysis, Data engineering

Crafting a SQL Query to Identify Departments with High Average Salaries

Introduction:
When preparing for an SQL interview, a common question revolves around manipulating and extracting data from multiple related tables. A notable example involves using SQL commands to identify departments w...


๐Ÿ”’ Premium Content

Detailed explanation and solution available for premium members.

Upgrade to Premium โ†’

9. Export SQLite Database to Parquet Format with Metadata

Company: GitLab Difficulty: hard Categories: Data analysis, Data engineering

We'll need to export SQLite database to Parquet format with metadata using Pandas. We have one SQLite database that is called ecommerce. It contains three tables, customers, products, and orders. The orders table has foreign keys that connects it to the first two tables. SQLite is a lightweight database that stores everything in a single file. Our job here is to export every of three tables to their own Parquet file with Snappy compression and create a manifest JSON file describing the export. Parquet stores data column by column instead of doing that row by row. A manifest is a metadata file that describes the contents of an export. We import five things: SQLite 3 library to connect to the database; Pandas, that will be aliased as pd; JSON to create the manifest; OS library for creating directories, building file paths, and getting file sizes; and the DateTime module for getting the current timestamp for the manifest. We read the entire table into the data frame and save the data frame as a Parquet file. Then we set compression to Snappy and index to false.

10. Extract Email Addresses from Text File Using RegEx

Company: GitLab Difficulty: easy Categories: Data engineering, Quality assurance

Use Python regular expressions to extract all email addresses from a log file, remove duplicates, and save unique emails to a text file.

11. INTERSECT for Common Orders

Company: GitLab Difficulty: medium ๐Ÿ”’ Premium Categories: Data engineering

Objective

To solve the problem of finding common orders between two tables, orders and special_orders, you need to write an SQL query that identifies orders that have the same order_id, customer_name, and order_date in both tables. Additionally, the result should be presented in an as...


๐Ÿ”’ Premium Content

Detailed explanation and solution available for premium members.

Upgrade to Premium โ†’


Ready to Practice More?

Explore interview questions from other companies or try our hands-on labs to build practical experience.