Tools Programmer [New IP] (458)
Tools Programmers develop, maintain and support key tools to enhance the productivity of their game project. They should look to share their work and reuse other tools from projects across Ubisoft. They work in an agile, proactive and autonomous manner to identify needs and opportunities which deliver value to our pipeline productivity.
- Work as a key part of an agile development team, taking responsibility for organising and planning their own work;
- Use practical solutions to implement feature requests;
- Ensure coding standards are followed;
- Collect, interpret and analyse the technical feasibility of tool specifications;
- Write clear and well-structured code using the appropriate data structure, algorithms and design patterns while bearing in mind performance, maintenance and architectural requirements;
- Include useful comments in the code and document implemented features;
- To manage own workload and time to deliver quality and responsive solutions in collaboration with other team members.
- To innovate and improve the quality of implementation, performance and usability of the tools and project pipeline as a whole.
- To proactively identify opportunities for bringing value through productivity enhancements to our game productions.
- To provide consultation and support to other team members or other teams as required.
- To maintain good lines of communication with users and to proactively seek feedback from them.
- To abide by and contribute to the development of standards, procedures and processes.
- Support the Lead Programmer in any ad-hoc duties and requests.
Skills and Knowledge
- Very good programming skills in at least one language (C#, C++, Python etc.)
- Very good understanding of tools development in games.
- Very good understanding of UWP, WPF or other graphics subsystem commonly used in tools.
- Good working knowledge of at least one game engine, middleware and associated pipelines;
- Understanding of speed and memory considerations, and able to implement basic optimisations;
- Knowledge of common algorithms, data structures and patterns, and their application;
- Ability to analyse unfamiliar code of a reasonable complexity to understand, extend and refactor functionality of an existing module;
- Ability to debug defects of a reasonable complexity, including memory related issues, and multi-threading;
- Knowledge of difference software development methods such as Test Driven Development, Unit Testing, Agile, etc.
- Ability to collect, interpret and analyse the technical feasibility of system / feature specifications.
- Ability to maintain good lines of communication with stakeholders and to proactively seek feedback.
- Very good working knowledge of various data formats e.g. (JSON, XML, YAML);
- Experience with large engines and complex pipelines is desirable;
- Able to plan and estimate their own tasks and ensure timely delivery of work;
- Ability to participate and resolve problems;
- Ability to work well as part of a team;
- Ability to adapt to change;
- Excellent communication skills in spoken and written English.
Benefits & Relocation
Flexible working, 22 days annual leave + Christmas shutdown, private healthcare (with option to add immediate family), life insurance & income protection, workplace pension scheme, paid volunteering days, annual fitness & well-being allowance, games, technology & merchandise, subsidised travel and many more...
Relocation assistance is available to anyone currently living 50 miles or more from the studio location. Please contact a member of the talent acquisition team to find out what we have to offer and how we can support with your move here... relocation really doesn't have to be a daunting prospect.
Find out more about Ubisoft Reflections: https://reflections.ubisoft.com/about/ubisoft-reflections/
Ubisoft Reflections & Ubisoft Leamington is an equal opportunity employer. We celebrate diversity and are committed to creating an inclusive environment for all employees.