Skip to main content

Engine Programmer

Auto-translated from French · original: Programmeur.euse Moteur

5 day week30 days PTOOnsite · Montreal, QC, Canada

Company description

Ubisoft is a global leader in video games, with teams spread across the world who create original and memorable play experiences, from Assassin's Creed to Rainbow Six, including Just Dance and many more. We believe that diversity of perspectives drives progress for both players and teams. If you are passionate about innovation and want to push the boundaries of entertainment, join our adventure and help us create the unknown!

Job description

What you will do

  • Program in a clear and structured way while being mindful of performance, maintenance, modularity, extensibility, and compatibility requirements.
  • Be exemplary and rigorous in code structure.
  • Develop, refactor, and optimize core systems with a view to long-term sustainability.
  • Understand the project's intentions, identify development needs, and analyze technical feasibility.
  • Analyze existing engine features and assess whether they meet the project's intentions.
  • Develop and improve modules required by the engine.
  • Propose improvements as needed by designing and implementing new systems.
  • Suggest innovations inspired by other games or engines in the industry.
  • Ensure performance and optimize systems.
  • Support features and systems designed for production.
  • Document your work to transfer knowledge and enable users (other disciplines) to understand how to use the engine's systems and features.
  • Perform any other related tasks.

Qualifications

Education:

  • Degree in computer science, computer engineering, or any equivalent training.

Relevant experience:

  • Minimum of 5 years of experience in software programming, ideally in the video game industry or any other relevant experience.

Skills and knowledge:

  • Excellent understanding of technical details and the architectures of various engines.
  • Excellent analytical and synthesis skills.
  • Ability to solve complex problems.
  • Self-reliant and resourceful.
  • Attention to detail.
  • Strong interest in different hardware architectures.
  • Results-oriented.
  • Good interpersonal and communication skills.
  • Able to work in a team.
  • Able to adapt to change.
  • Strong knowledge of C++.
  • Multi-platform knowledge and tools (an asset).
  • Interest in various systems: memory allocations, multi-threading, hardware architectures.