Software Engineer, II - Middleware

Torc Robotics
Ann Arbor, MI
Category Engineering
Job Description
Role Overview

Join the Middleware Engineering Team at Torc to build software solutions for autonomous trucks, working with internal and external partners to uplift the system from open-source middleware frameworks to an automotive grade level.

What You Will Do

Customize existing open-source Ethernet based Middleware Technologies, design and develop robust C++ code for embedded Linux systems, and collaborate with hardware engineers and other software team members to define system requirements and architecture.

Why It Might Be a Fit

This role requires deep knowledge of a Middleware Framework, experience with PCIe Data Transportation, and proficiency in modern C++ and software engineering principles. The ideal candidate will have experience working in multi-threaded, multi-core, and multi-processor systems, and a strong understanding of Linux internals and operating system concepts.

Requirements

  • Bachelor's degree in Electrical Engineering, Hardware Engineering, Computer Engineering or related field and 4+ years experience
  • Master's degree in a related field and 2-4 years experience
  • Deep Knowledge of a Middleware Framework, e.g. ROS2, SOME/IP or similar
  • Experience with PCIe Data Transportation
  • Experience with Open-Source Collaboration
  • 6+ years of professional experience in C++ development for embedded Linux systems
  • Experience with NVIDIA DriveOS
  • Experience with Embedded Linux Software development
  • Proficient in modern C++ (C++11/14/17), object-oriented design, and software engineering principles
  • Strong understanding of Linux internals, including user space vs kernel space, device trees, and system boot-up
  • Experience with cross-compilation toolchains and build systems (e.g., CMake, Make, Yocto, Buildroot, Bazel)
  • Solid debugging and performance tuning skills using tools like GDB, Valgrind, strace, etc.
  • Experience working in multi-threaded, multi-core, and multi-processor systems
  • Solid understanding of Semaphore, Mutex, Message Queue, shared memory and other operating system concepts
  • Experience with real-time operating systems (RTOS) or real-time Linux
  • Familiarity with hardware interfaces such as SPI, I2C, UART, Automotive Ethernet, CAN, and GPIO
  • Knowledge of software version control (e.g., Git), CI/CD practices, and issue tracking systems
  • Experience with Python, Bash scripting, or other relevant tools for automation and testing
  • Previous work in industries like automotive, IoT, robotics, or telecommunications
  • Automotive ASPICE knowledge – V Cycle
  • ISO-26262 knowledge and experience with designing software for safety critical systems and/or automotive ECUs
  • Experience with Vector Cast or GTest for unit testing
  • Experience working with scrum / Agile teams
  • Experience in the certification process of automotive products

Benefits

  • Competitive compensation package
  • Bonus component
  • Stock options
  • 100% paid medical, dental, and vision premiums
  • 401K plan with a 6% employer match
  • Flexibility in schedule
  • Generous paid vacation
  • AD+D and Life Insurance
]]>