About this role
About Bot Auto
Bot Auto develops autonomous trucking technology. Our Simulation team builds software used to train and evaluate autonomous driving systems.
We are looking for a software engineer with C++ and CUDA experience to develop GPU-accelerated simulation software and improve reinforcement learning training efficiency. You will work with data, planning, and machine learning engineers on simulation and training infrastructure for autonomous trucking.
What You'll Do
-
Build GPU-accelerated simulation software for autonomous driving and reinforcement learning.
-
Improve the throughput of parallel simulation workloads and their integration with training workflows.
-
Profile simulation and training workloads, and optimize CPU and GPU execution, memory usage, and data transfer.
-
Develop tests and benchmarks to measure correctness, performance, and reproducibility.
-
Collaborate with data, planning, and machine learning engineers on implementation, design discussions, and code reviews.
Required Qualifications
-
Bachelor's or Master's degree in Computer Science, Computer Engineering, Robotics, Electrical Engineering, or a related field, or equivalent practical experience.
-
Strong programming skills in C++, including data structures, algorithms, and object-oriented programming.
-
Experience with CUDA and GPU programming, including an understanding of GPU parallel execution and memory management.
-
Understanding of parallel and concurrent programming concepts, including multithreading and synchronization.
-
Familiarity with Python for scripting, testing, or machine learning workflows.
-
Understanding of reinforcement learning concepts, including environments, agents, actions, rewards, and training workflows.
-
Experience developing and debugging software in Linux.
-
Strong problem-solving skills and ability to work collaboratively across teams.
Preferred Qualifications
-
Experience profiling or optimizing C++ applications, GPU workloads, or machine learning pipelines.
-
Familiarity with PyTorch or another machine learning framework.
-
Experience with simulation, robotics, game engines, physics, computational geometry, or high-performance computing.
-
Experience optimizing GPU kernels or multi-GPU workloads.
-
Exposure to batched environments, multi-agent systems, or distributed training.
-
Experience with testing tools, Git, and collaborative software development.