Our shared technology team are looking for people with an experience in and passion for network and multiplayer programming
You will join our dynamic technology team, reporting into the Technical Director, where you will be implementing new network and multiplayer technologies as well as improving existing ones. You will help connect the next generation of players in all our products across all platforms that we work on, including enabling cross-platform connectivity.
You will be important in driving the direction and technologies in this area, as well as being an important part of, and have full input into, the shared technology team whose responsibilities include our full game engine that is shared across our products and is used across a number of platforms.
We are looking for self-motivated people with excellent communication skills who are able to complete work independently as well as part of a team.
- Drive the network server/client area of our engine code.
- Take ownership of network code in our engine; support, maintain and improve across all supported platforms, including using new technologies where appropriate.
- Work with other development teams within the studio to integrate network code and educate and ensure their code is network friendly.
- Work with teams across the studio to plan, steer and review networking features.
Knowledge, Skills and Experience
- Excellent knowledge of C++, design patterns and software engineering.
- Minimum three years of professional experience using C++ as the main language.
- Understanding of common network protocols, such as UDP, TCP and UPnP.
- Understanding of NAT and NAT punch-through.
- Understanding of common network topologies used in games.
- Experience writing and maintaining network systems for games and profiling and optimising such systems, using tools such as Wireshark.
- Experience working with network sockets, ideally across different platforms.
- An understanding of the Steam service or a major competitor would be beneficial.
- Ability to write clean, maintainable, portable and well documented code.
- A good understanding of performance and optimisation.
- Some experience with developing for mobile platforms such as iOS and Android, or handheld consoles such as Nintendo Switch, would be beneficial.
- Very good analytical and problem-solving skills.
- Excellent communication skills and ability to work in a team as well as independently.