
Staff Software Engineer
- Bangalore, Karnataka
- Permanent
- Full-time
- 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.
- Bachelor’s degree or master’s degree in electrical engineering, Computer Science or related fields.
- 8-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.
- Knowledge of communication protocols like ZigBee and BLE.
- 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.