Improbable is dedicated to building powerful technology designed to help solve previously impossible problems and enable the creation of new realities. In gaming and entertainment, Improbable unlocks truly next-generation gameplay through virtual worlds of unprecedented scale, persistence and richness. In other industries, we hope to help answer critical questions through simulations that could lead to a better functioning world.
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.
We are a British technology company proudly building a diverse workforce, driven by a shared desire to improve and achieve extraordinary things. We’re crafting technology for the future and fostering a problem-solving culture that embraces innovation through iteration and experimentation.
At Improbable, we are building software to solve completely new and complex problems around distributed systems, physics and containerisation; all at massive scale with extreme performance requirements. We operate in small, agile, autonomous teams each working on key aspects of our offering. Examples of what teams are working on include:
• developing new algorithms to distribute and scale our simulations
• developing tooling to understand and reason about large, real-time simulations
• researching new applications of our tech and developing proof of concepts
• creation of world-class, robust APIs and SDKs for external customers
• integrating new workers with our distributed stack -- e.g. physics, navigation, raycasting
We have a range of opportunities available across our engineering teams, broadly falling into these categories:
• Building our base real-time distributed simulation platformApplying our real-time distributed simulation platform to gaming
• Working with customers to showcase the power of SpatialOS
• Applying our real-time distributed simulation platform to other verticals
In order to be successful in our environment, you should relate with as many of the following skills as possible and have a strong appetite for learning:
• An excellent academic record, ideally coupled with stand out extra-curricular activity and/or internships in a software environment
• Excellent knowledge of multiple programming languages and paradigms (such as Java, C#, C++, Python, Go, JavaScipt etc)
• Strong appreciation for productive software engineering including Testing, Tooling, IDE mastery etc
• Demonstrable interest and passion for development (e.g. personal projects, blogs, Open Source projects etc)
• Algorithmic and data structures knowledge
• Able to demonstrate comprehensive knowledge within a specialised area
• An interest in gaming, simulation or distributed systems is, of course, advantageous