Ubisoft Montreal strives to offer gamers an impressive visual experience, as well as incomparable level of immersion. The fluidity and vitality of our worlds make this experience even richer for our audience.
At Ubisoft, developing, optimizing and maintaining our game engines is an important task to stay on the forefront of technology. As an engine programmer, you'll be responsible for maintaining and optimizing the engine of one of our AAA games like For Honor, Rainbow 6 or Assassin's Creed, as well as developing future technologies.
What you'll do
Maintain and optimize the game engine to stay on the cutting edge of technology.
Compile and understand the project purpose, identify development needs, and assess technical feasibility.
Work with many teams to optimize interaction between various game engine systems.
Master low-level systems such as loading/streaming, memory management and platform-specific systems.
Share your knowledge with various studio teams and be a resource contact for programmers.
Analyze and debug simple and complex performance problems + propose well-adapted optimizations.
Qualifications
What you bring
General understanding of modern game engine architecture
Knowledge of different hardware architectures (ex. Intel, AMD, Xbox, PlayStation, etc.)
Experience in C++ programming and knowledge of assembly language
Solid knowledge of multi-threaded programming and synchronization mechanisms
Can analyze and synthesize existing systems
Ability to solve complex problems in an optimal way
Computer science or computer engineering degree or equivalent training
Skillful debugging complex problems and optimizing memory and performance
Attention to detail
Team spirit and good communicator
What to send our way
Your CV highlighting your education, experience, and skills
Additional Information
What you bring
General understanding of modern game engine architecture
Knowledge of different hardware architectures (ex. Intel, AMD, Xbox, PlayStation, etc.)
Experience in C++ programming and knowledge of assembly language
Solid knowledge of multi-threaded programming and synchronization mechanisms
Can analyze and synthesize existing systems
Ability to solve complex problems in an optimal way
Computer science or computer engineering degree or equivalent training
Skillful debugging complex problems and optimizing memory and performance
Attention to detail
Team spirit and good communicator
What to send our way
Your CV highlighting your education, experience, and skills