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 development, real-time systems, and distributed communication, with the ability to make sound architectural decisions and mentor junior and intermediate engineers.
Length: 6 Month contract with a possibility of an extension
Key Responsibilities
- Own architectural decisions for real-time embedded communication systems
- Design and implement message routing, translation layers, and distributed messaging architectures across heterogeneous network domains
- 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
- Bridge and integrate heterogeneous network types across hardware and software boundaries
- Author and maintain technical documentation including ICDs, message catalogs, and configuration schemas
- Establish configuration standards that scale across device families
- Lead hardware/software integration efforts in coordination with FPGA and systems teams
- Drive code quality standards for safety-critical embedded systems
- Evaluate and prototype emerging communication protocols
- Support and guide junior and intermediate engineers through technical mentorship and code review
- Contribute to system-level debugging, performance tuning, and continuous improvement initiatives
- Potential technical leadership on autonomous vehicle and UAS initiatives
Work Environment
- On-site engineering environment in Madison Heights, MI
- Close collaboration with software, hardware, and systems engineering teams
- Primarily desk-based work with extensive hands-on development and testing