Linux Kernel Software Engineer


Seeking an experienced Linux Kernel Engineer knowledgeable of internals of Linux to work with CPU IP Design and Verification engineers to customize, boot, and bring-up Linux on multithreaded and multicore CPU systems on FPGA and/or Emulator platforms.

Minimum Qualifications

  • Knowledge of Linux, its variations, and internals as it pertains to platform specific updates, booting, and bring-up of Linux on Processor Core/Cluster FPGA or Emulator
  • MS degree in Electrical or Computer Engineering with 4+ years of practical experience or BS with 6+ years
  • Highly experienced in Linux support and development with knowledge in one or more of the following areas:
    • Virtual memory management support
    • Writing and characterizing trap handlers
    • Writing drivers for embedded memory mapped functionality
    • Linux for architectures such as MIPS, RISC-V, or ARM preferred
    • Cache and memory subsystems
  • Software development best practices, including test driven design, continuous integration
  • Python, C/C++, assembly language or other programming experience

Preferred Qualifications

  • Experience with RISC-V, ARM and/or MIPS CPU and ISA
  • KVM experience is a plus
  • Experience with writing debug software such OpenOCD is a plus
  • Compiler toolchain experience is a plus

Roles and Responsibilities

  • Customize Linux implementation for our CPU IP
  • Architecture development and specification. From early high-level architectural exploration, through working with designers on micro architectural tradeoffs and arriving at detailed specification
  • Create debug tools for our CPU IP
  • Bringup Linux in an FPGA environment, debug with gdb, write soak/stress tests
  • Bringup, run and operate Linux in a QEMU environment by adding enhancements such as compatible drivers