Required Engine Programmer in Canada

Required Engine Programmer in Canada

Job Description:
Ubisoft Toronto Inc.
224 Wallace Avenue. M6H 1V7
Toronto, Ontario

Our Mission
Ubisoft Toronto is a growing and diverse team on a collective mission to create whats next in AAA games. Whether as an elite spy, a master assassin, or a fearless explorer, we put the player at the heart of all our games. Since opening our studio in 2010, our team shipped the critically-acclaimed Tom Clancys Splinter Cell Blacklist as lead studio, and Assassins Creed Unity and Far Cry 4 in collaboration with Ubisoft Montreal. In 2012, we opened our state-of-the-art Performance Capture Studio, and our Playtest Lab to help us make our games more immersive, and ultimately, more fun to play.

Our passion is to develop high quality, open world experiences and were hard at work on several top-secret, unannounced projects. And when we ask our team what makes our studio special, the answer is always the people.

Engine Programmer

As the Engine Programmer, you will be responsible for developing and maintaining low-level systems and overall architecture. You will be working on multiple platforms and in areas such as memory management, loading, streaming, physics, audio, platform specific systems, etc.

Type of Position: Permanent

The main and routine tasks of the Engine Programmer are to:

Analyze and understand the requirements of the game teams in order to define the required functionalities and engine systems that must be developed to support them;
Analyze existing engine systems and determine if they meet project requirements. If necessary, define how to adapt them or replace them to better meet game requirements;
Analyze innovations and features from other engines to help decide where technology sharing is cost-effective;
Suggest improvements whenever necessary by designing and implementing new systems or modifying existing systems;
Collaborate with game designers/level designers/animators/artists to examine the constraints of the existing engine;
Collaborate with game designers/level designers/animators/artists to agree on memory and performance budgets for content;
Determine and help maintain CPU performance and memory budgets across code disciplines and platforms;
Analyze performance of code and optimize or aid in optimizing algorithms;
Analyze performance of compiler and associated build processes. Advise and aid in streamlining the development process;
Analyze and support the data pipelines, ensuring that they are efficient and work reliably;
Create and maintain systems to help code teams with performance analysis;
Analyze memory usage in order to identify inefficiencies, errors and fragmentation. Use this information to fix, advise or find long term solutions to mitigate issues;
Measure and track loading the in-game loading processes to ensure high efficiency. Create and maintain systems to minimize impact of loading on players;
Create and maintain consistency of engine framework to support clear APIs and consistent separation of modules;
Plan, manage and regulate the multithreading environment and CPU core assignment;
Diagnose and repair the most complex bugs, including creating systems to help in debugging;
Stay up to date with requirements and updates from platform owners and other external parties. Ensure the implementation of the engine meets these requirements;
Evaluate, plan and manage updates of SDKs and Middleware;
Document the work so as to transfer knowledge and enable users (programmers and people from other tasks) to understand how the new systems, APIs and engine functions work.

Relevant Experience:Minimum 5-10 years’ experience in low-level programming for game console development;
Knowledge of the workings of video game engines;
Solid proficiency in C/C++ language.

Required Skills: Experience with multiplatform programming;
Solid proficiency in optimization techniques;
Multithreading experience;
Strong understanding of software development processes;
Excellent understanding of CPU and GPU bottlenecks;
Excellent understanding of performance sensitive programming (algorithmic and low level optimizations);
Good understanding of 3D math;
Experience with Direct3D and OpenGL;
Good understanding of Software Engineering principles, e.g. Object Oriented programming, etc.

Training: Bachelor of Computer Science or Computer Engineering or equivalent experience

Other skills: Problem solving skills;
Excellent debugging skills;
Driven by complex challenges;
Strong communicator;
Team player;
Flexible and able to adapt to changes.

We Offer:
Competitive Salary
Comprehensive Benefits Package:Disability Insurance
Dental Insurance
Extended medical insurance
(Optional) RRSP contribution
Profitability Bonus (If Applicable)
Why Ubisoft Toronto?
Scored by The Economist as the Best City to Live, our studio is located in the trendy Junction Triangle located in West Toronto, close to TTC, the hottest bars and restaurants, and excellent coffee shops. We celebrate successes as a team at our monthly UbiBash events, and invite our families to events throughout the year including our annual Kids Holiday Party and Summer BBQ. We give back to help make our community better through our team volunteer days and fundraising activities. We hold regular game jams to fuel our teams creativity. Ubisoft Toronto conducts annual performance reviews to help our team develop their careers and grow with our studio, and provides the opportunity for salary increases annually as part of the performance review process. Ubisoft Toronto also offers a comprehensive health benefits package, generous RRSP matching, industry education support, training and career development, flexible days, on-site Yoga and Bootcamp classes, fresh fruit, Life Drawing classes, as well as spontaneous team surprises such as Pi Day, Star Wars Day, and Halloween.
Join Us!
We hunt for talent from across the industry seasoned experts that know what it takes to ship world-class games and the next generation of game developer all-stars. We value team chemistry and a desire to grow our studio together. If this sounds like your kind of studio, what are you waiting for? Apply to join us now!

Ubisoft Toronto is an equal opportunity employer and welcomes applications from all interested parties. We thank you for your interest, however, only those candidates selected for an interview will be contacted. No agencies please.

Salary: Not Disclosed by Recruiter

Industry: Animation / Gaming

Functional Area: IT Software – Application Programming, Maintenance

Role Category: Software Developer

Role: Software Developer
CC++OpenglAlgorithmsSoftware EngineeringMultithreadingObject Oriented ProgrammingPlatformsSoftware DevelopmentMemory ManagementgameGaming
Desired Profile

Education:UG -Any Graduate – Any Specialization
PG – Any Postgraduate – Any Specialization
Doctorate – Any Doctorate – Any Specialization, Doctorate Not Required

Company Profile:
Ubisoft is a leading developer and publisher of video games worldwide whose brand portfolio covers blockbusters such as Assassin”s Creed, Prince of Persia and Splinter Cell, as well as games for the whole family, from Imagine and Petz to Rayman Raving Rabbids. To continue building on its achievements for the future, Ubisoft is looking for new talent for its growing Indian studio in Pune! We favor diversity, creativity, drive and team spirit.

Contact Details:
Recruiter Name:Ms. Neha Chobitkar
Contact Company:UBISOFT Entertainment India Pvt Ltd