Software Engineer (Simulation Execution), Defence

London

Join our defence and national security business and you’ll be helping users plan and train to meet the most complex security threats in the world. Working alongside experts in AI and Machine Learning, computational modelling and distributed systems, you’ll be putting multiplayer technology to life-saving use.
We are a multidisciplinary team of engineers using a variety of languages and frameworks to develop the platform and tooling required to build large-scale scientifically accurate synthetic environments that are used by government and defence organisations to plan and train more effectively.
We are responsible for building:
  • The runtime and tools required for development, debugging, and execution of closed, interruptible-closed, real-time human-in-the-loop, and time stepped simulations that integrate and scale new models and existing simulation engines.
  • The APIs/SDKs to enable integration of AI/ML agent based models, 3D Game Clients and IoT devices into the simulations as well as connecting together other simulations running in a single simulated environment.

Area of impact

  • Build a deterministic simulation runtime optimised for both real-time and faster than real-time simulation execution.
  • Scale across multiple compute nodes using cutting-edge synchronisation and low-latency networking techniques.
  • Create a platform that can efficiently integrate models of real world social, political and technological systems defined in multiple languages, modelling tools and pre-existing simulation engines.
  • Use data oriented design and advanced scheduling techniques to maximise processor utilisation.
  • Write coherent, well-structured and efficient C/C++ or Go code with a particular emphasis on high-performance engineering.

  • Contribute to the services and tools used to build, launch, monitor, test and debug simulations.
  • Work closely with our applied scientists and modellers to create intuitive and efficient APIs.

We would like to hear from you if you identify with the following

  • You are a confident C/C++ (or similar language) developer with a passion for producing highly performant software.

  • You keep up to date with the latest standards in your language of choice.
  • You are passionate about sharing knowledge, learning and collaborating with others.
  • You are pragmatic and able to identify the most impactful work among competing requirements.
  • You drive integration efforts across teams and the tech stack.
  • Knowledge of concurrent programming, networking and distributed systems is preferable.
  • Knowledge of Golang is a benefit but not essential.
While we think the above experience could be important, we’re keen to hear from people that believe they have valuable experience to bring to the role. If you identify with the team and mission, but not all of our requirements, then please still apply. 

About Us

Improbable is determined to foster an environment where people can do their best work and feel like they belong. We believe a healthy culture, strong values and contribution from a diverse range of individuals will help us to achieve success.
We do not discriminate based on race, ethnicity, gender, ancestry, national origin, religion, sex, sexual orientation, gender identity, age disability, veteran status, genetic information, marital status or any other legally protected status.

Discover more

Improbable Games London

Working with us

Build new worlds with exceptional people.

Read more

Improbable Games Canada

Diversity, inclusion & belonging

Our commitments.

Read more

Midwinter art

Life at improbable

Find out what makes us different.

Read more

Learn about Improbable

Discover more
Back of head looking at screens