Role Overview
We are looking for an Embedded Software Development Engineer to design, develop, test, and maintain embedded software for microcontroller-based systems. The candidate should have knowledge of embedded C programming, debugging, and communication protocols.
Responsibilities
- Develop embedded software using C/C++ for microcontrollers.
- Write, test, and debug firmware for embedded systems.
- Work with hardware engineers to integrate software with electronic circuits.
- Develop and maintain device drivers and peripheral interfaces.
- Debug software using tools such as JTAG, UART, and oscilloscopes.
- Implement communication protocols like UART, SPI, I2C, CAN, or USB.
- Perform unit testing and troubleshoot software issues.
- Prepare technical documentation and code comments.
- Participate in code reviews and software testing.
Requirements
- Strong knowledge of Embedded C and basic C++.
- Understanding of microcontrollers (ARM, STM32, PIC, AVR, etc.).
- Knowledge of RTOS concepts (preferred).
- Familiarity with communication protocols: UART, SPI, I2C, CAN, USB (preferred).
- Experience with debugging tools and IDEs.
- Understanding of software development life cycle (SDLC).
- Basic knowledge of version control tools such as Git.
- Bachelor's degree in Electronics & Communication, Electronics, Electrical, Instrumentation, Computer Engineering, or a related field.