As part of the Online Team on one of our most iconic brands, you will design and implement features to link players to first party services and Ubisoft servers.
You will be responsible for designing, implementing, deploying, maintaining and optimizing the game’s online services, and related tools, server side and client side. You will work closely together with Game Designers and Gameplay Programmers from different sites worldwide. As an Online Programmer (W/M/NB) your main missions will include:
- Understand the online intentions of the project, collaborate and brainstorm with Game Designers and present to them technical possibilities for new innovative online-connected features,
- Take ownership of game features from conception to implementation to post-launch live support,
- Server-side programming – Develop/Maintain services:
– Design, prototype, and implement fault-tolerant online services prioritizing scalability, availability and security,
– Implementation of tools to configure, deploy, debug and monitor services and dedicated servers,
– Perform load tests, analyse results, suggest improvements and optimize whenever necessary,
– Collaborate with devops teams to design and optimize the server-side infrastructure, and for investigating infrastructure issues
- Client-side programming – Maintain and improve upon the game’s multi-platform online engine:
– Use primitives to implement individual consoles’ features and provide a platform-agnostic API to be used by higher-level engine abstractions,
– Design and write asynchronous and multithreaded code, focusing on high performance and low memory footprint,
– Evaluate external as well as internal Ubisoft libraries to find the best fit for our engine based on the project’s current and future needs,
– Educate, mentor and train gameplay programmers to use asynchronous online features optimally
- Maintain code quality and enforce best practices – keeping performance, maintainability and scalability requirements in mind,
- Counsel and mentor other team members,
- Ensure communication and knowledge sharing with other game teams worldwide (both technical and non-technical).
- Good knowledge of C# OR C++ OR NodeJS programming: design patterns, multithreading, profiling and debugging,
- Experience with networking protocols (IP/UDP/TCP/HTTP),
- Experience in the development of REST APIs,
- Experience with Revision Control systems like Perforce or Git,
- Good oral and written english,
- Rigorous, autonomous, curious, analytical and problem solving mindset,
- Real interest and motivation to discover this specific field of video games.
- Knowledge of backend programming in C# .Net Core, GoLang or python,
- Knowledge of database programming with SQL and/or NoSQL databases (Redis, MongoDB, etc.),
- Experience CI/CD (Gitlab), automation and DevOps oriented technologies (Docker, Kubernetes),
- Experience with web development,
- Experience working with cloud providers, especially Amazon Web Services, Google Cloud,
- Experience with Linux and Linux shell scripting.