HamburgerMenu
hirist

Job Description

Job Title : Embedded Software Engineer - Linux Kernel & Device Drivers (C/C++)


Location : Hyderabad, India


Job Summary :


- We are looking for a highly skilled Embedded Software Engineer experienced in Embedded C/C++ development, Linux Kernel programming, and Device Driver design.


- The ideal candidate will contribute to low-level software development for embedded systems, working closely with hardware and firmware teams to design, implement, and optimize drivers and kernel modules for next-generation platforms.


Key Responsibilities :


Embedded Software Development :


- Design, develop, and debug embedded software in C and C++ for Linux-based systems.


- Develop and maintain board support packages (BSPs), bootloaders, and low-level firmware.


- Work on real-time performance optimization, memory management, and inter-process communication.


Linux Kernel & Device Driver Development :


- Develop and maintain Linux kernel modules and device drivers for various peripherals (I2C, SPI, UART, GPIO, USB, PCIe, etc.).


- Integrate and test drivers on custom hardware platforms.


- Analyze kernel crashes, debug hardware/software interactions, and contribute kernel patches when required.


- Collaborate with hardware engineers for bring-up, debugging, and validation of new boards.


System Integration & Debugging :


- Perform kernel configuration, cross-compilation, and root filesystem customization.


- Use debugging tools such as GDB, JTAG, Lauterbach, ftrace, and perf to diagnose complex issues.


- Develop test plans and perform validation of embedded software modules.


Collaboration & Documentation :


- Work with multidisciplinary teams (hardware, firmware, QA) to deliver robust embedded solutions.


- Write clear and maintainable documentation, including design specs, API guides, and debug notes.


- Participate in code reviews and continuous integration activities to ensure software quality.


Required Skills & Experience :


- Bachelors or Masters degree in Electronics, Computer Engineering, or related field.


- 3- 8 years of hands-on experience in embedded software development.


- Strong proficiency in Embedded C and C++ (C++11/14/17 preferred).


- Deep understanding of Linux Kernel internals, device driver architecture, and hardwaresoftware interaction.


- Experience with cross-compilation, build systems (Make, CMake, Yocto, Buildroot), and source control (Git).


- Familiarity with ARM architecture, SoC bring-up, and RTOS environments is a plus.


- Strong debugging and analytical skills, with ability to work independently in fast-paced environments.


Preferred / Good-to-Have Skills :


- Exposure to Yocto Project, U-Boot, and bootloader customization.


- Knowledge of network stack, USB, or multimedia subsystem development.


- Experience with embedded Linux distributions or open-source contributions.


- Understanding of hardware schematics and signal analysis (oscilloscope, logic analyzer).

info-icon

Did you find something suspicious?