Intermediate Backend Engineer (Go), Development Tooling
GitLab is an open-core software company that develops the most comprehensive AI-powered DevSecOps Platform, used by more than 100,000 organizations. Our mission is to enable everyone to contribute to and co-create the software that powers our world. When everyone can contribute, consumers become contributors, significantly accelerating human progress. Our platform unites teams and organizations, breaking down barriers and redefining what's possible in software development. Thanks to products like Duo Enterprise and Duo Agent Platform, customers get AI benefits at every stage of the SDLC.
The same principles built into our products are reflected in how our team works: we embrace AI as a core productivity multiplier, with all team members expected to incorporate AI into their daily workflows to drive efficiency, innovation, and impact. GitLab is where careers accelerate, innovation flourishes, and every voice is valued. Our high-performance culture is driven by our values and continuous knowledge exchange, enabling our team members to reach their full potential while collaborating with industry leaders to solve complex problems. Co-create the future with us as we build technology that transforms how the world develops software.
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.
How GitLab will support you
- Benefits to support your health, finances, and well-being
- Flexible Paid Time Off
- Team Member Resource Groups
- Equity Compensation & Employee Stock Purchase Plan
- Growth and Development Fund
- Parental leave
- Home office support
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.
Country Hiring Guidelines: GitLab hires new team members in countries around the world. All of our roles are remote, however some roles may carry specific location-based eligibility requirements. Our Talent Acquisition team can help answer any questions about location after starting the recruiting process.
Privacy Policy: Please review our Recruitment Privacy Policy. Your privacy is important to us.
GitLab is proud to be an equal opportunity workplace and is an affirmative action employer. GitLab’s policies and practices relating to recruitment, employment, career development and advancement, promotion, and retirement are based solely on merit, regardless of race, color, religion, ancestry, sex (including pregnancy, lactation, sexual orientation, gender identity, or gender expression), national origin, age, citizenship, marital status, mental or physical disability, genetic information (including family medical history), discharge status from the military, protected veteran status (which includes disabled veterans, recently separated veterans, active duty wartime or campaign badge veterans, and Armed Forces service medal veterans), or any other basis protected by law. GitLab will not tolerate discrimination or harassment based on any of these characteristics. See also GitLab’s EEO Policy and EEO is the Law. If you have a disability or special need that requires accommodation, please let us know during the recruiting process.
Apply for this job
*
indicates a required field
