${ alert.message }}
${ alert.message }}
Share Job
Copy the link below to share this job.
Ubisoft

Senior Engine Programmer

${ timestamp }} · 
Ubisoft
πŸ‡ΈπŸ‡¬ Singapore

Company Description

Ubisoft Singapore is one of the top game development studios in the APAC region. Part of Ubisoft’s global network of studios, we’ve been creating memorable gaming experiences in Singapore since 2008. With over 300 employees from 30+ different nationalities, we are a diverse bunch of creatives redefining the world of digital entertainment for millions of players across the globe.

Job Description

Role Summary

The Senior Engine Programmer supervises some parts of the engine, as defined by the Lead, and makes propositions concerning the choice of specific engine modules. He/she can validate specific engine features and contribute to enhancing their performance and the game quality. He/she also coaches less experienced programmers.

Analysis

  • Has good knowledge of the language used by the development team, object-oriented development (most likely C++). Produces robust meta programming solutions.
  • Relevant experience working on AAA titles, current and next-gen consoles
  • Is able to identify problems in the engine or middleware, and propose technical solutions or improvements.
  • Evaluates and compares engine or middleware strengths and weaknesses.
  • Is able to identify problems in the engine or middleware, and propose technical solutions or improvements.
  • Evaluates and compares engine or middleware strengths and weaknesses.
  • Analyzes requests and raises flags, foresees potential issues, proposes different options.
  • Is able to use reverse engineering when documentation is lacking in order to understand the purpose of a piece of code.
  • Modifies (cleans up) existing code to improve its design, structure, and/or clarity without changing the external behaviour.
  • Is able to research and experiment with unconventional techniques and new approaches to contribute to technology advances for his project or studio.

Software Design

  • Has a practical approach to software design (does not get lost in paradigms) and plays an important role in team software design reviews.
  • Keeps code efficiency in mind from the start and choose optimal solution based on the available information.
  • Uses data modeling to structure and organize data.
  • Uses templates & design patterns appropriately.
  • Designs modules or components to be integrated in a complex system.
  • Is consulted on major software design decisions for the project.

Implementation

  • Participates in the definition of coding standards & methods used on the team.
  • Has strong knowledge of the advanced features of the software development environment and associated tools (i.e. Visual Studio, Perforce...).
  • Has strong knowledge of the strengths, weaknesses and limitations associated with the different platforms.
  • Is able to integrate large-scale modules or components (could be from other projects) while minimizing the impact on the rest of the programming team.
  • Encourages technology sharing across projects.
  • Determines when refactoring is necessary and / or appropriate and knows how to do it well.
  • Performs code reviews for peers (detects errors, design flaws).

Debugging

  • Is comfortable with debugging unfamiliar code.
  • Debugs using assembly / memory
  • Is able to debug without the use of debug info, trace memory overwrites (ex: can use PIX snapshots for debugging, can debug problems related to multithreading access).
  • Uses unconventional solutions when needed to solve difficult problems.
  • Uses Performance Analysis tools to determine areas that need optimization (profiling).
  • Is able to write custom tools for memory; CPU load profiling etc.
  • Uses cutting-edge technologies at low level (Assembler, SPU for PS3) to make optimizations.

Additional Information

Perks

We realize it takes world-class people to make world-class games. Apart from a competitive compensation package and a culture that thrives on creativity and individuality, Ubisoft Singapore offers a wide variety of perks including performance based incentives, comprehensive health and benefit packages, tuition reimbursement, flexible working hours, and opportunities for career development and learning.

Next step

Are you excited about creating the unknown? Are you serious about fun? Do you constantly seek out learning opportunities? At Ubisoft Singapore, we are looking for talent who are solution-oriented problem solvers, creative yet open to collaborate, and team players who also thrive in bringing their A-game to work.

If this sounds like you, shoot us your resume and we will invite you for a first chat to find out more about becoming an awesome addition to our team!