The Senior Mobile Programmer position will report to either a Lead or Director in the programming team. Senior Mobile Programmers are responsible for designing and porting large scale game and engine sub-systems to mobile platforms with minimal guidance and providing technical support and mentoring to more junior members of staff. They are also expected to be proactive in dealing with other disciplines to resolve problems quickly and elicit clear requirements and translate them into flexible reusable solutions. As well as solving challenging new technical problems, a senior mobile programmer will have an excellent understanding of best-practice and standard techniques of C++ game development on at least one major mobile platform and will keep up to date on innovations within the industry.
- Deliver high quality and high-performance game & engine sub-systems, features on mobile platform using appropriate levels of abstraction, data structures and algorithms.
- Support other teams in the use of the mobile platform specific features and work closely with other teams to deliver features to mobile platforms at the expected quality & performance.
- Identify and debug technical problems quickly and efficiently.
- Prioritise, plan and manage the time of assigned tasks with minimal oversight.
- Help define the technical direction and develop innovative solutions for difficult engineering problems.
- Help mentor junior members of the engine programming team, and communicate clearly with other team members and teams with minimal external help.
- Help educate and support other teams to correctly and efficiently develop to mobile platforms.
- Use appropriate data structures and algorithms to maximize efficiency (for both development time and runtime performance and memory usage).
- Be vigilant for and report new problems, delays and risks to the appropriate Lead/Director.
- Request support from higher levels when required.
- Strong C++ programming and debugging skills.
- Excellent knowledge of C++ game programming on at least one mobile platform.
- Understanding of the performance trade-offs for her/his expert area.
- Strong understanding of multithreading paired with strong practical experience using MT in game engine.
- Strong communication skills, and comfortable working across teams and mentoring staff.
- Extensive algorithm and data structure skills (including time and space complexity and real-world vs theoretical performance).
- Capable of reading and quickly understanding complex code.
- Self-motivated and driven to creatively solve problems.
- Able to plan the work to build bigger chunks including external dependencies with minimal input.
- Videogame programming experience on mobile programming, including having shipped at least one high quality 3D mobile game developed in C++.
- Bachelor’s degree with a Computer Science/Software Engineering focus or similar experience.