About the Team
Our team develops the core software and data processing systems that power motion planning and decision-making in autonomous vehicles. We work at the intersection of machine learning, large-scale data infrastructure, and real-time vehicle control, collaborating across engineering, analytics, and product teams to deliver safe and intelligent driving capabilities.
About the Role
As a Senior Software Developer, you will focus on building and optimizing critical components for motion planning and data analysis. You will work on high-performance systems, develop tools for large-scale simulations, and contribute to machine learning pipelines that improve lane-changing behavior. This role offers the opportunity to tackle complex technical challenges and help shape the future of autonomous driving technology.
What You'll Do
- Lead development of the motion planning component, focusing on lane-changing functionalities for self-driving cars.
- Enhance software performance, demonstrating specialized expertise in improving critical components.
- Develop versatile data preparation processes for classification models, adaptable for various tasks with minimal modifications.
- Collaborate across cross-functional teams, including analytics, product management, and QA engineers, to ensure project alignment and optimal performance.
- Optimize data processing systems for self-driving car technology, improving performance and reducing memory usage.
- Using tools like Perf, Heaptrack, and Flame graphs to enhance data component efficiency.
- Establish a distributed service on Kubernetes for complex calculations on remote GPUs, ensuring proper measuring and monitoring systems.
- Enhance the primary framework for data analysis and simulations, increasing speed and effectiveness.
- Utilize advanced data processing technologies such as Spark, SQL, Iceberg, and Argo, in conjunction with Avride's internal tools.
- Develop tools for analyzing road scenes, using SHAP (Shapley Additive exPlanations) to explain model behaviors to the business team.
- Construct a service managing a vast index of over 10 million scenes, enabling quick comparison and analysis of similar scenarios.
- Collaborate with the Quality Assurance team to address feedback from real-city environment tests and simulations.
- Identify and resolve issues within the vehicle's lane-changing process, leveraging comprehensive knowledge of the driving system.
- Recommend solutions to prevent issue recurrence and contribute to ongoing development plans.
- Participate in regular team meetings to discuss and present in-depth reports on the latest research papers in motion planning and prediction.
- Stay current with new scientific developments to guide the team in cutting-edge advancements for self-driving vehicles.
- Conduct thorough code reviews to ensure compatibility with the self-driving car's system, identify logic errors, and suggest performance improvements.
- Provide feedback on organizing new code and avoiding common coding errors, ensuring adherence to company coding standards.
- Apply deep knowledge of programming languages and tools like C++, Python, Spark, Iceberg, and Argo, as well as detailed understanding of the company’s codebase.
What You'll Need
- Master’s degree in Computer Science.
- Proficiency in C++, Python, and their associated frameworks and libraries.
- Familiarity with additional programming languages such as Go, JavaScript, and SQL.
- At least 5 years of professional experience in software development/engineering or equivalent roles.
- Extensive experience with data processing tools and technologies including Spark, SQL, Iceberg, and Argo.
- At least 5 years of experience in developing and deploying machine learning models, including deep learning frameworks such as TensorFlow, PyTorch, and scikit-learn.
- Strong understanding and experience with high-load systems, including performance optimization and scaling techniques.
- Experience with containerization and orchestration tools such as Docker and Kubernetes, with a focus on deploying and scaling machine learning models in production.
- Proven ability to work with large datasets, including preprocessing, cleaning, and transforming data for machine learning applications.
- Familiarity with well-known algorithms and proficiency in writing complex algorithmic logic for high-performance computing.
- Strong ability to participate in project management activities, set goals and deadlines, and collaborate effectively with other teams in a fast-paced environment.
Nice to Have
Candidates are required to be authorized to work in the U.S. The employer is not offering relocation sponsorship, and remote work options are not available.