Role Overview
We are seeking an experienced Embedded Engineer/Lead/Architect to design, develop, and optimize embedded software and firmware solutions for a wide range of hardware platforms. The ideal candidate should have strong expertise in Embedded C/C++, RTOS, Embedded Linux systems, device driver development, and microcontroller-based applications.
Responsibilities
- Design, develop, test, and maintain embedded software and firmware for embedded systems.
- Develop applications using Embedded C/C++ for microcontroller and processor-based platforms.
- Design and implement firmware for ARM, STM32, NXP, or similar microcontrollers.
- Develop and debug device drivers for Embedded Linux and RTOS-based systems.
- Configure and optimize RTOS scheduling, memory management, and peripheral interfaces.
- Implement and troubleshoot communication protocols such as UART, SPI, I2C, CAN, USB, and Ethernet.
- Perform board bring-up, hardware-software integration, debugging, and performance optimization.
- Use debugging tools such as JTAG, oscilloscopes, and logic analyzers to identify and resolve issues.
- Collaborate with hardware, validation, QA, and cross-functional teams throughout the product lifecycle.
- For senior candidates, define embedded system architecture, lead technical design, and mentor engineering teams.
Requirements
- 3–15 Years of experience.
- Strong programming experience in Embedded C and C++.
- Hands-on experience with RTOS (such as FreeRTOS, ThreadX, or VxWorks).
- Experience with Embedded Linux development and device driver programming.
- Strong understanding of firmware development for ARM, STM32, or NXP microcontrollers.
- Experience with hardware interfaces including UART, SPI, I2C, CAN, GPIO, USB, and Ethernet.
- Proficiency in debugging using JTAG and embedded development tools.
- Familiarity with version control systems such as Git.
- Bachelor's or Master's degree in Electronics, Computer Science, Electrical Engineering, or a related field.
Nice to Have
- Experience with Yocto, Buildroot, U-Boot, or Linux kernel customization.
- Knowledge of secure boot, embedded security, and OTA updates.
- Experience with scripting languages such as Python or Shell.
- Familiarity with Agile, CI/CD, and automated testing.
Skills
- Embedded C/C++
- RTOS
- Embedded Linux
- ARM Microcontrollers
- Communication Protocols