Software Engineer, Modeling
Improbable
 London, KY
Improbable believes in a future where new, virtual worlds will augment human experience and become as meaningful, lasting and rich as the physical world. We call this the Multiversal Self.

Our platform, SpatialOS, lets developers transcend the limits of regular computation, allowing swarms of servers running in the cloud to cooperate in order to simulate worlds far larger and more complex than any single server could.

At Improbable, you are surrounded by people who want to improve everything and everyone around them, and who compel you to improve yourself. We’re motivated by the fulfilment of solving hard problems to achieve something profound and transformative.

Your Mission

is to join a multi-disciplinary team of engineers and applied scientists focussed on creating the models that will power the next generation of decision support technology. Our culture is friendly, relaxed and inclusive.

Our responsibility is to provide the scientific models that sit at the heart of our core product offering. This means building data pipelines to generate accurate representations of real-world environments, and the algorithms for simulating their dynamics. Our ‘north star’ is taking agent-based modelling to the next level in terms of extensibility, fidelity and scientific validity: we model social systems as goal-oriented actors operating on imperfect information; 'digitally twin' physical environments and infrastructure; obsess with modularity to recast complex systems as combinations of simpler systems. 

We are interested in understanding the consequences of aggressive action on a society, whether it is a power station being destroyed, a road network becoming blocked, or fake news propagating through a social network - we seek to understand these consequences so that more resilient societies can be engineered and our defence and national security is at the cutting edge of capability.

Areas for Impact

  • Contribute to building a next generation product which will help governments gain a richer understanding of their most critical problems through the power of virtual worlds.
  • Developing and implementing algorithms which result in plausible modelling behaviour.
  • Productionising prototype models so that they are scalable, robust and performant.
  • Building pipelines to extract, synthesise and integrate data from various sources, making it available to simulation engines and user interfaces.
  • Making performance improvements to models so that we can reach new levels of scale.
  • Identifying and implementing generalisations and abstractions of existing models so that new models and new geographical areas of interest can be created easily.
  • Building tooling for modellers to author, combine, explore and evaluate their models.

We'd like to hear from you if you identify with the following:

  • You have experience building software in a range of languages; we currently use Python and Kotlin and recommend at least one OO language.
  • You are passionate about sharing knowledge with and learning from others.
  • You wish to support other software engineers and applied scientists in developing best practices; you are naturally pragmatic.
  • You enjoy pair programming and collaboration. 
  • You drive integration efforts across teams and the tech stack.
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!!


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.