Overview
In this role you help evolve the onboard software stack by building shared runtime services and framework components used across Robot Software. You will optimize performance, improve reliability, and extend support across vehicles, OSs, and compute platforms. Your work enables model developers to run on-road experiments and scale autonomous driving capabilities. You’ll collaborate with cross-functional teams and help shape architectural decisions with a focus on latency, throughput, and observability. This is a hands-on, impact-driven role in a fast-moving autonomy company.
Pay / Benefits
- salary benchmarks against market
- meaningful equity
- relocation support and visa sponsorship
- hybrid working with core hours
- learning and development budgets
- comprehensive benefits including health insurance and parental leave
Responsibilities
- Design, build, and maintain shared onboard application frameworks and developer interfaces
- Develop application lifecycle management, health monitoring, fault reporting, and runtime diagnostics
- Evolve communication middleware by evaluating technologies, migrating components, and supporting new OSs and compute platforms
- Investigate latency and performance bottlenecks across the onboard software stack
- Instrument software with profiling tools and metrics to identify optimisation opportunities
- Collaborate with engineering teams to understand performance pain points and prioritise improvements by impact
- Work with internal teams and middleware suppliers to resolve integration issues and establish shared APIs, documentation, and best practices
- What you’ll be working on: shared runtime services and application frameworks; high-throughput, low-latency IPC; lifecycle management; end-to-end profiling; automation of benchmarks and CI checks; ports across OS/hardware; observability infrastructure
Key requirements
- Strong software-development experience in C++
- Proficiency with performance-profiling tools and techniques for identifying and resolving bottlenecks
- Methodical approach to designing experiments and evaluating results
- Strong foundation in OS scheduling, computer architecture, memory hierarchy, CPU caches, context switching, and thread synchronisation
- Experience with middleware, application-framework design, lifecycle management, or shared runtime services
- Ability to design maintainable interfaces and enable adoption across teams
- Ability to translate performance data into architectural and optimisation decisions
- Deep experience with communication middleware or application-framework design is valuable
- Experience porting systems software across OSes and hardware, building automated benchmarks in CI, or using NVIDIA tools (Nsight, Lumos, tegrastat) is relevant
- Familiarity with Grafana, Databricks, Datadog, QNX, or Momentics is a plus
- Cross-team collaboration
- Structured problem solving
- Experiment design and data-driven decision making
- C++
- Performance profiling
- OS scheduling and computer architecture
…
