HamburgerMenu
hirist

USB Device Driver Developer - C/C++ Programming

Posted on: 20/10/2025

Job Description

Role Overview :

We are seeking highly skilled USB Stack Developers and Linux Driver Developers with expertise in x86 architectures. The ideal candidate will bring hands-on experience in USB software stack development, Linux kernel/driver programming, and OS internals. This role demands strong problem-solving, design, and debugging skills with the ability to deliver efficient, high-quality system software.

Key Roles & Responsibilities :

USB Stack Developer :

- Design, develop, and maintain USB software stack components.

- Review, enhance, and optimize USB architectures for performance, scalability, and compliance.

- Work on USB protocols, descriptors, transfers, and class drivers.

- Debug and resolve issues in USB connectivity, data transfer, and power management.

- Collaborate with hardware, firmware, and QA teams for end-to-end USB solution delivery.

Linux Driver Developer (x86 Architectures) :

- Develop, port, and optimize Linux kernel drivers for x86-based systems.

- Work on OS concepts including scheduling, services, OS-Boot, and runtime services.

- Debug and troubleshoot low-level system issues related to kernel, drivers, and hardware interactions.

- Contribute to kernel upstreaming and patch development where applicable.

- Perform code reviews, architectural reviews, and documentation for driver modules.

General Responsibilities :

- Ensure compliance with industry standards and best practices in driver development.

- Collaborate with cross-functional teams (hardware, embedded, systems engineers).

- Participate in design reviews, testing strategies, and performance benchmarking.

- Provide technical guidance and mentorship for junior engineers when needed.

Required Skills & Experience :

- Bachelors/Masters degree in Computer Science, Electronics, or related discipline.

- 2+ years of proven experience in USB stack development (mandatory).

- Hands-on expertise in Linux kernel/driver development with x86 focus.

- Strong C/C++ programming skills for system-level software.

- Experience in designing and reviewing USB architectures.

- Knowledge of Linux internals scheduling, services, memory management, boot process, and runtime services.

- Strong debugging skills using tools like GDB, JTAG, KGDB, perf, strace, ftrace.

- Familiarity with build systems (Make, CMake, Yocto) and version control (Git).

Preferred Skills (Good to Have) :

- Exposure to USB 2.0/3.x protocols and compliance testing tools.

- Understanding of PCIe, networking, and storage drivers.

- Contributions to Linux kernel community or open-source driver projects.

- Knowledge of performance tuning and security aspects in driver development.

- Familiarity with virtualization (KVM, QEMU, Docker) and cross-compilation.


info-icon

Did you find something suspicious?