Job Description:
Responsibilities
- Architecting and implementing firmware solutions for embedded systems, including low-level drivers, communication protocols, and application logic.
- Work with product definers, hardware engineers, QA and product teams to ensure firmware compatibility with hardware designs.
- Developing comprehensive test plans and procedures to verify firmware functionality.
- Debugging hardware/firmware integration issues by utilizing debugging tools to analyze firmware behavior and troubleshoot complex problems.
- Provide ongoing maintenance and support for existing firmware, including troubleshooting, debugging and resolving issues as needed to ensure product reliability and performance.
- Mentor junior engineers and guide best practices for FW/SW development.
Required Experience and Skills
- Bachelor's degree or master's degree in electrical engineering, Computer Science or related fields.
- 5-10 years of experience in firmware development, embedded systems and related areas.
- Proficiency in C and assembly language. Experience with Python or scripting languages is a plus.
- Strong knowledge of microcontrollers, microprocessors, FPGAs, and other embedded hardware architectures,
- Experience with bare metal programming and RTOS like FreeRTOS or Zephyr.
- Experience in writing low level drivers for peripherals like UART, SPI, I2C, PWM etc.
- Deep expertise in wireless communication protocols like ZigBee, BLE, Thread, etc.
- Proficiency in using debug tools like JTAG, GDB, oscilloscopes, Logic Analysers and other debuggers.
- Understanding of secure firmware development and firmware over-the-air updates.
- Ability to work with different version control systems like GIT, GitHub, GitLab or Bitbucket.
- Experience with unit testing, system testing and integration testing. Ability to isolate issues in a system test environment.
- #LI-CB1