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.

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.

Tools Programmer

The incumbent will design, implement, and ensure the proper functioning of the tools that will develop the potential of the engine and help improve the efficiency of the production team. 

Type of Position: Permanent, full-time


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

Compile and understand IT development needs and assess their feasibility so as to best serve the production team; 
Analyse existing functions in the engine and see how they could be enhanced to fulfill the intentions of the project; 
Suggest improvements by designing and implementing new systems; 
Collaborate with TDs to enhance the production pipeline; 
Support the production functions and systems: production workflows in the editor, third-party application plug-ins (3DSMax, Maya, source control, etc,), and productivity tools (compilation, buildprocess, etc.);
Determine and correct the tools bugs identified by people from other crafts and the tools testers (and eventually the quality control team); 
Document the work so as to transfer knowledge and enable users (from other crafts) to understand how to use the new systems and functions; 
Carry out all other related tasks. 


Bachelors degree in computer science or computer engineering or equivalent training. 

Relevant Experience: 
5-10 years experience in software programming, ideally in the video game industry or equivalent. 

Essential Skills:Focus on producing quality work; 
Ability to understand user needs and take them into account when programming;
Sense of initiative; 
Problem-solving abilities; 
Attention to detail; 
Analytical ability and capacity for synthesizing; 
Flexibility in work organization; 
Good interpersonal and communication skills; 
Ability to work as part of a team; 
Ability to adapt to change; 

We Offer:
Competitive Salary
Comprehensive Benefits Package:Disability Insurance
Dental Insurance
Extended medical insurance
(Optional) RRSP contribution
Profitability Bonus (If Applicable)

Neha Chobitkar
Ubisoft Toronto Inc.
224 Wallace Avenue. M6H 1V7
Toronto, Ontario



Post a Comment