Embedded Software Developer
Summary
Develops and tests real-time embedded firmware for distributed systems, focusing on reusable components, communication protocols, and safety-critical compliance.
Key Qualifications & Experience
- Design and implement software running on a distributed embedded system with multiple microcontrollers with a focus on creating re-usable software designs / components.
- Design and implement real-time Ethernet communication.
- Develop custom serial communication protocol over UART, SPI, IPC and I2C interfaces to support reliable data exchange between the device and external components.
- Specify requirements, design, implement, and test both bare metal and RTOS low level software for creating a scalable platform.
- Work with/resolve ambiguity in requirements/specifications/designs. Maintain clear and concise documentation of desi gn and firmware architecture.
- Create elegant, efficient real-time software components and interfaces.
- Develop software component testing methodologies and implementations to ensure maturity/stability/release readiness, code coverage and adherence to MISRA guidelines
- Create traceability matrix between all SW work products as per ASPICE and ISO26262 guidelines based on safety rating of the component.
- Work with hardware and debuggers at a bench and HIL level to verify software operation.
- Profile power / CPU / bus usage and identify opportunities for optimization on the component/ system level.
- Collaborate with V&V to develop comprehensive test plans and perform thorough testing to validate firmware functionality, stability, and performance under various conditions, including low power modes.
- Interface with external vendors, including review of firmware specifications, providing design guidance, and integrating c ode releases.
- Work with integration test team to automate unit tests / SW components tests in nightly builds with python scripting.
- Provide bench and debugging support to offshore team
- Perform integration testing, debug integration issues, coordinate triaging session with different component owners and deliver release in time.