Description du poste
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 creating, debugging, 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, 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; including the provisioning of 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 debugging infrastructure issues
- Client-side programming – Maintain and improve upon the game’s multi-platform online engine in C++:
– Use primitives to implement individual consoles’ features and provide a platform-agnostic API to be used by higher-level engine abstractions,
– Write and design code to leverage multithreading to optimally parallelize engine tasks where possible,
– 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 engine features optimally
- Maintain code quality and enforce best practices – keeping performance, maintainability and scalability requirements in mind,
- Ensure the smooth communication with other game teams worldwide (both technical and non-technical),
- Counsel and mentor less experienced programmers.
- Good knowledge of NodeJS / Typescript programming,
- Experience on DevOps oriented technologies (Docker at least),
- Experience with revision control systems like Git,
- At least, basic knowledge of Unity engine,
- Deep interest in online video games,
- Knowledge of database programming with SQL and/or NoSQL databases (Redis, MongoDB, etc.),
- Excellent oral and written communication skills in English,
- Experience with networking protocols (UDP/TCP/HTTP),
- Experience in the development of REST APIs,
- Experience in the video game industry with one or more shipped titles,
- Knowledge of current web technologies and protocols,
- Experience working with cloud providers, especially Amazon Web Services or Google Cloud,
- Knowledge on another programming language (C++, C#, Java, GoLang …),
- Experience on Automation or CI/CD technologies,
- Experience with Linux and Linux shell scripting.