
C++ Software Engineer – Modelling & Simulations
- South East England London
- Contract
- Full-time
We are seeking a Software Engineer to help create and improve large-scale models and simulations, supporting decision-makers in areas such as urban planning, transport, and infrastructure. You will work as part of a multidisciplinary team to develop high-performance simulation software, integrate data pipelines, and ensure that models can run efficiently at scale.Key Responsibilities:
- Work with applied scientists to take models from prototype stage to production-ready software.
- Develop and implement computational models for large-scale social and urban “Digital Twin” simulations.
- Build and optimise data pipelines to extract, synthesise, and integrate data from various sources.
- Scale and refine agent-based models incorporating real-world data and complex behaviours.
- Track and improve model performance to enable greater complexity and realism.
- Generalise and abstract existing models to allow re-use across different projects and geographies.
- Contribute to the full development lifecycle, including testing, documentation, security, and performance.
- Strong experience coding in modern C++ (or a comparable systems programming language such as Rust).
- Knowledge of low-level performance concepts such as SIMD, cache locality, and memory access patterns.
- Python for scripting and prototyping.
- Experience with agent-based modelling or entity-component-system (ECS) frameworks.
- Background in writing production-quality code and scaling models to work with very large datasets.
- Knowledge of distributed systems and data engineering (Kafka, pipelines, metadata management).
- Experience with containerised deployments (Docker, Kubernetes, Helm).
- Strong collaboration skills, with a focus on sharing knowledge and working as part of a team.
- A holistic approach to software engineering that considers testing, documentation, performance, and security.