SlipstreamJobs tracks this role from the company's public career site. Apply directly on the employer's site.
Efficient Computer is building next-generation energy-efficient, general-purpose processors based on the Fabric architecture, a novel spatial dataflow design. The company has shipped its first processor (Electron E1) in volume and recently closed $97M in Series B funding.
You will own the Linux kernel-mode driver that brings the Fabric accelerator to life. This is a key role on the System Software team, working closely with architecture, micro-architecture, verification, and compiler teams during pre-silicon development and bring-up.
**Key Responsibilities:**
**Own the Kernel Driver**
- Design, implement, and maintain the Linux kernel-mode driver for the Fabric accelerator, including device discovery and probe, MMIO register interfaces, interrupt handling, command and completion queue management, power management, firmware, chip diagnostics, logging, and device health.
- Define how custom hardware accelerators are exposed to Linux: ioctl and sysfs interfaces, and the submission and synchronization model between application cores and the Fabric.
- Keep the driver clean, upstreamable in style, and portable across kernel and device versions.
- Implement the unified memory model between ARM cores and the Fabric accelerator.
- Own SMMU (IOMMU) integration: stream and context configuration, tensor pool allocation, page table management, stage-1 and stage-2 translation, shared virtual addressing, and fault handling.
**Drive Pre-Silicon Bringup and Platform Enablement**
- Build and maintain QEMU device models and board definitions for the Fabric and its SoC so that the kernel, driver, and runtime can be developed and tested before silicon.
- Own the Linux boot path on new platforms: boot firmware handoff, device tree, kernel configuration, early console, and root filesystem, from first boot in emulation through FPGA prototypes to production silicon.
- Lead kernel-side bring-up on first silicon: validating MMIO map, interrupts, clocks, resets, and memory against the hardware specification, and turning findings into bug reports and design feedback for the hardware team.
- Be the go-to engineer for kernel debugging across the stack: crash dumps, KGDB and JTAG, ftrace and perf, lockdep and KASAN, and hard-to-reproduce hangs and memory corruptions.
- Establish kernel-level test coverage, including driver unit tests, emulation-based regression suites, and hardware-in-the-loop validation.
**Required Qualifications**
- B.S. in Electrical/Computer Engineering, Computer Science, or equivalent; M.S. a plus.
- 7+ years of systems software experience, including significant hands-on Linux kernel-mode driver development for complex devices (accelerators, GPUs, NPUs, networking, or storage).
- Deep understanding of Linux kernel memory management, including cache coherence, IOMMU/SMMU configuration, and unified or shared virtual memory between CPU and accelerators.
- Hands-on experience with QEMU, emulation, or simulation environments, including writing or extending device models and board definitions.
- Experience with pre-silicon hardware bring-up and first-silicon enablement, working from hardware specifications and register maps before the platform is stable.
- Experience designing runtime interfaces between kernel and user space: ABI and HAL design, synchronization, memory sharing, and error handling.
- Strong kernel debugging skills across crash analysis, tracing, hardware debuggers, and race and memory-corruption diagnosis.
- Fluency with memory-mapped I/O: register-level programming, ordering and barrier semantics, and interrupt handling.
- Experience interfacing custom hardware accelerators to Linux.
- Strong experience with ARM cores and the ARM architecture (AArch64, exception levels, GIC, SMMU, cache and memory attributes).
- Solid understanding of the Linux boot flow: boot firmware, device tree, kernel initialization, and early platform enablement.
- Expert C and strong scripting skills; comfortable working with AI-assisted development tools for code, analysis, and debugging.
**Desired Qualifications**
- Experience with FPGA prototyping and hardware emulation platforms (Palladium, Zebu, Veloce, or similar).
- Knowledge of dataflow, spatial, or other novel compute architectures, and of how compilers and runtimes target them.
- Experience on a first-generation silicon product, where the software stack and the hardware matured together.
- Experience working on a CUDA, ROCm, or other language runtime software stack.