ABOUT ANTITHESIS
We're building something genuinely hard, and we need people who are excited by that challenge.
At Antithesis, we run entire software systems inside a deterministic simulation and break them in every way imaginable. Every issue comes with a perfect reproduction, so you can identify root causes faster instead of spending days trying to recreate what went wrong. We've been quietly reinventing how the world thinks about software reliability, and we're just getting started.
The rise of AI-generated code has made this work more urgent than ever. Agents can write code faster than any human, but speed doesn't matter much when the output is buggy, stuck in review, or slipping through undetected. The verification bottleneck is real, it's growing, and solving it is one of the most consequential problems in software right now. That's what you'd be working on.
We're well-funded and deeply technical, the kind of place where the hardest problems get the most attention and the best ideas win regardless of who has them. If you want to do work that actually moves the needle on how reliable software can be, keep reading.
ABOUT THE ROLE
At the heart of Antithesis is the Fuzzer, our autonomous search engine for bugs and one of the most technically ambitious components in our stack. It orchestrates actions and randomness, hunts for new system states and failure modes, and runs continuously without ever letting up. As a Senior Engineer on the Autonomous Search team, you'll own and evolve it. The problem space is genuinely unsolved, we have more ideas than we could possibly execute on, and the work you do will directly shape how it all gets figured out.
WHAT YOU'LL DO
- Own core Fuzzer functionality: orchestrating how systems under test are explored, injecting controlled chaos, and navigating the state space to find bugs in simulated environments.
- Make the Fuzzer smarter: improve code coverage, search efficiency, and expand the kinds of bugs it can discover.
- Design clean, stable interfaces so the rest of the product and external systems like ML models and AI agents can plug in and configure search.
- Build observability and benchmarking to measure Fuzzer behavior and guide development decisions.
- Write clear design docs, mentor engineers, and contribute to the long-term roadmap.
WHAT WE'RE LOOKING FOR
We want engineers who think deeply about correctness, aren't satisfied with "it mostly works," and find the problem space of software testing genuinely fascinating. If you've looked at the state of software reliability and thought we can do so much better, you'll fit right in.
- 5+ years of engineering experience working on complex systems, in industry or research.
- Strong proficiency in Rust, Go, C++, or equivalent systems programming experience; safe, performant, idiomatic code is second nature to you.
- Strong CS fundamentals in data structures, algorithms, and systems design, with a habit of solving problems from first principles.
- Experience designing clean interfaces between complex subsystems, and the ability to explain hard things clearly to any audience.
- A genuine passion for software testing and correctness is a must, whether through building testing infrastructure, contributing to tooling, or just spending too much time thinking about why software is so buggy.
Bonus: Experience with fuzz testing frameworks like libFuzzer, AFL, or Honggfuzz; property-based testing tools like QuickCheck, Hypothesis, or PropTest; program analysis or formal methods; ML/AI-driven search; deterministic replay; or open-source testing contributions.
ABOUT OUR TEAM
Our team spans CS degrees, philosophy, mathematics, and everything in between, or nothing formal at all. What everyone shares is a high bar for engineering quality. We work in-person because it's how we build trust and tackle hard problems together.
Location: This position is in office in Vienna, VA.