Intermediate Backend Engineer (Go) - Development Tooling
An overview of this role
As an Intermediate Backend Engineer on the Development Tooling team, you’ll focus on removing friction from how GitLab engineers build, test, and ship software. You’ll design and maintain internal tools, frameworks, and infrastructure abstractions that power our developer workflows, from local development environments to shared services and automation. You’ll work primarily with Go in large, complex codebases, using technologies like Docker, GitLab CI, Prometheus, Grafana, SQL/NoSQL data stores, and backend test automation frameworks to improve performance, reliability, and consistency across our Ruby on Rails and Go services. In this role, you’ll collaborate closely with product engineers, quality, and infrastructure teams to turn recurring pain points into robust, self-service solutions, and you’ll own these tools end-to-end through clear documentation and long-term stewardship.
Some examples of our projects:
Improving GitLab’s local development tooling and containerized environments to reduce setup time and increase stability for new and existing engineers
Building shared libraries and APIs that standardize service communication, configuration management, and health checks across our backend systems
What you’ll do
Design, build, and maintain internal backend tools, frameworks, and APIs that streamline common developer tasks and workflows.
Improve and optimize local development tooling, including containerized environments and command line interfaces, to reduce setup time and increase stability for GitLab engineers.
Investigate and resolve performance and reliability bottlenecks across the software development lifecycle, improving speed and consistency of developer workflows.
Develop and promote standards, reusable components, and patterns for service communication, configuration management, and health checks across Go and Ruby on Rails services.
Collaborate with product engineers, software engineers in test, and infrastructure teams to understand developer pain points and translate them into robust, self-service tooling.
Configure, query, and interpret data from monitoring and logging systems such as Prometheus, Grafana, and Elasticsearch to guide improvements and validate changes.
Use and enhance continuous integration tooling (for example GitLab CI) to support reliable, automated testing and deployment for internal development tools.
Document the tools, libraries, and workflows you own, and provide clear guidance and support so GitLab team members can adopt and use them effectively.
What you’ll bring
Experience as a backend or platform engineer working in large, complex codebases, ideally including monorepos and significant refactoring or migration efforts
Strong proficiency in Go (Golang), with a track record of designing and building internal tooling, frameworks, or APIs used by many developers
Practical experience with developer tooling and workflows, including continuous integration systems, test automation frameworks for backend services, and local development environments
Hands-on experience with SQL and NoSQL data stores, monitoring and observability tools (such as Prometheus or Grafana), and logging systems
Familiarity with cloud-native concepts and tooling, such as Docker, cloud platforms, and Infrastructure as Code or GitOps practices
Ability to collaborate effectively with cross-functional teams, translate developer pain points into technical solutions, and document and support the tools you create
Comfortable working in an asynchronous, distributed environment with a “manager of one” mindset, proactively communicating status, risks, and tradeoffs
Openness to learning new technologies, contributing to open source, and bringing transferable skills from related domains, aligned with GitLab’s values and inclusive culture
About the team
The Development Tooling team sits within the Developer Experience stage and is focused on building and maintaining the internal systems, frameworks, and tooling that make GitLab engineers more productive and effective. The team owns GitLab’s development workflows, dev tooling stack, and related infrastructure abstractions used across our primary Ruby on Rails and Go codebases, collaborating asynchronously across time zones with product engineers, software engineers in test, and infrastructure teams. You’ll join a group that works in an all-remote, written-first way to streamline how GitLab team members develop, test, and ship code, with a current focus on improving local development environments, standardizing common backend patterns, and reducing friction in the software development lifecycle. For more on how this team works, see the Team Handbook page.
Intermediate Backend Engineer (Go) - Development Tooling
An overview of this role
As an Intermediate Backend Engineer on the Development Tooling team, you’ll focus on removing friction from how GitLab engineers build, test, and ship software. You’ll design and maintain internal tools, frameworks, and infrastructure abstractions that power our developer workflows, from local development environments to shared services and automation. You’ll work primarily with Go in large, complex codebases, using technologies like Docker, GitLab CI, Prometheus, Grafana, SQL/NoSQL data stores, and backend test automation frameworks to improve performance, reliability, and consistency across our Ruby on Rails and Go services. In this role, you’ll collaborate closely with product engineers, quality, and infrastructure teams to turn recurring pain points into robust, self-service solutions, and you’ll own these tools end-to-end through clear documentation and long-term stewardship.
Some examples of our projects:
Improving GitLab’s local development tooling and containerized environments to reduce setup time and increase stability for new and existing engineers
Building shared libraries and APIs that standardize service communication, configuration management, and health checks across our backend systems
What you’ll do
Design, build, and maintain internal backend tools, frameworks, and APIs that streamline common developer tasks and workflows.
Improve and optimize local development tooling, including containerized environments and command line interfaces, to reduce setup time and increase stability for GitLab engineers.
Investigate and resolve performance and reliability bottlenecks across the software development lifecycle, improving speed and consistency of developer workflows.
Develop and promote standards, reusable components, and patterns for service communication, configuration management, and health checks across Go and Ruby on Rails services.
Collaborate with product engineers, software engineers in test, and infrastructure teams to understand developer pain points and translate them into robust, self-service tooling.
Configure, query, and interpret data from monitoring and logging systems such as Prometheus, Grafana, and Elasticsearch to guide improvements and validate changes.
Use and enhance continuous integration tooling (for example GitLab CI) to support reliable, automated testing and deployment for internal development tools.
Document the tools, libraries, and workflows you own, and provide clear guidance and support so GitLab team members can adopt and use them effectively.
What you’ll bring
Experience as a backend or platform engineer working in large, complex codebases, ideally including monorepos and significant refactoring or migration efforts
Strong proficiency in Go (Golang), with a track record of designing and building internal tooling, frameworks, or APIs used by many developers
Practical experience with developer tooling and workflows, including continuous integration systems, test automation frameworks for backend services, and local development environments
Hands-on experience with SQL and NoSQL data stores, monitoring and observability tools (such as Prometheus or Grafana), and logging systems
Familiarity with cloud-native concepts and tooling, such as Docker, cloud platforms, and Infrastructure as Code or GitOps practices
Ability to collaborate effectively with cross-functional teams, translate developer pain points into technical solutions, and document and support the tools you create
Comfortable working in an asynchronous, distributed environment with a “manager of one” mindset, proactively communicating status, risks, and tradeoffs
Openness to learning new technologies, contributing to open source, and bringing transferable skills from related domains, aligned with GitLab’s values and inclusive culture
About the team
The Development Tooling team sits within the Developer Experience stage and is focused on building and maintaining the internal systems, frameworks, and tooling that make GitLab engineers more productive and effective. The team owns GitLab’s development workflows, dev tooling stack, and related infrastructure abstractions used across our primary Ruby on Rails and Go codebases, collaborating asynchronously across time zones with product engineers, software engineers in test, and infrastructure teams. You’ll join a group that works in an all-remote, written-first way to streamline how GitLab team members develop, test, and ship code, with a current focus on improving local development environments, standardizing common backend patterns, and reducing friction in the software development lifecycle. For more on how this team works, see the Team Handbook page.
