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.
The platform, tools and data framework that we are developing enable modellers and engineers to create and run some of the largest, most complex, and most realistic simulations ever built. These simulations enable government and defence organisations to better understand and prepare for action in complex environments so that they can preserve peace and minimise damage and loss of life.
- 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.
- Build a next generation product which will help governments gain a richer understanding of their most critical problems through the power of synthetic environments.
- Enable our users to create and run some of the largest and most complex simulations ever developed.
- Understand the requirements of our applied scientists and model engineers and provide them with the SDKs and tools needed to effectively develop, debug and profile complex models.
- Collaborate with other members of our multi-disciplinary team to optimise the end-to-end process of preparing data, running simulations and analysing results; reducing the time it takes for our customers to answer the most critical and time-sensitive questions.
Why You’re Made For This:
- You are a confident C/C++ 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 passionate about mentoring and growing engineers in their technical ability
- 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 is preferable.
- Knowledge of networking and distributed systems is preferable.
- Knowledge of Golang is a benefit but not essential.
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.