Job Title: Linux Kernel Engineer (Device Driver Developer)
Department: Software
Report to: VP of Software
Job Summary:We are seeking a highly specialized Linux Kernel Engineer to lead the development and integration of device drivers for our next-generation hardware platforms. The primary focus of this role is "hardware enablement"-taking raw silicon and datasheets and transforming them into functional, stable components within the Linux kernel.
The ideal candidate is a low-level expert who is comfortable navigating complex hardware registers, interpreting timing diagrams, and writing efficient, high-performance C code that operates within the constraints of kernel space. You will be responsible for the entire lifecycle of a driver, from initial bring-up to integration into our custom Linux distributions using Yocto or Buildroot.
Essential Duties and Responsibilities: - Driver Development: Design, implement, and maintain Linux device drivers (e.g., I2C, SPI, PCIe, USB, or custom SoC peripherals) within the Linux kernel space.
- Hardware Bring-up: Lead the initial software bring-up of new hardware components, ensuring that all peripheral interfaces are communicating correctly with the CPU.
- Datasheet Analysis: Perform deep-dive analysis of hardware datasheets, register maps, and electrical specifications to implement correct register-level logic and timing sequences.
- Embedded Linux Integration: Integrate newly developed drivers into custom Linux distributions using build systems such as Yocto Project or Buildroot, including the management of Device Tree (DTS) modifications.
- Kernel Debugging: Use advanced kernel debugging techniques to resolve issues related to interrupts, DMA (Direct Memory Access), concurrency/locking, and memory corruption.
- Hardware Interfacing: Work closely with hardware engineers to validate electrical signals against software behavior using logic analyzers, oscilloscopes, or protocol analyzers.
Required Qualifications:- Low-Level C Mastery: Expert-level proficiency in C, specifically regarding kernel-space constraints (no standard libraries, manual memory management, interrupt context awareness).
- Linux Kernel Internals: Deep understanding of the Linux kernel subsystem architecture, including Interrupt Service Routines (ISRs), Concurrency/Spinlocks, DMA, and the Linux Device Model.
- Hardware Protocol Expertise: Strong experience working with low-level communication protocols (e.g., I2C, SPI, UART, PCIe, USB, or Ethernet).
- Datasheet Fluency: Proven ability to read and interpret complex hardware datasheets, register maps, and timing diagrams to drive software implementation.
- Embedded Build Systems: Hands-on experience with Yocto Project (BitBake, recipes, layers) or Buildroot for creating custom Linux images.
- Device Tree Knowledge: Proficiency in writing and maintaining Device Tree Source (DTS) and Device Tree Overlay (DTBO) files.
Preferred Qualifications:- Hardware Debugging Tools: Experience using hardware debugging tools such as Logic Analyzers, Oscilloscopes, or JTAG debuggers.
- Architecture Specifics: Experience with specific processor architectures (e.g., ARM, RISC-V, or x86).
- Linux Kernel Subsystem Expertise: Previous experience contributing to the upstream Linux kernel or working on specific subsystems (e.g., Industrial I/O (IIO), Network, or Input subsystems).
- Scripting: Proficiency in Python for automating hardware testing and data parsing.
- Camera drivers:experience with imaging sensors is also a plus for this job.
Benefits:- 401(k)
- 5% Safe Harbor Contribution to 401k by Hellbender
- Dental insurance, 100% by Hellbender for employees and their families
- Health insurance, 100% by Hellbender for employees and their families
- Vision insurance, 100% by Hellbender for employees and their families
- Flexible spending account
- 7.5 weeks total Paid time off
- Hellbender Inc. options through our Equity Incentive Plan
- Profit Sharing (through 401k)
- Hybrid work environment & flexible work schedule
Education & Experience:- Bachelor's or Master's degree in Computer Science, Electrical Engineering, or a related technical field.
- 5-7 years of experience specifically in Linux kernel-space development and driver writing.
Work Location: UPARC Pittsburgh
Opportunity for advancement: Hellbender is a growing business and follows a policy that prioritizes internal promotions. As new positions are created new opportunities for advancement will be created as well.