3+ years of experience in embedded software, systems, or security
Proficient in binary analysis, disassembly, and reading assembly
Familiar with Linux, QNX, and Android embedded systems
Hands-on experience with debug interfaces and hardware rework
Knowledge of embedded communication buses and device traffic interpretation
Skilled in a scripting or programming language for automation
Understanding of file systems, data encoding, and cryptographic concepts
Experience with version-controlled code repositories
Responsibilities
Extract and analyze embedded firmware from automotive systems
Access embedded devices to recover data from locked or damaged systems
Work with embedded operating systems like Linux, QNX, and Android
Defeat device protections to complete analysis as needed
Decrypt and analyze encrypted databases to recover structured data
Document findings for forensic use and validate artifacts of interest
Develop repeatable extraction methods and maintain clear documentation
Build automation tools to parse and validate recovered data
Collaborate with cross-functional teams to prioritize research targets
Benefits
Opportunity to work on cutting-edge vehicle forensic tools
Engagement with complex, undocumented systems
Collaboration with a diverse team of engineers and analysts
Potential for local and international travel
Focus on professional development and technical skill enhancement
Full Job Description
We are seeking an Embedded Software Engineer to join the research team. The mission of the research team is to discover how vehicle systems store and protect data and to develop extraction and analysis methods that power a collection of vehicle system forensic tools. These tools are used by organizations around the world to gather essential information and investigate critical incidents. This position is well suited to an engineer drawn to complex, undocumented systems who works effectively at the intersection of software and hardware. The successful candidate will analyze how embedded devices operate, recover data from protected or unfamiliar systems, and translate those findings into reliable capabilities our customers depend on. We evaluate candidates on demonstrated technical ability, and welcome strong engineers whether their expertise was built through formal education, professional experience, or the security research community.
As an Embedded Software Engineer your responsibilities will be:
Extract and analyze embedded firmware and operating system software from automotive systems to discover key artifacts such as data structures, storage formats, and protection mechanisms
Access embedded devices through hardware and debug interfaces to acquire firmware and memory, and recover data from locked, damaged, or protected devices using appropriate techniques
Work with embedded operating systems such as Linux, QNX and Android
Defeat device protections such as secure boot, encryption, obtain ADB and root access to target systems, where required to complete analysis
Decrypt and analyze encrypted SQL databases and proprietary storage formats to recover and interpret structured data
Analyze recovered data to identify, correlate, and validate artifacts of interest, and document findings for downstream forensic use
Develop repeatable, forensically sound extraction and decoding methods and maintain clear documentation of methodologies, target hardware, and attack surfaces
Build automation to parse, decode, and validate recovered data at scale
Maintain a code repository in accordance with industry's best practices as directed by leadership
Collaborate with engineers, analysts, and product managers to prioritize targets and move research into supported product capabilities
As a candidate, your essential skills, qualifications and experience need to include:
At least 3 years of experience in embedded software, embedded systems, or embedded security
Experience performing binary analysis, including disassembly and decompilation, and reading assembly on embedded-class architectures
Familiarity with Linux, QNX and Android based embedded systems and how they store and protect data
Hands-on hardware skills, including working with debug interfaces, board-level rework, and signal capture
Familiarity with embedded communication buses and the ability to observe and interpret device traffic
Proficiency in a scripting or programming language for building parsing and automation tooling
Solid understanding of file systems, data encoding, encrypted SQL databases, and cryptographic and secure-boot concepts
Strong analytical and data analysis skills, with the ability to interpret, correlate, and validate data and work through undocumented systems
Experience maintaining code in a version-controlled repository following established best practices
Clear communication skills, comfort working cross-functionally, and the ability to travel locally and internationally as needed