Interviewing Engine, Graphics, and Pipeline Programmers ___________________________________________________________ Technical phone screen ----------------------- The phone screen should filter for candidates with domain knowledge and enthusiasm. It should screen for foundational technical competence. It should filter for fundamental cultural mismatches. A red flag is a claim that it's not important to know something, or that something is unknowable. Examples would be a fall back on saying it's only necessary to Google the answer rather than understanding it, or to make claims like no one really understands quaternions. The question prompts here aren't meant to rule candidates out, but to guide conversation in order to discover how deep the candidate can go versus a position's requirements. 1. Brief introduction - your role, the position to be filled - note that you've read their resume, and that this is a technical screen 1. Domain knowledge - find one relevant topic that they can speak confidently and competently on 1. Competence in C++ (or other language as appropriate) - Ask for a self assessment, then deep dive accordingly - If C++ - subtleties of virtual - how does a vtable work - how do you write a comparison operator that properly sorts a vec3 into a std::set 1. Basic linear algebra and math - Suggested questions - common uses of dot and cross - In a 2d game with a tank, how can I determine if a target is to the left or right? - common uses of the determinant 1. Ability to describe basic concurrency concepts - deadlock, races, priority inversion - semaphores, mutexes, condition variables 1. For graphics - expertise in their graphics API of choice - the rendering equation - explain what a solid angle is - the difference between radiance and irradiance 1. for engines - describe the responsibilities of a game engine versus game play code - describe the game loop - describe how an AI system and a physics system might interact 1. for pipeline - describe how a character gets from a DCC to an engine ___________________________________________________________ In person --------- The in person interview should confirm the findings of the phone screen. Fundamentally, the in person interview should ascertain aptitude, alignment, and fit. Say a little bit about yourself and your role. - Provide enough context that the candidate knows how to speak to you and what about Say a little bit about the role to be filled. - Give the candidate an opportunity to know how to frame their responses Ask what attracted the candidate to the company and the role - They should reveal interest, enthusiasm, and preparation - This is an opportunity for them to pitch why they're ideal for the role Ask about responsibilities during the last couple of years - Establish what they actually did - Do they give credit and get enthusiastic about the work of others? - Describe something really amazing that a colleague did - Try to understand how they were expected to work with others, and how that went Ask about a conflictual situation and how they resolved it - Technical disagreement, or teamwork issues are fine - Screen for empathy, respect for others - Listen for behavioral red flags such as blaming and projection What was a particularly challenging or interesting task, and how did you solve it? - Opportunity to bring it back to technical, and dial back tension if it arose - Let them show off a little What kinds of projects do you work on your own time? - Learn what they're really interested in - Look for adaptability, initiative, and self-motivation What are your career path aspirations? - Is it something that can be supported in the team environment? - Will they be constantly yearning to be somewhere else? If their technicals seem good, but you still haven't found core enthusiasm - Ask them to pitch to explain how they believe they will augment the team Give them an opportunity to ask questions, but don't drag it out. ___________________________________________________________ Comparing Notes --------------- To get directly to the point, ask whether anyone wants to pitch for a must hire, or an outright reject. If the mood is generally positive, ask for examples of attributes that stood out, either positive or negative.