Software Engineer, II - Middleware
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:
Together with our internal and external partners, the Middleware Engineering Team builds software solutions to uplift our system from open-source middleware frameworks to an automotive grade level, thereby providing contribution to Torcs way towards a safe product. Our software components ensure the seamless interaction between the virtual driver applications and the underlying hardware components such as high-performance systems on a chip, traditional automotive micro-processors and -controllers as well as sensors or actuators
*.*
What you'll do:
- Customize existing open-source Ethernet based Middleware Technologies such as ROS2 and SOME/IP.
- Design, develop, and maintain robust C++ code for embedded Linux systems.
- Define and develop safety adjustments to the middleware technology.
- Discuss and Contribute Changes to the Open-Source Community.
- Create a high-bandwidth Middleware using PCIe Driver.
- Create a Signal-Service Interface to the Safety Microcontroller using SOME/IP.
- Collaborate with hardware engineers and other software team members to define system requirements and architecture.
- Optimize performance, memory usage, and real-time behavior of embedded applications.
- Integrate and maintain third-party software and device drivers.
- Develop and execute unit, integration, and system-level tests.
- Write and maintain technical documentation, including design documents and user manuals.
- Participate in code reviews, design discussions, and agile development processes.
- General Networking Skills
- Ethernet fundamentals (MTU, Multicast v/s unicast)
- TSN, QOS. HSR, RSTP, PRP
- Experience working with networked embedded system:
- Zero copy / shared memory transport concepts
- DDS
- Experience in doing network packet performance analysis & debugging
- Iperf, wireshark, tcpdump
What you’ll need to succeed:
- Bachelors degree in Electrical Engineering, Hardware Engineering, Computer Engineering or related field and 4+ years experience OR 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
- You enjoy working in an agile environment
Perks of Being a Full-time Torc’r
Torc cares about our team members and we strive to provide benefits and resources to support their health, work/life balance, and future. Our culture is collaborative, energetic, and team focused. Torc offers:
- A competitive compensation package that includes a bonus component and stock options
- 100% paid medical, dental, and vision premiums for full-time employees
- 401K plan with a 6% employer match
- Flexibility in schedule and generous paid vacation (available immediately after start date)
- AD+D and Life Insurance
At Torc, we’re committed to building a diverse and inclusive workplace. We celebrate the uniqueness of our Torc’rs and do not discriminate based on race, religion, color, national origin, gender (including pregnancy, childbirth, or related medical conditions), sexual orientation, gender identity, gender expression, age, veteran status, or disabilities.
Even if you don’t meet 100% of the qualifications listed for this opportunity, we encourage you to apply.
Our compensation reflects the cost of labor across several geographic markets. Pay is based on a number of factors and may vary depending on job-related knowledge, skills, and experience. Torc's total compensation package will also include our corporate bonus and stock option plan. Dependent on the position offered, sign-on payments, relocation, and other forms of compensation may be provided as part of a total compensation package, in addition to a full range of medical, financial, and/or other benefits.
Job ID: 102672
Hiring Range for Job Opening
US Pay Range
$139,000—$166,800 USD