Founded in 2012, Bugcrowd is the preemptive security platform that unifies exposure discovery and assessment, offensive testing, and intelligence shaped by AI and human insight to help organizations avoid, discover, and validate real-world risk. Bugcrowd helps security teams move faster by identifying the exposures that matter most so they can act first and stay ahead of attackers. By combining the power of humans and AI, teams can preempt attack paths and prevent breaches. Based in San Francisco and New Hampshire, Bugcrowd is supported by General Catalyst, Rally Ventures, Costanoa Ventures, and others. Visit www.bugcrowd.com .
As a Embedded Systems Staff Engineer, you will own the architecture, maintenance, and continued improvement of ARM architecture support within Bugcrowd.
Job Summary
In this role, you will work at the boundary between CPU emulation, operating-system semantics, binary analysis, fuzzing, and symbolic execution. You will improve Bugcrowd’s ability to execute and analyze ARM and AArch64 binaries, diagnose subtle differences between native and emulated execution, and extend our support for new operating environments, binaries, and firmware targets.
Essential Duties & Responsibilities
Own and evolve Bugcrowd’s ARM and AArch64 execution support using emulation.
Diagnose correctness, compatibility, and performance issues involving instruction semantics, memory management, exceptions, system calls, signals, threading, and process startup.
Add support for new ARM architectural features, instruction-set extensions, ABI variants, and execution environments.
Investigate discrepancies between native execution, QEMU execution, and Bugcrowd’s analysis engines.
Improve the performance, determinism, observability, and reliability of large-scale emulated workloads.
Develop test suites and regression infrastructure for instruction-level and end-to-end ARM behavior.
Debug customer binaries and firmware that exercise unusual platform, compiler, or operating-system behavior.
Education, Experience, Knowledge, Skills, and Abilities
6+ years experience developing C/C++ on Linux
Significant experience working with low-level systems software such as emulators, virtual machines, operating systems, compilers, debuggers, binary translators, hypervisors, or dynamic instrumentation systems.
Deep understanding of ARM and/or AArch64 assembly, calling conventions, exception models, privilege levels, and memory semantics.
Strong understanding of Linux process execution, including ELF loading, virtual memory, signals, threads, system calls, dynamic linking, and debugging facilities.
Experience debugging complex native-code failures using tools such as GDB, LLDB, strace, perf, sanitizers, core dumps, or custom instrumentation.
Ability to reason about instruction-level behavior and identify subtle differences between architectures or execution engines.
Familiarity with fuzzing, symbolic execution, dynamic binary analysis, or program instrumentation, plus strong software-design skills and experience owning technically complex systems.
Preferred Experience
OCaml or other functional programming language
Background in vulnerability research, reverse engineering, or firmware analysis.
BS degree in Computer Science or related technical field, or equivalent practical experience.
US Person (for ITAR, such as a US citizen, lawful permanent resident, or protected individual)
Working Conditions and Physical Requirements
The ideal candidate must be able to complete all physical requirements of the job with or without reasonable accommodation.
Sitting and / or standing - Must be able to remain in a stationary position 50% of the time
Carrying and / or lifting - Must be able to carry / move laptop as needed throughout the work day.
Environment - remote, work-from-home 100% of the time.
Pay Range Disclosure
At Bugcrowd, we strive for fairness, equality and to create an environment that allows our people to perform at their very best. Our compensation…