Position descriptionWe are looking for a Software Engineer to join the team building Gitar's core platform. Gitar is building an AI-native code validation platform that automates the entire pull request lifecycle. We review every change with full awareness of the codebase, team conventions, and the intent behind the code; we generate fixes, validate them against CI, and only consider the work done when the build passes; and we automate the full pull request lifecycle from creation to merge.
You will work at the intersection of program analysis, developer tools, and AI, helping design and ship systems that reason about code at depth. You will do so by combining static and dynamic analysis with large language models to catch bugs that rules-based tools miss, generate validated fixes, and automate the developer's workflow end to end.
What you will do- Design and build program analysis systems that reason about code at the level of intent, control flow, data flow, and behavior, across languages and at the scale of thousands of repos and large monorepos.
- Combine static and dynamic analysis with large language models to detect functional bugs, logic errors, and behavioral issues that deterministic tools cannot catch.
- Build the AI agents and orchestration layers that review pull requests, generate and validate fixes against CI, root-cause CI failures, and automate the full pull request lifecycle from creation to merge.
- Develop indexing, retrieval, and embedding systems that give models the right context (codebase, conventions, dependencies, and intent) at the right cost and latency.
- Own the production characteristics of the systems you build: correctness, accuracy, latency, cost, observability, and security in a zero-trust environment.
- Partner with the SonarQube team to deepen the integration between deterministic static analysis and AI-native validation, building workflows where one informs the other.
- Engage directly with customers, many of whom run the largest engineering organizations in the world, to understand their workflows and ship what they need.
Experience and qualifications- A PhD or MS in Computer Science (or equivalent experience).
- 2-4 years of professional software engineering experience.
- Solid engineering fundamentals: data structures, algorithms, and the ability to reason about correctness and performance.
- Have practical, hands-on experience with AI and LLM-driven development.
- Exposure to or strong interest in program analysis fundamentals: static analysis, dynamic analysis, type systems, intermediate representations, control- and data-flow analysis, or symbolic execution.
- Strong written and verbal communication, comfort working directly with sophisticated engineering customers, and the judgment to make trade-offs across correctness, latency, cost, and developer experience.
Nice to have- Experience building developer tools that engineers actually use: compilers, build systems, IDE tooling, linters, refactoring tools, test infrastructure, or large-scale code transformation.
- Experience in industry research labs (e.g., Microsoft Research, Google Research, Meta AI), at large-scale developer infrastructure teams (Uber, Google, Meta, Microsoft, Stripe, etc.), or as a contributor to widely used open-source compilers, analyzers, or developer tools.
In-office cultureWe're intentional about this. We believe the best teams are built in the room together. Three anchor days - Mondays, Tuesdays, and Thursdays - create the collaboration rhythm that makes a hub office worth having.
Candidates need to be genuinely based in the location the role is posted - if that's not where you are today, we're happy to support relocation for the right person.