Engine Programmer - (March of Giants)
Summary
Develop, optimize, and maintain core game engine systems in C++ for a AAA studio, focusing on performance, modularity, and cross-platform compatibility.
Company Description
Ubisoft is a world leader in video games, with teams spread across the globe creating original and memorable gaming experiences, from Assassin’s Creed to Rainbow Six, Just Dance, and many more. We believe that diversity of perspectives helps both players and teams progress. 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 focus on long-term sustainability.
- Compile and understand project intentions, identify development needs, and analyze technical feasibility.
- Analyze existing engine features to determine if they align with project intentions.
- Develop and improve modules required by the engine.
- Propose improvements as needed by designing and implementing new systems.
- Suggest innovations by drawing inspiration from 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 engine systems and features.
- Perform any other related tasks.
Qualifications
Education:
- Degree in Computer Science, Computer Engineering, or any other equivalent training.
Relevant Experience:
- Minimum of 5 years of experience in software programming, ideally in the video game industry or other relevant experience.
Skills and Knowledge:
- Possess an excellent understanding of technical details and the architectures of various engines.
- Have excellent analytical and synthesis skills.
- Ability to solve complex problems.
- Be autonomous and resourceful.
- Have an eye for detail.
- Have a strong interest in different hardware architectures.
- Be results-oriented.
- Have good interpersonal and communication skills.
- Capable of working in a team.
- Capable of adapting to change.
- Strong knowledge of C++.
- Multiplatform and tools knowledge (an asset).
- Interest in various systems: memory allocations, multi-threading, hardware architectures.