Embedded Software Engineer
Position Overview
The Senior Software Engineer is a senior technical contributor responsible for designing, implementing, and supporting embedded and real-time software systems. This role focuses on architecture, protocol implementation, and high-reliability communication systems used in complex, hardware-integrated environments.
The position requires deep expertise in embedded software, real-time systems, and distributed communication, along with the ability to mentor junior and intermediate engineers.
Contract Length: Initial 6-month contract with potential extension
Key Responsibilities
Own architectural decisions for real-time embedded communication systems
Design and implement message routing, translation layers, and distributed messaging architectures
Develop production-quality embedded software with a focus on reliability, determinism, and performance
Implement and maintain hardware interface layers using C/C++
Design real-time systems with deterministic timing requirements
Integrate heterogeneous network types across hardware and software boundaries
Author and maintain technical documentation including ICDs and configuration schemas
Establish configuration standards across device families
Lead hardware/software integration efforts with FPGA and systems teams
Drive code quality standards for safety-critical embedded systems
Support and mentor junior and intermediate engineers through reviews and guidance
Contribute to system-level debugging, performance tuning, and continuous improvement initiatives
Required Qualifications
Bachelors degree in Computer Science, Engineering, or related field (Masters preferred)
8+ years of professional software development experience
Expert-level Rust experience in production embedded environments
Strong proficiency in C/C++ for low-level and hardware interface development
Experience designing distributed messaging architectures
Experience with automotive and industrial communication protocols (CAN 2.0, J1939, CANopen)
Proven experience developing real-time systems with deterministic timing requirements
Demonstrated ability to bridge heterogeneous network types
Experience authoring technical specifications and protocol documentation
Track record of mentoring engineers
Strong written and verbal communication skills
Preferred Qualifications
FPGA development experience (VHDL/Verilog)
Experience with time-sensitive networking (TSN) or deterministic Ethernet
RTOS experience (FreeRTOS, Zephyr, or QNX)
Experience with UAV or drone systems including flight controllers or telemetry
Protocol design and specification authorship experience
Systems integration experience across hardware and software boundaries
Ability to obtain a security clearance
Core Competencies
Embedded and real-time software architecture
Distributed systems and communication protocols
Hardware/software integration
Technical leadership and mentorship
Analytical problem-solving and debugging
High-reliability and safety-critical system design
#HRUProfessional