Senior Software Engineer, Over-the-Air Updates
Job description
About the role
Join our infrastructure group to build the systems responsible for deploying software to our autonomous vehicle fleet. You will design and maintain the pipelines that ensure our cars receive critical updates safely and reliably. This role centers on the backbone of our fleet's lifecycle, where your work directly impacts the security and stability of our vehicles in operation. You will own the design decisions that allow Nuro to scale its software delivery infrastructure efficiently. The position requires close collaboration with hardware and robotics teams to align software releases with the physical constraints of autonomous platforms. You will be responsible for architecting backend services that manage the complex distribution of software to a geographically dispersed vehicle fleet. This role is pivotal in ensuring that updates are delivered with integrity and without disruption to ongoing operations. Your contributions will help define the standards for reliability and automation in over-the-air update systems.
Key facts
What you'll do
- Architect and scale the backend services that manage remote software distribution for autonomous platforms, ensuring high availability and fault tolerance across global regions.
- Create automated testing and validation workflows to guarantee update integrity across the fleet, incorporating rigorous checks for compatibility and system health.
- Monitor deployment health and resolve issues related to connectivity or system state during update cycles, using observability tools to drive rapid incident response.
- Collaborate with hardware and robotics engineers to synchronize software releases with vehicle capabilities, ensuring that firmware and software updates are precisely timed.
- Design and implement configuration management strategies that allow for fine-grained control over software versions deployed to different vehicle models.
- Develop and maintain infrastructure as code to provision and manage the cloud resources required for large-scale update distribution and fleet telemetry.
- Build and iterate on the pipelines that handle rollback procedures, ensuring that reversion to a stable state is both automated and reliable in critical scenarios.
- Partner with security teams to integrate encryption and authentication mechanisms into the update process, safeguarding the fleet from potential vulnerabilities.
- Analyze deployment metrics and logs to identify patterns that inform improvements to the update pipeline, driving continuous optimization of performance and reliability.
- Contribute to the development of simulation and staging environments that mirror real-world fleet conditions to validate updates before live deployment.
- Support the creation of documentation and runbooks that enable other engineers to understand, operate, and extend the over-the-air update systems.
- Lead initiatives to standardize tooling and practices across the infrastructure group, fostering consistency and clarity in how updates are managed and tracked.
- Work closely with product managers to translate business requirements into technical specifications for the update infrastructure, ensuring alignment with strategic goals.
- Investigate and troubleshoot edge cases related to network partitions, device heterogeneity, and regional constraints that may affect the success of update campaigns.
Requirements
- Bachelor degree in Computer Science, Engineering, or a related technical field, providing a foundational understanding of systems programming and distributed computing principles.
- Minimum 5 years of professional experience in software engineering, with a proven track record of delivering complex software systems in production environments.
- Proficiency in developing distributed systems and cloud-based infrastructure, demonstrating mastery of concepts such as consensus, replication, and load balancing.
- Experience with large-scale deployment pipelines and fleet management software, including familiarity with the challenges of updating heterogeneous devices at scale.
- Strong ability to write clean, maintainable code in C++ or Python, with a deep understanding of data structures, algorithms, and software design patterns.
- Solid understanding of cloud infrastructure (AWS, GCP, or Azure), including compute, storage, networking, and identity management services relevant to fleet operations.
- Hands-on experience with CI/CD pipeline tools, enabling the automation of testing, building, and deployment processes for critical software updates.
- Demonstrated skill in distributed systems architecture, including the ability to design systems that are resilient, scalable, and secure in the face of real-world failures.
Nice to have
- Background in automotive software or embedded systems, with an understanding of the constraints and requirements inherent in vehicle platforms.
- Familiarity with security protocols for remote device management, including over-the-air update standards and best practices for cryptographic key management.
- Experience working with robotics or autonomous vehicle stacks, providing insight into the integration points between software updates and vehicle control systems.
Practical notes
Nuro is currently focused on licensing autonomous driving software for robotaxis and personally owned vehicles. The company recently secured 106 million dollars in funding to support this strategic shift.