Linux Kernel Engineer (Device Driver Developer)

Hellbender Inc.
Pittsburgh, United States of America
12 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior

Job location

Pittsburgh, United States of America

Tech stack

Board Bringup
UClibc (C Standard Library)
Communications Protocols
Datasheets
Software Debugging
Linux
Device Drivers
Memory Management
Linux on Embedded Systems
Ethernet
Joint Test Action (IEEE Standards)
Python
Kernel Debuggers
Linux kernel
Linux-Powered Devices
Linux Distribution
PCI Express
Reduced Instruction Set Computing
Product Software Implementation Methods
Subsystems
Universal Asynchronous Receiver/Transmitter
USB
Scripting (Bash/Python/Go/Ruby)
Serial Peripheral Interface
Concurrency
Hardware Testing
Yocto
Information Technology
Drilldown
Build Tools
Hardware Infrastructure
Hardware Debugging

Job description

  • 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.

Requirements

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., * 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., * 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., * 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.

Benefits & conditions

  • 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

About the company

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., 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.

Apply for this position