Job Description :
We are looking for a highly skilled Embedded Software Engineer with strong expertise in Embedded C programming and Linux device driver development.
The ideal candidate will have hands-on experience working on Linux internals and developing or maintaining device drivers for various hardware interfaces.
Key Responsibilities :
- Design, develop, and maintain device drivers for Linux-based embedded systems.
- Work on various drivers such as GPIO, DMA, LCD, Sensor, PCIe, Ethernet, NAND / NOR, USB, or similar interfaces.
- Develop efficient, reliable, and scalable embedded software using Embedded C.
- Analyze and optimize performance and memory usage in embedded systems.
- Collaborate with hardware, firmware, and system teams to integrate and validate software solutions.
- Debug and resolve issues related to device drivers and Linux kernel modules.
- Participate in design reviews, code reviews, and system integration testing.
Required Skills and Qualifications :
Strong programming skills in Embedded C and Data Structures.Solid understanding of Linux internals and kernel-space / user-space concepts.Proven experience in Linux Device Driver development (minimum one or two full-cycle driver developmentprojects).
Good understanding of hardware interfaces and protocols (e.g., SPI, I2C, UART, PCIe, USB, Ethernet).Experience with kernel debugging tools and build systems (e.g., Makefiles, Yocto, Buildroot) is a plus.Strong problem-solving, analytical, and debugging skills.Excellent communication and teamwork abilities.Preferred Qualifications :
Hands-on experience with ARM-based architectures or other embedded platforms.Exposure to bootloaders (U-Boot), BSP development, or RTOS environments.Experience with cross-compilation toolchains and version control systems (e.g., Git).Education :
Bachelors or Masters degree in Electronics, Computer Science, Electrical Engineering, or a relateddiscipline.
(ref : hirist.tech)