Overview
As an Intermediate Backend Engineer on GitLab's Security Factory: Code Scanning team, you will help developers find and fix security issues in their code by contributing to the static analysis engine that finds them, spanning the engine and the tools used to evaluate it.
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, and keep specifications and code in sync.
- Improve the harness, agent instructions, and skills that keep agent-written code trustworthy, using separate coding and reviewing agents, performance checks, 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 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 need
- 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.
- Willingness to work across Rust (engine), Go (analyzer wrapper) and Ruby (monolith integration).
- An interest in static analysis and application security, including parsing, intermediate representations, taint and data-flow analysis, and how vulnerabilities arise in code. Deep expertise isn't required.
- Ability to organize and progress work independently in a remote, largely asynchronous environment.
- Ability to communicate technical problems clearly and concisely and propose iterative solutions.
Nice to have
- Experience with performance optimization, Docker and continuous integration and continuous delivery (CI/CD), web or mobile frameworks, or guardrails for agent-written code such as mutation testing and fuzzing.
- Program analysis and security research through publications or open source contributions.
Details
- Location: Bangalore, India. All roles are remote, though some roles may carry specific location-based eligibility requirements.
- Works closely with a team that relies heavily on asynchronous work across time zones.
- Participation in on-call rotations.
- Full-time employee benefits include flexible paid time off, equity compensation and employee stock purchase plan, growth and development fund, and parental leave.
Read the full description and apply on the company’s own careers page.