Skip to content
Wayve

Software Engineer, Simulation

London, United KingdomUnited Kingdom
FullTime · Simulation, Evaluation, Validation
POSTED 2 OCTVERIFIED 37M AGO
Apply Ask
Pay · H-1B filings
$228k
median · n=10 · FY26
Open for
32d
since 2 Oct
H-1B · FY26
25
UK sponsor
Hiring · 30d
173
−1 net · open roles
PythonC++

Before the detail, here's the challenge you'd help us solve.

We build the embodied intelligence that moves real vehicles safely, and the ecosystem a billion machines will run on in the future. Very few people in AI can say this. Every role here, whatever the team, plugs into that.

Here’s what this particular role covers.

🛠️ About our Simulation Teams

As a software engineer in Wayve’s Core Simulation team, you will help develop the simulation system used to evaluate and improve Wayve’s driving intelligence. Wayve’s end-to-end driving stack creates unique simulation challenges: rather than testing independently specified modules, we need to reproduce the behaviour of a learned driving system across a complex combination of sensor data, model inference, routing, control and vehicle dynamics. Our simulator must be realistic enough to provide meaningful signal, reproducible enough for teams to trust the results, and descriptive enough to understand differences between simulated and on-road behaviour. Our open-loop and closed-loop simulation workflows share a common codebase, with different components executed and configured depending on the use case. You will initially work with the team focused on high-scale open-loop evaluation, while contributing to shared components and infrastructure used across the broader simulation system.

🧠 Your day-to-day

Work hands-on in the shared modern C++ and Python simulation codebase.

Implement scoped features and integrate driving-stack components, simulated robot systems and new vehicle-platform capabilities.

Support and test different simulation configurations, initially with a strong focus on high-scale open-loop evaluation.

Investigate differences between on-road and simulated execution, tracing issues across component interfaces, data flows, timing and configuration.

Improve automated testing, observability, reproducibility, reliability and developer tooling.

Profile simulator workloads and contribute performance and scalability improvements.

Collaborate with Simulation, Robotics, Autonomy, Evaluation, Platform and Data teams to clarify requirements and resolve integration issues.

🧩 What you’ll be working on

Develop and maintain production-quality components within Wayve’s simulation system using modern C++ and Python.

Integrate driving-stack components, simulated robot systems and new vehicle-platform capabilities into the shared simulation environment.

Support different simulation configurations and ensure components interact correctly across applicable workflows.

Investigate differences between on-road and simulated execution, identifying issues across data, inference and simulated components.

Improve simulation reproducibility, reliability and debuggability through automated testing, observability and better developer tooling.

Profile and improve simulator performance, helping us run increasingly large evaluation workloads efficiently.

Work with internal users and adjacent engineering teams to clarify requirements, resolve integration issues and deliver scoped improvements.

Contribute to technical designs and help evolve the quality and maintainability of the simulation codebase.

🙌 You should apply if

Professional experience developing, delivering and maintaining production software in a collaborative engineering environment.

Strong software development skills in C++ and Python, with depth in at least one and the ability to work effectively in both.

Relevant experience in simulation, robotics, autonomous systems or similarly complex systems involving multiple interacting software components.

Good understanding of software and data-oriented design, including how to build code that is maintainable, reusable and extensible.

Experience debugging complex systems and reasoning about interfaces, data flows, timing and failure modes.

Understanding of common software performance issues and the ability to make pragmatic design trade-offs.

Ability to independently deliver scoped features, communicate progress clearly and raise risks or blockers early.

Source · WayveFirst seen 2 NovOriginal ↗