Software Engineer (Model Engineering), Defence



Your mission is to build scientific models that support our entire product offering and facilitate next generation decision support. We are a friendly, relaxed & inclusive team with an ambition to take agent-based modelling to the next level. Unlike many teams, we are a mix of applied scientists and software engineers working very collaboratively both internally and with our Defence customers.

We build software models of social systems as goal-oriented actors operating on imperfect information, “digitally twin” physical environments and infrastructure, and obsess with modularity to recast complex systems as combinations of simpler systems. Our applied scientists seek to balance cutting-edge research with pragmatism and creativity when designing new models. We touch on a range of interesting topics such as probabilistic programming and reinforcement learning to name just two.

Area of impact

    • You will work broadly; conceptualising a system and writing a design document, building software to convert that into a prototype model (we are language agnostic, and usually work in Python and C++) and you will help educate others on your approach.
    • Your role will combine literature reviews, conceptual modelling & software engineering to create scientifically defensible models that underpin our product offering
    • Building software pipelines to extract and integrate data from various sources, making it available to simulation engines and user interfaces.
    • You will be building socio-technical models of real-world phenomena that allow our customers to better understand how individuals interact with physical, political, information and other systems.
    • Your work will help military tacticians understand situations and plan more effectively, ultimately helping add to the stability and security of the world.
    • Current or recent UK security vetting clearance (SC) is advantageous but not mandatory.

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

    • You are an experienced software engineer with fluency in at least one relevant OO or functional programming language and the openness to learn and adapt to a variety of languages. We currently use Python and C++ a lot as well as many of the related tools and libraries.
    • You support and have a clear appreciation of the modern software engineering workflow & delivery mechanisms.
    • You are enthusiastic about continuously improving and rapidly developing new competencies.
    • You are able to effectively communicate with clients in person, in writing and with visualisation.
    • You have an interest in machine learning engineering (e.g. agent-based modelling, discrete-event simulation, system dynamics, bayesian networks, probabilistic programming, machine learning).

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. 

Please note due to the nature of this role you will be expected to meet requirements associated with obtaining UK security vetting clearance.


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.
Life at Improbable
Diversity, inclusion & belonging
Apply for this job

Location: London

Date posted: 2022-01-20