> Markdown version of [/jobs/ext/1989766-embedded-software-engineer](https://www.wearedevelopers.com/jobs/ext/1989766-embedded-software-engineer). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Embedded Software Engineer - **Company:** CACI International Inc. - **Location:** Florham Park, NJ, United States - **Experience:** Expert - **Salary:** $79,400.0 - $162,700.0 - **Contract:** Permanent contract - **Skills:** Assembly Language, C++ (Programming Language), Cyber Security, Software Debugging, Device Drivers, Linux on Embedded Systems, Embedded Software, Firmware, Field-Programmable Gate Array (FPGA), Joint Test Action (IEEE Standards), Python (Programming Language), Linux Kernel, PCI Express, Program Analysis, Queueing Systems, Real-Time Operating Systems, Powerpc, Reverse Engineering, Reduced Instruction Set Computing, System Programming, Universal Asynchronous Receiver/Transmitter, VxWorks, Serial Peripheral Interface, IDA Pro, Build Tools, U-Boot - **Published:** August 8, 2026 - **Apply:** https://www.juju.com/job/00000000gm59h2 ## About the Role _Required:_ Must be a US Citizen and the ability to obtain a security** **clearance** **. 5+ years of professional experience in** **embedded software development** **with reverse engineering skills. Proficiency in** **C, C++** **, and** **assembly programming** **for embedded architectures such as ARM, MIPS, x86, or RISC-V. Experience with** **RTOS environments** **, including** **VxWorks** **and** **embedded Linux** **device driver development. Understanding of** **embedded software IPC mechanisms** **, such as message queues, shared memory, and semaphores. Familiarity with** **embedded hardware interfaces** **, including** **SPI, I2C, PCIe, UART** **, and** **memory-mapped I/O** **. Proficient in** **Python3** **for scripting and automation. Hands-on experience with disassembly and decompilation tools (e.g.,** **IDA Pro, Ghidra, Binary Ninja** **) and debugging tools (** **GDB, JTAG** **). Knowledge of** **embedded security concepts** **, including secure boot, firmware encryption, and hardware authentication. _Desired:_ An active security** **clearance** **is highly desired. Experience in** **cybersecurity research** **, vulnerability discovery, or exploit development in embedded or telecom environments. Familiarity with** **PowerPC assembly** **, including** **QUICC-based systems** **. Experience with** **ARM assembly** **and debugging of SoC-based embedded platforms. Understanding of** **Linux kernel internals** **and/or** **VxWorks internals** **. Hands-on experience with** **FPGA-based systems** **, including those with embedded ARM or PowerPC cores. Background in** **embedded hardware design and debug** **, including the use of oscilloscopes, logic analyzers, and firmware extraction techniques. Ability to build tools and infrastructure to support analysis workflows in a team setting. ## Description We are seeking an** **Embedded Software Engineer** **with expertise in embedded systems, reverse engineering, and cybersecurity. This role is ideal for someone who thrives on** **technical ambiguity** **, enjoys uncovering how complex systems really work, and excels in low-level software and hardware analysis. You'll play a key role in evaluating security and robustness of proprietary embedded systems-developing custom tools, uncovering vulnerabilities, and contributing directly to national cybersecurity efforts. Challenging, impactful work at the intersection of embedded systems, telecom, and cybersecurity. A technically driven environment that encourages innovation and deep technical exploration. Opportunities to publish research, present findings, or contribute to classified mission success. A team culture that values technical mastery, curiosity, and mentorship. Support for continued learning, certifications, and reverse engineering challenges. Responsibilities: Reverse engineer embedded firmware, device drivers, and proprietary telecom systems to identify undocumented functionality and potential security issues. Perform firmware extraction, binary diffing, static and dynamic analysis, and hardware-assisted debugging. Collaborate with hardware engineers to access debug interfaces (e.g., JTAG, SWD), extract flash images, and inspect hardware state. Develop custom tools and scripts (e.g., in Python3) to automate analysis workflows such as firmware unpacking, protocol decoding, and memory analysis. Investigate edge-case behaviors, error-handling routines, and low-level system initialization logic to reveal attack surfaces. Document findings clearly and translate technical complexity into actionable reports for security and engineering teams. ## Related Videos - [Unleashing the Full Potential of the Arm Architecture – Write Once, Deploy Anywhere](https://www.wearedevelopers.com/videos/940-unleashing-the-full-potential-of-the-arm-architecture-write-once-deploy-anywhere) - [Passive ARM Assembly Skills for Debugging, Optimization (and Hacking)](https://www.wearedevelopers.com/videos/1083-passive-arm-assembly-skills-for-debugging-optimization-and-hacking) - [Security Pitfalls for Software Engineers](https://www.wearedevelopers.com/videos/726-security-pitfalls-for-software-engineers) ## Related Articles - [9 Ways to Make Money Hacking](https://www.wearedevelopers.com/magazine/333-9-ways-to-make-money-hacking) - [Dev Digest 134 - Where pixels sing?](https://www.wearedevelopers.com/magazine/477-dev-digest-134-where-pixels-sing) - [7 Important Tips That Every Software Developer Should Know](https://www.wearedevelopers.com/magazine/101-7-important-tips-that-every-software-developer-should-know) - [Is Software Engineering Over-Saturated?](https://www.wearedevelopers.com/magazine/418-is-software-engineering-over-saturated) - [Where to Find Entry-Level Software Engineering Jobs](https://www.wearedevelopers.com/magazine/397-where-to-find-entry-level-software-engineering-jobs) - [Is Software Engineering Hard?](https://www.wearedevelopers.com/magazine/448-is-software-engineering-hard)