You will be working with every platform conceivable, from hand-held devices, through desktop computers to consoles both current and next generation. Because of this, you will be using a wide variety of development environments and programming languages and tackling technical challenges of every sort. No day will be the same, and you won't be bored!
During your day you will be working with all the internal development departments the game programmers, the low level renderer programmers, the artists and designers who produce the amazing content that makes our games alive, the production team who manage the process and the publishers who get our games out to the public. Finally, but not least, you will liaise with the platform holders to resolve technical challenges and overcome any submission problems that come with the fast pace of the console and hand held market.
You will be expected to get involved with all aspects of the games code base to ensure each programming department works effectively together. For that reason, you will need to have experience with working with large code bases and be able to understand other people's code quickly. Particular areas of expertise would be helpful in tools, networking and online, and resource management.
The ideal candidate will have:
- A keen interest in online games and the technology and architecture behind them.
- A good degree in Computer Science, Math or Physics or related subject (2.i or above) or equivalent experience
- Fluent in C++ and object oriented programming
- A structured approach to programming with the desire to write clean, well commented, documented and maintainable code.
- A positive can do attitude coupled with the ability to get things done.
- Some experience of low level socket based network game programming.
- Familiarity with online/web technologies such as endpoints (REST).
- Experience programming consoles at a low-level on PS4, Xbox One, Nintendo Switch, iOS, Android, PS3, Xbox 360, Wii U, macOS and PC.
- Understanding of machine architecture.
- Strong 3D math skills.
- Strong debugging skills in a multi-threaded / multi-core environment.
- The ability to analyse and optimise algorithms for efficiency.
- Knowledge of Python, SQL, Java.