We are looking for excellent software engineers to join our Mountain View office to develop simulation algorithms, systems and processes for DiDi autonomous vehicle project. The simulation team's work is critical to the success of the entire project: It speeds up development-verification cycles by enabling onboard module engineers to rapidly evaluate their changes and iterate. It ensures quality of software deployed on real-world autonomous vehicles to minimize safety risk. Also, comparing with real-road testing, simulation could expand testing coverage by orders of magnitude with only a fraction of the cost. Although we have been making great progress, there are still many technical challenges ahead of us in this area. Your contributions could be key to bring autonomous vehicles to DiDi's transportation network!
Develop simulator software which establishes execution environment for onboard algorithms, using real-world log data or virtually created environment. Ensure simulation is performant and deterministic.
Research and develop algorithms in multiple domains including sensor simulation, agent behavior and vehicle dynamics, in order to make simulation of the ego car and agents as realistic as possible.
Develop efficient scenario creation tools, including convenient ways to specify agents behavior and evaluation metrics, parameterized scenario generation, etc.
Develop highly-scalable framework to run and monitor huge amount of simulation jobs in the cloud.
Develop data processing and analytics platform to process simulation data, extract and visualize information. Collaborate with onboard engineering and triage teams to quantify, monitor and improve the performance and safety metrics using data science skills.
Develop CI/CD systems and workflows to integrate simulation into day-to-day development and software release processes.
Bachelor degree or higher in Computer Science or related disciplines.
Solid programming and proficient in C++ and/or Python.
Team player with good communication skills.
Attentive to detail and strive for engineering excellence.
Experience with simulation for autonomous vehicles.
Experience with game engine such as Unreal Engine.
Experience with cloud, big data and database, especially open source systems such as docker, various big names in the Apache project list, etc.
Experience with CI/CD systems.
Experience with graphics and rendering.
Deep knowledge in complex software architecture, Linux OS, software performance analysis and optimization.