Engineering Roles

Reverse Engineer

You’ll figure out the intricacies of how undocumented software, firmware, and hardware targets work and build the tooling to do that work at scale. You’ll disassemble binaries, analyze instruction sets, recover protocols and state machines, and build AI-based automation that surfaces patterns no analyst could reliably spot by hand. You’ll turn opaque systems into understood ones, in tightly cleared environments against real targets.

The Work
You’ll tackle challenging reverse-engineering problems. Sometimes your targets are Windows or Linux binaries with standard x86 or ARM instruction sets, but mostly you’re deep in firmware, in embedded systems where the instruction architecture is non-standard, the tooling is sparse, and you have to roll your own emulation or instrumentation. Sometimes the problem is a protocol, a state machine, or hardware-level behavior, and you’ll work from datasheets, register traces, or the physics of how the system responds under stress. Your toolkit spans C, Python, Rust, assembly, and whatever domain-specific language the problem demands. The standard is precision: every behavior you characterize is verified, every tool you build must work.

You’ll spend some of your time exploring novel targets independently, developing your own techniques to overcome bottlenecks. You’ll spend some of your time building tools that increase your team’s velocity. And you’ll document what you find with enough clarity that vulnerability researchers can act on it.
Who You Work With
You’ll collaborate with software engineers who turn your tools into production systems, vulnerability researchers who build on your analysis to find and prove weaknesses, and system engineers who translate your discoveries into mission impact. You’ll have access to lab equipment—hardware test benches, emulation platforms, software-defined instrumentation—and you’ll interact with customers who bring you real-world targets and constraints.
What We Look For
Reverse-engineering experience across binaries, firmware, or protocols, fluency in C, Python, Rust, and assembly, and command of tools like Ghidra and IDA Pro; experience building automation and emulation to scale analysis is valued, as is familiarity with the application of AI to cyber issues.

Open Positions

Ready to find your place?

Browse every open position for this role across all capability areas and all U.S. locations.