Responsibilities
- Design and implement embedded firmware in C/C++ for microcontroller-driven systems
- Bring up new hardware platforms and debug hardware-firmware interactions
- Integrate firmware with newly developed hardware and ensure functional correctness
- Create and refine device drivers, board support packages, and middleware layers
- Optimize firmware components for efficient memory and processor usage
- Implement and validate serial and network communication protocols including UART, SPI, I2C, CAN, USB, and Ethernet
- Collaborate with hardware engineers during schematic reviews and failure analysis
- Troubleshoot hardware issues using root cause analysis techniques
- Ensure firmware designs meet performance, reliability, and power consumption targets
- Perform unit and integration testing to verify firmware functionality
- Support system-level validation and work with cross-functional teams on issue resolution
- Utilize debugging tools such as JTAG, oscilloscopes, and logic analyzers
- Maintain accurate and up-to-date technical documentation
- Write clear design specifications and release notes for firmware versions
- Ensure code quality through structured development and testing practices