
An overview of this role
As an Intermediate Backend Engineer on GitLab's Security Factory: Code Scanning team, you'll help developers find and fix security issues in their code by contributing to the static analysis engine that finds them.
Your work spans both the engine and the tools we use to evaluate it. You'll extend how the engine models programs, from parsing source code and resolving symbols to building call graphs and tracking tainted data across files and languages. You'll also build and apply tooling to test its findings against benchmark applications with known vulnerabilities, measuring both false positives and missed vulnerabilities.
We build the engine with artificial intelligence (AI) agents that write and review code from written specifications, under human direction. You'll implement component specifications within the team's architecture, working with engineers and AI agents. Good judgment about when to trust agent output, and when to bring it to human review, is central to the role.
What you'll do
- Extend the program model, including parsing, symbol resolution, intermediate representations, call graphs, and taint and data-flow analysis, to support new languages and frameworks.
- Build and apply AI-assisted tooling to implement, review, and validate engine changes and findings, in collaboration with the team's technical leadership. Measure detection quality against known vulnerabilities, judging changes primarily on false positive and false negative rates.
- Develop static application security testing (SAST) rules mapped to Common Weakness Enumeration (CWE) and the Open Worldwide Application Security Project (OWASP), along with test fixtures that demonstrate they work.
- Implement component specifications with engineers and AI agents through phased plans and small, reviewable changes. Keep specifications and code in sync.
- Improve the harness, agent instructions, and skills that keep agent-written code trustworthy. Use separate coding and reviewing agents, performance checks, application programming interface (API) checks, and dependency checks, and escalate risky changes to human review.
- Solve technical problems of moderate scope and complexity, and identify and address technical debt that slows the team down.
- Write maintainable code that meets our internal standards, and help maintain those standards through code review.
- Participate in on-call rotations to help troubleshoot product operations, security operations, and urgent engineering issues.
What you'll bring
- Experience using AI or large language model (LLM) tools to generate or evaluate technical content, with the judgment to assess when their output is trustworthy.
- Solid professional experience writing and testing production code in a systems language, particularly Rust or Go. Our engine is written in Rust, the analyzer wrapper in Go, and the monolith integration in Ruby. You'll be willing to work across them.
- An interest in static analysis and application security, including parsing, intermediate representations, taint and data-flow analysis, and how vulnerabilities arise in code.
- Ability to organize and progress work independently in a remote, largely asynchronous environment.
- The ability to communicate technical problems clearly and concisely and propose iterative solutions.
- Helpful but not required: experience with performance optimization, Docker, CI/CD, web/mobile frameworks, or security research.
About the team
The Security Factory: Code Scanning team develops GitLab's SAST capabilities for customer software repositories. We work closely with the Code Security team on scanning rules and flows, with Composition Analysis on the broader software supply chain, and with other groups across the Sec section. We rely heavily on asynchronous work across time zones.
Timezone overlap
UTC-6β-5
Culture
Async-friendly
Benefits
Health, Equity, ESPP, Parental leave, Unlimited PTO, Learning, Commission, PTO, Wellness
Open to
Worldwide
Sign in to track applications and earn points.