Job Description Ubisoft Toronto Inc. 224 Wallace Avenue. M6H 1V7 Toronto, Ontario www.toronto.ubisoft.com Location of position: Toronto, Ontario Our Mission Ubisoft is committed to enriching players’ lives with original & memorable entertainment experiences. We build worlds that are a playground for the imagination, offering moments of surprise, fun and adventure as well as opportunities for learning and self-discovery. At Ubisoft, you’ll grow and collaborate with highly talented teams from around the world. Our massively friendly work environment will inspire you to go above and beyond to create worlds people will fall in love with. Whether as an elite spy, a master assassin, or a fearless explorer, we put the player at the heart of all our games. Ubisoft Toronto is a growing and diverse team on a collective mission to create what’s next in AAA games. Since opening our studio in 2010, our team has shipped the critically-acclaimed Tom Clancy’s Splinter Cell Blacklist as lead studio, and Assassin’s Creed Unity, Far Cry 4, Far Cry Primal and Watch Dogs 2 in collaboration with Ubisoft Montreal. In 2012, we opened our state-of-the-art Performance Capture Studio, and Playtest. We are currently working on For Honor in collaboration with Ubisoft Montreal, as well as several top-secret, unannounced projects. Ubisoft Toronto is proud to be recognized as one of Canada’s Top 100 Employers for 2017. 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, full-time. Responsibilities: 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 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; Training: Bachelor of Computer Science or Computer Engineering or equivalent training or experience. Experience: Minimum 3+ years’ of experience in low-level programming for game console development using C/C++; Game industry experience is preferred; Knowledge of the workings of video game engines; Experience using one or more commercial game engines; Experience of refactoring and optimization. Experience with multiplatform programming; Multithreading experience; Essential skills: Extensive knowledge of C/C++ programming and debugging; Solid proficiency in optimization techniques; Excellent understanding of performance sensitive programming (algorithmic and low level optimizations); Strong understanding of software development processes; Good understanding of Software Engineering principles, e.g. Object Oriented programming, etc. Excellent understanding of CPU and GPU bottlenecks; Strong 3D math; Strong understanding of multithreaded/parallel programming; Other skills: Problem solving skills; Excellent debugging skills; Driven by complex challenges; Independent; Resourceful; Self-starter; Detail-oriented; Strong communicator; Team player; Flexible and able to adapt to changes; Experience with Direct3D and OpenGL. Qualifications We Offer: · Competitive Salary · Comprehensive Benefits Package: oDisability Insurance oDental Insurance oExtended medical insurance o(Optional) RRSP contribution oBonus (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 team’s 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.