inhousefyi
← Back to listings

Software Engineer, II - Operating System

Torc RoboticsAnn Arbor, Michigan, United States · Posted 4 months ago
Full-timeEst. 124,000 USD
Apply now

Description

About the Company

At Torc, we have always believed that autonomous vehicle technology will transform how we travel, move freight, and do business.
A leader in autonomous driving since 2007, Torc has spent over a decade commercializing our solutions with experienced partners. Now a part of the Daimler family, we are focused solely on developing software for automated trucks to transform how the world moves freight.
Join us and catapult your career with the company that helped pioneer autonomous technology, and the first AV software company with the vision to partner directly with a truck manufacturer.

Meet the Team

The Operating System Team develops and maintains a light-weight in-house modified Linux distribution based on the usage of open source technologies. This also comprises the integration of third party libraries to efficiently run Machine Learning based Applications on NVIDIA target SoCs as wall as the development, operation and maintenance of the required build-system technologies.

What You’ll Do

  • Work on Linux kernel modules
  • Incorporate Linux Distribution in to build and deployment toolchain
  • Perform system-level debugging and performance tuning
  • Develop shell scripts and automation tools
  • Troubleshoot system issues and optimize performance
  • Collaborate with cross-functional teams (DevOps, QA, Hardware, Networking)
  • Ensure system security, stability, and scalability
  • Manage package builds and deployments
  • Contribute to documentation and technical design discussions
  • Optimize performance, memory usage, and real-time behavior of embedded applications.
  • Integrate and maintain third-party software and open-source software

What You’ll Need to Succeed

  • Bachelor’s Degree in Computer Science, Robotics, Electrical Engineering or related technical field plus demonstrates competences and technical proficiencies typically acquired through 4+ years of experience or;
  • Master’s Degree in Computer Science, Robotics, Electrical Engineering or related technical field plus demonstrates competences and technical proficiencies typically acquired through 0-3+ years of experience.
  • Strong understanding of Linux internals, including user space vs kernel space, device trees, systemd and system boot-up.
  • Familiar with Linux Kernel architecture (Scheduler (CFS vs RT), Memory management (paging, slab, CMA), Interrupt handling, softirq/tasklets)
  • Deep understanding of Process and IPC (fork/exec, signals, shared memory, pipes, sokcets).
  • Familiar with Linux boot up sequence and bootloaders.
  • Experience with device drivers and user space drivers. (PCIe, DMA, Ethernet, CAN)
  • Linux security knowledge (secure boot chain, signed kernel modules), filesystem hardening, namespace isolation (LSM).
  • Strong experience with Linux development in Embedded Systems, latency analysis (CyclicTest,ftrace)
  • Strong knowledge in building real time Embedded Systems for automotive or similar industries
  • Knowledge of build systems (Make, CMake, Yocto, Buildstream, Bazel)
  • Proficiency in C/C++ programming
  • Namespace Isolations (Containers, CGroups)
  • Experience with Shell scripting (Bash)
  • Familiarity with system calls, memory management, and process management
  • Knowledge of networking protocols (TCP/IP, SSH, HTTP)
  • Experience with debugging tools like GDB, strace, and Valgrind
  • 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.
  • 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. </