You have professional experience building flight software, embedded systems, or similarly constrained software where reliability, debuggability, and performance matter. You are comfortable working close to the hardware, but you also care about higher-level architecture, maintainability, and the developer experience of the systems around you.
You can debug across the full stack: hardware interfaces, threads and processes, filesystems, compression, protocols, and test infrastructure. You know when to reach for simulation, when to move to hardware, and how to use both without fooling yourself.
You communicate well across disciplines and can work with hardware, software, and science teammates to resolve integration challenges. You are proactive about unblocking issues, giving and receiving constructive feedback, and making thoughtful trade-offs under time pressure.
A few things we expect in this role:
•
2–6+ years of professional flight software, embedded software, or closely related systems experience
•
Strong programming skills in Python and either C++ or Rust
•
Experience with multi-threading, memory management, performance optimization, and constrained-system design
•
Hands-on experience with build systems such as CMake or Make, cross-compilation toolchains, and embedded Linux
•
Experience with low-level communication protocols, hardware/software debugging, and fault-tolerant system design
•
Strong instincts for testing, reproducibility, observability, and clean software interfaces
•
Comfort reasoning about concurrency trade-offs, including bounded memory, locking strategies, lock-free approaches, and static analysis
•
Judgment when using AI-assisted coding tools such as Claude Code or Cursor, with an emphasis on reducing technical debt rather than accelerating it
•
A first-principles approach to problem solving, with the pragmatism to ship robust solutions instead of waiting for perfect ones