Driver Development:
Design, develop, and debug Linux kernel-space drivers and user-space libraries for custom hardware peripherals.
BSP & Bootloaders:
Bring up new hardware platforms (Board Bring-up), customize bootloaders (e.g., U-Boot), and configure/optimize Embedded Linux distributions.
Kernel Customization:
Optimize the Linux kernel for real-time performance (e.g., PREEMPT_RT), memory footprint, and boot time synchronization.
Hardware-Software Collaboration:
Partner closely with Hardware and FPGA design teams to define interfaces, review schematics, and isolate low-level system bugs.
Security & Reliability:
Implement secure boot mechanisms and adhere to strict defense-grade coding standards and software verification protocols.
Requirements & Qualifications
Education:
B.Sc. in Computer Engineering, Electrical Engineering, Computer Science, or a related technical field –
Mandatory
.
Experience:
3+ years
of professional hands-on experience in Embedded Software Development, with a proven track record in Linux Kernel and Driver development.
Core Programming:
Expert proficiency in
C
and
C++
within embedded environments.
Linux Deep-Dive:
Deep understanding of Linux OS internals, memory management, interrupts, and concurrency mechanisms.
Practical experience writing Linux character/block device drivers.
Hardware Interfaces:
Strong familiarity with hardware protocols and subsystem buses (e.g., PCIe, DMA, I2C, SPI, UART, USB, Ethernet).
Language:
Professional proficiency in English (technical writing and verbal communication).
Advantages (Nice to Have)
Experience with Embedded Linux build tools like
Yocto Project
, Buildroot, or Debian-embedded.
Experience with Real-Time Operating Systems (RTOS) like VxWorks, FreeRTOS, or Integrity.
Development experience with ARM, x86, or RISC-V architectures.
Proficiency in Python or Bash for automation, scripting, and testing.