Embedded Systems Engineer
We are seeking an experienced Embedded Systems Engineer with strong proficiency in C/C++ programming and proven hands-on experience with microcontroller platforms such as Arduino, STM32, and ESP32. The ideal candidate will be responsible for designing, developing, testing, and optimizing embedded firmware for IoT devices, robotics systems, and custom electronics applications.
Key Responsibilities:
Design, develop, and maintain embedded firmware in C/C++ for microcontrollers (Arduino, STM32, ESP32).
Develop and integrate hardware drivers, communication protocols (UART, I2C, SPI, CAN, RS485, etc.), and peripherals.
Implement real-time applications using FreeRTOS or similar RTOS environments.
Collaborate with hardware engineers to define system architecture, debug hardware–software integration, and perform board bring-up.
Optimize code for performance, memory usage, and power efficiency.
Design and execute unit tests, system validation, and debugging using oscilloscopes, logic analyzers, and debuggers (ST-Link, JTAG, etc.).
Implement wireless communication protocols (Wi-Fi, Bluetooth/BLE, LoRa, ZigBee, etc.) on embedded platforms.
Maintain thorough technical documentation of designs, firmware architecture, and test results.
Stay up to date with new microcontrollers, embedded tools, and industry trends.
Required Qualifications:
Bachelor’s degree in Electrical/Electronics/Mechatronics/Computer Engineering, or related field.
Strong proficiency in C/C++ programming for embedded systems.
Hands-on experience with Arduino, STM32 (HAL/LL libraries, CubeMX, CMSIS), and ESP32 (ESP-IDF, Arduino-ESP32).
Solid understanding of microcontroller architecture, timers, interrupts, and peripherals.
Experience with communication protocols: UART, I2C, SPI, CAN, USB.
Familiarity with FreeRTOS or other real-time operating systems.
Proficiency with debugging tools (JTAG/SWD, ST-Link, logic analyzer, oscilloscope).
Knowledge of embedded software design patterns, version control (Git), and build systems (CMake, Makefiles, PlatformIO).