Senior Tools Programmer
The Senior Tools Programmer is responsible for extending the game editor and digital content creation tools with minimal guidance. They will also provide technical support and mentoring to more junior members of staff. The position will report to the Studio Programming Lead.
The position is expected to be proactive in dealing with other disciplines, particularly art, animation and script, to resolve problems quickly, elicit clear requirements and translate them into flexible reusable solutions. As well as producing easy to use and efficient tools to enhance the team's workflow, the Senior Tools Programmer will be comfortable modifying the existing editor, manipulating and transforming the data for the game.
- Deliver high quality tools and editor features using appropriate levels of abstraction.
- Support other teams in the use of the game editor and DCC tools. Improving their workflow and the velocity of the entire team.
- Identify and debug technical problems quickly and efficiently.
- Prioritise, plan and manage the time of assigned tasks with minimal oversight.
- Collaborate on technical direction and develop innovative solutions for complex workflow problems.
- Mentor junior members of the programming team and communicate clearly with other team members with minimal external help.
- Help educate and support other teams to correctly and efficiently use the game editor.
- Use appropriate data structures and algorithms to maximize efficiency (for both development time and runtime performance).
- Be vigilant for and report new problems, delays and risks to the appropriate Lead/Director.
- Seek support from higher level management when required.
- Strong C++ programming and debugging skills. Experience with scripting languages like Python, Maxscript or Mel.
- Excellent practical understanding of game editors and workflows.
- Strong communication skills, comfortable working across teams and mentoring staff.
- Extensive algorithm and data structure skills (including time & space complexity and real-world vs theoretical performance).
- Able to understand and utilize multi-threading primitives & high-level networking concepts.
- Capable of reading and quickly understanding complex code.
- Self-motivated and driven to creatively solve problems.
- Able to plan an entire sub-system including external dependencies with minimal input.
- Videogame programming experience building tools, including having shipped at least one AAA PC/console title.
- Bachelor’s degree with a Computer Science/Software Engineering focus or similar experience.