Backend Engineer, Distribution: Deploy (Golang)


3 months ago


An overview of this role

As a Distribution Engineer, your work within the Distribution: Deploy team surrounds configuration, deployment, and operation of GitLab as a whole product. The goal is to deliver an intuitive, clear, and frictionless installation experience, followed by smooth, seamless upgrade and maintenance processes for deployments of any scale. We strive to deliver ongoing operational behaviors for scaling, little to zero downtime upgrades, and highly reliable experiences for not only instance administrators but their users. Omnibus packages, Helm Charts and Operators are primary deployment methods Distribution currently supports.

As a Distribution Engineer on the Distribution: Deploy team you regularly interface with broader development teams in supporting newly created features.

Some interesting links about the team and role

What you’ll do

  • Build and maintain tools for initial installation and composability for self-managed installations and
  • Productize Upgrades / Downgrades from a single node installation to large scale enterprise installation
  • Secure configuration & communication
  • Research and document cloud and platform migration and integration
  • Investigate and analyze installation and upgrade incidents, identify root cause, and develop appropriate mitigation strategies and fixes

What you’ll bring

  • Production experience designing, building, and packaging cloud-native applications.
  • Experience with the Kubernetes ecosystem (Operators, Helm, registries, etc.).
  • Experience with shipping production ready code in Golang
  • Experience with oher high-level programming languages such as as Bash, Shell, Ruby or Python
  • Production experience with IaC and orchestration tooling at scale (Ansible, Terraform, Chef, etc.).
  • Knowledge of service scaling and rollout strategies.
  • Proficiency in the English language, both written and verbal, sufficient for success in a remote and largely asynchronous work environment.
  • User of modern DevOps platforms. (GitLab is a bonus.)
  • Production experience with building container images and container build tooling. (Desired)

About the team

The Distribution team is composed of two subgroups: Distribution:Build and Distribution:Deploy.

The Build team is focused on producing artifacts including system packages, container images, and related components like marketplace listings along with tooling required to create and maintain them. The Deploy team is focused on installation and upgrade mechanisms to ensure smooth deployments. This includes system integration, scripting, templating, and related configuration management tooling.

In addition to product deliverables, both groups review a large number of MR's authored outside the team. These include dependency and security updates along with configuration controls and other bundled components like PostgreSQL, Consul, Patroni. Deployments include everything from single node deployments for evaluating GitLab all the way through the 50K user reference architecture and beyond. The primary goal is to ensure end users have a high-speed, low-friction experience when managing GitLab with limited downtime or service disruptions.

How GitLab will support you

Please note that we welcome interest from candidates with varying levels of experience; many successful candidates do not meet every single requirement. Additionally, studies have shown that people from underrepresented groups are less likely to apply to a job unless they meet every single qualification. If you're excited about this role, please apply and allow our recruiters to assess your application.