Embedded Systems
Senior Firmware Engineer responsible for design, development, and optimization of embedded firmware for IoT and embedded systems. Handles end-to-end firmware development, debugging, and performance tuning to ensure reliable and efficient device operation.
Key Responsibilities
- Develop and maintain firmware for embedded systems and IoT devices
- Design and implement drivers, middleware, and application-level code
- Work on microcontrollers and RTOS (Real-Time Operating System) based systems
- Handle communication protocols (UART, SPI, I2C, CAN, MQTT, HTTP, etc.)
- Debug and troubleshoot firmware issues at system level
- Optimize code for performance, memory, and power consumption
- Collaborate with hardware team for board bring-up and integration
- Perform firmware testing, validation, and release management
- Implement OTA (Over-The-Air) firmware updates and version control
- Analyze field issues and provide timely fixes
- Maintain proper documentation and code repositories
- Conduct code reviews and mentor junior engineers
- Follow best practices for secure and reliable firmware development
Required Skills
- Strong programming skills in C/C++ for embedded systems
- Experience with microcontrollers (ARM, ESP, AVR, etc.)
- Hands-on experience with RTOS concepts and implementation
- Knowledge of communication protocols and networking basics
- Familiarity with debugging tools (JTAG, logic analyzer, etc.)
- Understanding of memory management and low-level programming
- Experience with version control systems (Git, SVN)
- Good problem-solving and analytical skills
Educational Qualification
- Bachelor’s / Master’s Degree in Electronics, Computer Engineering, or related field
Experience
- 2+ years of experience in embedded firmware development
- Experience in IoT firmware development preferred
Other Requirements
- Ability to independently handle firmware development lifecycle
- Strong documentation and communication skills
- Ability to work in cross-functional teams
Key Performance Indicators (KPIs)
- Firmware stability and reliability
- Bug resolution time
- Code quality and efficiency
- Successful product releases
- Reduction in field issues