Software engineer
- Location
- San Francisco
- Type
- Full time
- Compensation
- $150k-$200k
- Posted
- 2 days ago
Join a team building useful software. Work closely with engineering and design to turn new ideas into products.
Find roles through people you trust, and message a verified founder or page admin about your interest.
In our commitment to building intelligent, safe and reliable robots, we are seeking an experienced QA Engineer to own how we validate the software running them—both in simulation and on physical hardware—before it ever reaches a customer. You will be responsible for making sure every release is dependable, well-tested, and transparent about what has been verified.
You’ll design and scale our test suite across the entire pyramid: from fast unit and integration tests to end-to-end smoke checks, nightly runs on fixed tasks, and pre-merge performance benchmarks. You will ensure the suite stays fast, robust, and observable, so when it breaks the team can quickly act on it. You will start with the software runtime and, as the robots evolve, extend that same suite toward hardware-in-the-loop and bench tests closer to the boards.
This is a high-ownership role where you sit directly between the engineers writing robot software and the team operating the machines day to day. Along with the team, you will drive test quality and coverage, staging validation and release sign-off, ensuring the software running on our humanoid robots is thoroughly battle-tested.
Design and own the testing strategy across the robot software, balancing unit, integration, simulation, hardware-in-the-loop, end-to-end, and smoke tests
Continuously improve that suite: more of the behavior that matters, fewer slow or noisy tests, and failures that point at a cause
Build and maintain a nightly suite on robot and in simulation, with a clear pass or fail on a fixed set of tasks
Track throughput, timing, and driver health as part of that suite, and benchmark performance so speed regressions are visible
Own the promotion of a build from staging to a customer release, with measurable release gates and a report for every promoted build: what ran, what failed, coverage, flaky-test rate, known risks, and a verified rollback path
Turn a failure into something reproducible: a log, a recording, and a named case
A degree in Software Engineering or equivalent, and 4+ years of solid experience in the field.
A strong grasp of testing strategy: which checks belong at which layer of the pyramid, and how to keep a large suite fast
Experience building and looking after that kind of suite for software that talks to hardware or a long-running runtime
Hands-on work with CI
Strong Python and Rust
A habit of writing a scenario down so someone else can see what “working” means
Clear communication with the engineers whose code you are testing
Bonus: experience with hardware-in-the-loop testing, robotics, real-time systems, or performance gates in CI
Bonus: open-source test tooling or technical writing
UMA is an inclusive workplace that values exceptional builders over perfect pedigrees. Whatever your background, identity, or journey, if you don't meet every criterion but believe you can have an outsized impact here, we strongly encourage you to apply.