Botauto Software Engineer at Botauto develops GPU-accelerated simulation software for autonomous driving and reinforcement learning. The role focuses on optimizing simulation workloads and collaborating with cross-functional teams.
Responsibilities
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.
Qualification
Strong programming skills in C++Familiarity with Python for scriptingExperience with simulationExposure to batched environmentsExperience with testing tools
Required
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
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.