Hellbender is a Physical AI infrastructure company that builds integrated edge perception platforms enabling machines to see, understand, and act in real time.
<p><strong>Company Name: </strong>Hellbender Inc.</p> <p><strong>Job Title</strong>: Linux Kernel Engineer (Device Driver Developer)</p> <p><strong>Department</strong>: Software</p> <p><strong>Report to: </strong>VP of Software </p> <p><strong>Who we are:</strong></p> <p>Hellbender Inc. is a Pennsylvania Benefit Corporation who partners with innovators to mature their Artificial Intelligence enabled computing sensors and produce their solutions onshore at prototype to high volumes.</p> <p>Hellbender is intentionally forming an inclusive work environment and is committed to uplifting the historically marginalized identities including veterans, women, trans and underrepresented races in our community and industry.</p> <p><strong>Job Summary:</strong><strong> </strong></p> <p class="x_whitespace-pre-wrap" data-ogsb="rgb(255, 255, 255)"><span data-ogsc="rgb(15, 15, 15)" data-olk-copy-source="MessageBody">We are seeking a highly specialized </span><span data-ogsc="rgb(15, 15, 15)">Linux Kernel Engineer</span><span data-ogsc="rgb(15, 15, 15)"> 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.</span></p> <p class="x_whitespace-pre-wrap" data-ogsb="rgb(255, 255, 255)"><span data-ogsc="rgb(15, 15, 15)">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.</span></p> <p><strong>Essential Duties and Responsibilities: </strong></p> <ul> <li data-ogsc="rgb(15, 15, 15)"><span data-ogsc="" data-olk-copy-source="MessageBody">Driver Development:</span><span data-ogsc=""> Design, implement, and maintain Linux device drivers (e.g., I2C, SPI, PCIe, USB, or custom SoC peripherals) within the Linux kernel space.</span></li> <li data-ogsc="rgb(15, 15, 15)"><span data-ogsc="">Hardware Bring-up:</span><span data-ogsc=""> Lead the initial software bring-up of new hardware components, ensuring that all peripheral interfaces are communicating correctly with the CPU.</span></li> <li data-ogsc="rgb(15, 15, 15)"><span data-ogsc="">Datasheet Analysis:</span><span data-ogsc=""> Perform deep-dive analysis of hardware datasheets, register maps, and electrical specifications to implement correct register-level logic and timing sequences.</span></li> <li data-ogsc="rgb(15, 15, 15)"><span data-ogsc="">Embedded Linux Integration:</span><span data-ogsc=""> Integrate newly developed drivers into custom Linux distributions using build systems such as </span><span data-ogsc="">Yocto Project</span><span data-ogsc=""> or </span><span data-ogsc="">Buildroot</span><span data-ogsc="">, including the management of Device Tree (DTS) modifications.</span></li> <li data-ogsc="rgb(15, 15, 15)"><span data-ogsc="">Kernel Debugging:</span><span data-ogsc=""> Use advanced kernel debugging techniques to resolve issues related to interrupts, DMA (Direct Memory Access), concurrency/locking, and memory corruption.</span></li> <li data-ogsc="rgb(15, 15, 15)"><span data-ogsc="">Hardware Interfacing:</span><span data-ogsc=""> Work closely with hardware engineers to validate electrical signals against software behavior using logic analyzers, oscilloscopes, or protocol analyzers.</span></li> </ul> <p><strong>Required Qualifications:</strong><strong> </strong></p> <ul> <li data-ogsc="rgb(15, 15, 15)"><span data-ogsc="" data-olk-copy-source="MessageBody">Low-Level C Mastery:</span><span data-ogsc=""> Expert-level proficiency in C, specifically regarding kernel-space constraints (no standard libraries, manual memory management, interrupt context awareness).</span></li> <li data-ogsc="rgb(15, 15, 15)"><span data-ogsc="">Linux Kernel Internals:</span><span data-ogsc=""> Deep understanding of the Linux kernel subsystem architecture, including Interrupt Service Routines (ISRs), Concurrency/Spinlocks, DMA, and the Linux Device Model.</span></li> <li data-ogsc="rgb(15, 15, 15)"><span data-ogsc="">Hardware Protocol Expertise:</span><span data-ogsc=""> Strong experience working with low-level communication protocols (e.g., I2C, SPI, UART, PCIe, USB, or Ethernet).</span></li> <li data-ogsc="rgb(15, 15, 15)"><span data-ogsc="">Datasheet Fluency:</span><span data-ogsc=""> Proven ability to read and interpret complex hardware datasheets, register maps, and timing diagrams to drive software implementation.</span></li> <li data-ogsc="rgb(15, 15, 15)"><span data-ogsc="">Embedded Build Systems:</span><span data-ogsc=""> Hands-on experience with </span><span data-ogsc="">Yocto Project</span><span data-ogsc=""> (BitBake, recipes, layers) or </span><span data-ogsc="">Buildroot</span><span data-ogsc=""> for creating custom Linux images.</span></li> <li data-ogsc="rgb(15, 15, 15)"><span data-ogsc="">Device Tree Knowledge:</span><span data-ogsc=""> Proficiency in writing and maintaining Device Tree Source (DTS) and Device Tree Overlay (DTBO) files.</span></li> </ul> <p><strong>Preferred Qualifications:</strong></p> <ul> <li data-ogsc="rgb(15, 15, 15)"><span data-ogsc="" data-olk-copy-source="MessageBody">Hardware Debugging Tools:</span><span data-ogsc=""> Experience using hardware debugging tools such as Logic Analyzers, Oscilloscopes, or JTAG debuggers.</span></li> <li data-ogsc="rgb(15, 15, 15)"><span data-ogsc="">Architecture Specifics:</span><span data-ogsc=""> Experience with specific processor architectures (e.g., ARM, RISC-V, or x86).</span></li> <li data-ogsc="rgb(15, 15, 15)"><span data-ogsc="