Game Networking Programmer
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

You will be responsible for the day to day development of the networking features across several titles and platforms. This includes working on the major console network systems, Xbox live, PlayStation Network, Steam, and others, as well as potential interaction with existing social platforms. You will help with the design and specification of these systems working with the developers directly to make sure you optimise the network usage as much as possible.

As a Game Networking Programmer you will be required to solve problems ranging from debugging of network issues, to refining gameplay whilst online. You will need to be familiar with network debugging and monitoring tools and will know how to use these tools to resolve complex networking and routing issues.

A great advantage of working at Improbable is that you are constantly engaging with new genres of games which are using either the commercial engines like Unreal/Unity/CryEngine or bespoke engines. So, you can grow your expertise and influence across multiple engines. You will find ways about why there is an advantage of using a certain Engine over the other and use your learnings to architect a better performing and better quality game overall.

Our working methods are very flexible as we are always challenging the technology to its limits. We are always finding ways to learn and spread knowledge within the team.

Competencies

  • Demonstrable knowledge and passion for games and/or game development.
  • Demonstrated experience as a networking engineer for multiple game titles.
  • Implemented network-oriented gameplay systems, with deep consideration for netcode, bandwidth optimisation and reducing overall network load.
  • Implemented gameplay features, including enabling designers to be able to implement online/multiplayer gameplay.
  • Implemented multiplayer games using different paradigms, including client–server architectures, peer-to-peer or other network models.
  • Researched and prototype new network-oriented game features or systems, including custom networking protocols or authority election or handover systems.
  • Develop networking code to interact with backend systems for new gameplay features and data collection.
  • Maintained and extended documentation on network-oriented features and systemsDebug and optimize existing gameplay systems
  • Excellent communication and team skills; Ability to communicate with both non-technical stakeholders (e.g., producers, artists, designers).
  • Ability to establish technical networking related requirements from creative or design-led pitches.
  • Ability to define and understand elements of game design documents and technical design documents.

Experience of the following would be advantageous

  • Previous experience with shipping a game.
  • Previous experience with implementing features for multiplayer games.

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.