Role OverviewWe are seeking a resourceful hands-on Embedded Software Engineer to build high-reliability real-time systems. You will operate at the intersection of hardware and software, writing Modern C++ for Linux targets while leveraging Python for test automation. This is a hardware heavy role; you should be comfortable bringing up boards, debugging signals with an oscilloscope, and writing defensive code that ensures safety and performance.
Key Responsibilities- Embedded Development: Write efficient, robust C++ for Embedded Linux platforms. You know when to follow the rules and when to think laterally to squeeze out performance.
- Agile Execution: Work within an agile sprint driven framework to iterate quickly with short planning and development cycles.
- Hardware Interface: Write drivers and manage communications over common interlinks (Examples: CAN, Ethernet, TCP/IP, UART). You aren't afraid to reverse-engineer a protocol or write a custom driver if the standard one fails.
- Deep-Dive Debugging: Get your hands dirty with hardware integration and bring-up. You will troubleshoot signal integrity and protocol weirdness using oscilloscopes, logic analyzers, or network sniffers.
- Resilient Design: Design software with a safety-first mindset. You anticipate edge cases and write defensive code that ensures deterministic behavior, even when assumptions are violated or the hardware does something unexpected.
Qualifications- Experience: 2-5 years of embedded software engineering
- Core Languages: Strong proficiency in modern C++ (11/14/17/20) for production code. Fluency in Python and Bash for data manipulation, testing, and prototyping.
- Mindset: You are comfortable working with ambiguity. You don't need a manual for everything; you can figure out how things work (or why they don't) and devise creative workarounds to keep the project moving.
- OS: Solid understanding of Embedded Linux (kernel/user-space interactions) and how to manipulate it via the shell.
- Real-Time: Experience with real-time constraints and resource constrained hardware.
- Build Systems: Familiarity with Yocto, GTest, CMake, ansible is a plus.
At Archer, we aim to attract, retain, and motivate talent with the skills and leadership needed to grow our business. We drive a pay-for-performance culture and reward performance that supports the Company's strategy. For this position, we are targeting a base pay range of $142,800 - $220,600. Actual compensation offered will be determined by job-related knowledge, skills, and experience.