C++ Software Engineer, Defence

C++ Software Engineer, Defence

  • London
  • Engineering

Improbable has created SpatialOS: a networking solution combining low latency, tools for faster iteration, and a ready-to-go architecture capable of supporting innovative games.

Now the Improbable Defence division, building on the backbone of SpatialOS, has combined world class scientific modelling, market leading AI, mission specific user interfaces and a uniquely flexible and secure deployment model to create a powerful simulation platform tailored to the needs of the military.

Our mission? To enable the most realistic and effective military simulations ever experienced, making defence users more effective on operations and decreasing the cost of military preparedness. 

Your mission

is to build a new simulation runtime optimised for deterministic and faster than real-time simulation execution, which forms the core of our military simulation platform. This is a completely new approach, optimised for operational planning and wargaming in complex probabilistic simulated environments.

You will join a small, experienced team, central to our product offering with significant scope for impact and ownership. The work that you do will allow tacticians to execute large numbers of simulations concurrently; something that will radically improve the status quo.

Our core engineering teams are focussed on building complete product solutions to tough engineering problems. Overview of our division: bit.ly/2lt8DnI

 

Areas for impact:

  • Writing coherent, well-structured and efficient code using C/C++ with a particular emphasis on high-performance engineering including contributing to a new SpatialOS runtime optimised for deterministic and faster than real-time simulation execution.

  • Creating systems & services that combine models of real world social, political and technological systems written in multiple languages and modelling tools, including our in-house probabilistic graphical modelling system.
  • Contributing to the services used to build, launch, monitor, test and debug simulations
  • You will use your problem-solving and software engineering skills to build a brand-new simulation engine that will revolutionise how military commanders plan and train for the most difficult situations.
  • You will work alongside specialists in low-level optimisation, networking and high-performance in-memory databases to build a world class platform for fast and efficient execution of some of the largest and highest fidelity simulations of real-world systems ever created.
  • You will leverage your experience of building high-performance complex and highly concurrent systems to begin owning core aspects of our product, mentor others and grow initiatives.
  • You will be writing primarily C and C++, with some Go and Java, and leveraging technologies like Bazel, gRPC and Protobuf. Full support will be provided for technologies you are not familiar with.

We’d like to hear if you if you identify with ANY of the following:

  • Experience building high-performance, highly concurrent systems in C/C++
  • Experience building similar systems in other languages (we’ll offer support to get you up to speed in C/C++)
  • Experience with low-level optimisation and/or networking (particularly if in C/C++)
Nb: While we think the above experience could be important, we can’t predict the future and so we’re keen to hear from applicants that believe they have valuable experience. If you identify with the team & mission, but not all of the suggestions, then please still apply!!
Equal Opportunity
The best ideas are often the least expected and require new ways of thinking; that’s why our teams at Improbable are made up of an incredible range of talented people. Improbable is proud to be an equal opportunity employer. We do not discriminate based on race, ethnicity, colour, ancestry, national origin, religion, sex, sexual orientation, gender identity, age, disability, veteran status, genetic information, marital status or any other legally protected status.