Platform - Senior Graphics Programmer
Hi-Rez Studios is looking to hire an experienced Graphics Programmer to work on our Platform team at our studio in Alpharetta, GA; Brighton, UK; or remotely in the United States or England.
Come join the creator of the critically acclaimed Paladins, SMITE, and Rogue Company, as we embark on exciting new game projects!
What our Graphics Programmers do:
- Implement graphics algorithms, techniques and processes that meet the artistic, design and technical requirements of the project;
- Work as a key part of an agile development team, organizing and planning the implementation of features with direction from their lead, and assist less experienced programmers;
- Use practical solutions to implement feature requests, taking into account performance, maintainability and resource usage;
- Ensure coding standards are followed in their own and others code;
- Collect, interpret and analyze the technical feasibility of system/feature specifications;
- Write clear and well-structured code using the appropriate data structure and algorithms while bearing in mind performance, maintenance and architectural requirements;
- Include comments in the code and document implemented features;
- Demonstrate an understanding of the basics of load testing and game feature testing and write test code;
- Stay up-to-date with technology advances within the field;
- Perform code reviews for peers;
- Extract and interpret relevant runtime system resource information (disk IO, network, CPU, memory, etc).
What our candidates have:
- Five years of graphics programming experience in the games industry
- Good mathematics ability and a familiarity with common 3D graphics principles and rendering algorithms;
- Good working knowledge of current GPU architecture and modern rendering APIs;
- Very good C/C++ programming skills, with very good knowledge of object oriented development including design patterns and UML;
- Experience working with a large game codebase, and it's modules, middleware and associated pipeline;
- Understanding of speed and memory considerations, and able to implement basic optimizations;
- Knowledge of common algorithms, data structures and patterns, and their application;
- Ability to analyze unfamiliar code of a reasonable complexity to understand, extend and refactor an existing module;
- Ability to debug defects of a reasonable complexity, including memory related issues, and multi-threading;
- Knowledge of different software development methods such as Test Driven Development, Unit Testing, Agile etc.;
- Understanding the constraints and technical requirements for console platform development within their area is a plus;
- Ability to adapt to change;
- Good interpersonal and communication skills.