Software Engineer II - Device Drivers

Torc Robotics, Inc.
Ann Arbor, United States of America
2 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Intermediate
Compensation
$ 193K

Job location

Ann Arbor, United States of America

Tech stack

Bash
C++
CMake
Computer Engineering
Continuous Integration
Data Migration
Software Debugging
DevOps
Device Drivers
Memory Management
Linux on Embedded Systems
Ethernet
Hardware Interface Design
Python
Linux System Administration
Multiprocessing
Network Protocols
PCI Express
Performance Tuning
Scrum
Queueing Systems
ISO/IEC 15504
Memory Leaks
System Programming
TCP/IP
Universal Asynchronous Receiver/Transmitter
Multithreading
Serial Peripheral Interface
Real Time Systems
Delivery Pipeline
GIT
Yocto
Information Technology
Low Latency
Free and Open-Source Software
Build Tools
Software Version Control

Job description

The Device Drivers team builds and maintains the software that configures and interfaces with our sensors, moving data from sensors to the systems that consume it primarily using C++.

What You'll Do

  • Design and implement software integrating external sensors (PCIe, DMA, Ethernet, CAN) into the system using C++, including debugging and performance tuning at the system level.

  • Maintain software releases and testing artifacts.

  • Optimize real-time behavior, memory usage, and performance of real-time applications running in multi-threaded, multi-core environments.

  • Maintain automated build pipelines, test environments, and test tooling using C++/Python/Bash. Partner with DevOps, QA, Hardware, and Networking teams to troubleshoot issues and ensure system security, stability, and scalability.

  • Integrate and maintain third-party and open-source software.

  • Contribute to technical design discussions and documentation.

  • Provide technical guidance to junior engineers on driver design and debugging approaches.

Requirements

  • Bachelor's or Master's in Computer Engineering, Computer Science, or related field, with 3-6+ years of relevant experience.

  • Strong C/C++ proficiency and hands-on experience with device drivers/user-space drivers, Linux embedded development, systemd service management, general Linux system administration, and real-time systems (latency analysis via CyclicTest, ftrace).

  • Working knowledge of build systems (Make, CMake, Yocto, Buildstream, or Bazel), containers/namespace isolation, and hardware interfaces (SPI, I2C, UART, Automotive Ethernet, CAN, GPIO).

  • Comfort with OS fundamentals (system calls, memory/process management, semaphores, mutexes, message queues, shared memory), networking protocols (TCP/IP, SSH, HTTP), and debugging tools (GDB, strace, Valgrind).

  • Git-based version control, CI/CD practices, and Agile/Scrum team experience.

  • Nice to have: Nvidia DriveOS exposure, ISO 26262/61508 familiarity, and Automotive ASPICE (V-Cycle) knowledge.

Benefits & conditions

Competitive comp with bonus and stock options, 100% paid medical/dental/vision, 401(k) with 6% match, generous flexible PTO from day one, and AD&D/Life Insurance.

About the company

Torc has been a leader in autonomous vehicle technology since 2007. Now part of the Daimler family, we're focused on building the software that will bring autonomous trucks to market.

Apply for this position