Embedded Systems Staff Engineer
New
J
JobgetherSecurity analysis
100% remote, work-from-home arrangement within the United States.Full-TimeStaff
SalaryHourly compensation ranging from $96.75 to $133.03, based on U.S. national estimates. Potential eligibility for a discretionary bonus program or commission plan, subject to applicable program rules and individual and organizational performance.
Apply NowOpens the employer's application page
Job Details
- Experience
- 6+ years of experience developing software in C/C++ on Linux.
- Required Skills
- C++Linux
Requirements
- Have 6+ years of experience developing software in C/C++ on Linux.
- Bring significant low-level systems software experience, such as emulators, virtual machines, operating systems, compilers, debuggers, binary translators, hypervisors, or dynamic instrumentation systems.
- Have a deep understanding of ARM and/or AArch64 assembly, calling conventions, exception models, privilege levels, and memory semantics.
- Know Linux process execution, including ELF loading, virtual memory, signals, threads, system calls, dynamic linking, and debugging facilities.
- Have experience debugging complex native-code failures with tools such as GDB, LLDB, strace, perf, sanitizers, core dumps, or custom instrumentation.
- Be able to reason about instruction-level behavior and identify differences between architectures and execution engines.
- Have familiarity with fuzzing, symbolic execution, dynamic binary analysis, or program instrumentation.
- Demonstrate strong software design skills and experience taking ownership of technically complex systems.
- Preferred: experience with OCaml or another functional programming language.
- Preferred: background in vulnerability research, reverse engineering, or firmware analysis.
- Preferred: a bachelor's degree in Computer Science or a related technical field, or equivalent practical experience.
Responsibilities
- Lead the architecture, maintenance, and evolution of ARM and AArch64 execution support through emulation.
- Diagnose correctness, compatibility, and performance issues involving instruction semantics, memory management, exceptions, system calls, signals, threading, and process initialization.
- Implement support for new ARM architectural features, instruction-set extensions, ABI variants, and execution environments.
- Investigate and resolve behavioral differences between native execution, QEMU emulation, and internal analysis engines.
- Improve the performance, determinism, observability, and reliability of large-scale emulated workloads.
- Design and maintain test suites and regression infrastructure covering instruction-level and end-to-end ARM behavior.
- Debug customer binaries and firmware involving unusual platform, compiler, or operating-system behaviors.
- Collaborate across technical disciplines to advance binary analysis and execution capabilities.
View Full Description & ApplyYou'll be redirected to the employer's site