Key Responsibilities
  • Develop and maintain Linux kernel device drivers (character, platform, I2C, SPI, UART).
  • Author and debug Device Tree files.
  • Port and customize bootloaders (U-Boot).
  • Work with build systems such as Yocto and Buildroot, and with cross toolchains.
  • Perform board bring-up on ARM / ARM64 platforms.
  • Work on kernel internals: interrupts, DMA, memory management, and concurrency/locking.
  • Debug using gdb, JTAG, ftrace, printk/dynamic debug, and kernel oops analysis.
  • Follow the Git and kernel patch workflow and handle kernel version updates.
  • Document designs and follow development processes.
  • Collaborate with hardware, QA, and senior engineers, and guide junior team members.
Required Skills
  • Linux kernel device drivers: character, platform, I2C, SPI, UART.
  • Device Tree authoring and debugging.
  • Bootloaders: U-Boot porting and customization.
  • Build systems: Yocto / Buildroot and cross toolchains.
  • Board bring-up on ARM / ARM64 platforms.
  • Kernel internals: interrupts, DMA, memory management, concurrency/locking.
  • Debugging: gdb, JTAG, ftrace, printk/dynamic debug, kernel oops analysis.
  • Strong C and shell scripting.
  • Git and kernel patch workflow, and kernel version updates.
  • Good English communication skills and the ability to work effectively in a team.
Good to Have
  • SoC experience: NXP i.MX, TI Sitara/Jacinto, Qualcomm, Xilinx.
  • Power management (suspend/resume, cpufreq/cpuidle).
  • Secure boot / trusted firmware (TF-A, OP-TEE).
  • PREEMPT_RT / real-time Linux.
  • Upstream kernel contributions.
What We're Looking For
  • Strong command of Linux kernel and BSP fundamentals.
  • Solid debugging and root-cause analysis skills.
  • Ability to work independently and mentor juniors.
  • Enthusiasm for developing real-world embedded products.

Required Skills

SW: Build System: Yocto SW: AOSP or Android BSP SW : Programming Languages (C/C++/Java any) SW: Serial Communication Protocols: SPI, I2C, UART, CAN, USB