The Senior AI Programmer is responsible for designing and implementing large scale AI systems with minimal guidance and providing technical support and mentoring to more junior members of staff. The Senior AI programmer position will report to the Studio Lead Programmer.
The role is also expected to be proactive in dealing with other disciplines to resolve problems quickly, elicit clear requirements and translate them into flexible, re-usable solutions. As well as solving challenging new technical problems, a Senior AI Programmer will have a good understanding of best-practice and standard techniques across a range of AI gameplay systems and will keep up-to-date on innovations within the industry.
- Deliver high quality AI gameplay systems using appropriate levels of abstraction.
- Choose appropriate AI solutions to balance the performance and behaviour requirements of the game.
- 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 difficult AI problems.
- Mentor junior members of the AI programming team as well as communicate clearly with other team members with minimal oversight.
- Support other teams with the use of AI systems developed by the team.
- 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.
- Request support from upper management when required.
- Excellent awareness of AI specific paradigms and algorithms including performance and trade-offs of different approaches.
- Able to tune gameplay systems based on high level design input with minimal assistance.
- Strong C++ programming and debugging skills.
- 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 & utilize multi-threading primitives and high-level networking concepts.
- Capable of reading and quickly understanding complex code.
- Self-motivated and driven to creatively solve problems.
- Able to plan the work to build an entire sub-system including external dependencies with minimal input.
- Videogame programming experience on AI gameplay systems, including having shipped at least one AAA PC/console title.
- Desire to work in a fast-paced, high growth, start-up company environment.
- Ability to work full-time based in Edinburgh, Scotland.
- Bachelor’s degree with a Computer Science/Software Engineering focus or equivalent experience.