Linux Kernel Engineer

San Jose, CA /
Engineering /
Full time
/ Remote
Seeking an experienced Linux Kernel Engineer with strong knowledge of Linux internals to customize, boot, and bring-up Linux on multithreaded and multicore CPU systems on FPGA and/or Emulator platforms in collaboration with CPU IP Design and Verification engineers.

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
-Architecture for 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 as OpenOCD
Compiler toolchain experience

Role and Responsibilities

Customize Linux implementation for our CPU IP
Architecture development and specification. From early high-level architectural exploration, through working with designers on microarchitecture tradeoffs and arriving at the 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