This vacancy may offer a work-from-home start until it’s safe to work in-house or relocate to the location.
The Senior Physics Programmer is responsible for designing and implementing large scale game physics systems with minimal guidance, providing technical support and mentoring to more junior members of staff. The Senior Physics Programmer position will report to a Lead Programmer.
The position is also expected to be proactive in dealing with other disciplines to resolve problems quickly, elicit clear requirements and translate them into flexible, reusable solutions. As well as solving challenging new technical problems, a Senior Physics Programmer will have an excellent understanding of best-practice and standard techniques within game physics and will keep up to date on innovations within the industry.
• Deliver high quality game physics systems using appropriate levels of abstraction.
• 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 physics problems.
• Mentor junior members of the physics programming team and communicate clearly with other team members with minimal external help.
• Educate and support other teams to correctly and efficiently use physics systems.
• 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.
• Excellent practical understanding of physics concepts.
• Understanding of the performance trade-offs for physics systems.
• Experience with PhysX.
• Able to tune physics systems based on high level design input with minimal assistance.
• 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 on physics 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/Physics focus or equivalent experience.