A phone screening, followed by a take-home test, a second phone screening, and then an on-site interview and programming test. The response after each phase was very quick, taking one week at the most.
Everyone I spoke with was very friendly and seemed passionate about their work. They frequently asked me personality questions to determine my fit with company culture, and these frequently resulted in us joking around and having fun.
We did go over on time more than once, but the team is so friendly and knowledgeable that the time really flew by.
The first phone screening was very easy. They asked very basic questions about data structures, and it seemed mostly a dummy test to see if I was competent enough to receive a programming test.
Things got more interesting when they unexpectedly asked me game design questions, which in hindsight made sense as the position would have required a great deal of interaction with the design team.
The programming test was a little tricky. Nothing unreasonable, but none of the questions were simple implementations I could just look up on Stack Overflow.
The second phone screen was mostly to talk about my programming test, going into detail about my decisions. After that, I was offered an on-site interview.
The on-site interview started with an hour-long programming test, followed by an hour-long interview with several different teams, which ended up totaling about 6 hours.
The programming questions all asked for very basic implementations; however, there was no compiler provided, so I had to rely on experience (and scratch paper) to determine if I had gotten it right.
After the test, I met with programmers to talk about my test questions, going into detail about why I had chosen to implement my solutions the way I had, and possible ways to improve the implementations.
It was expected that I might make some simple mistakes without the ability to compile and debug. However, none of these mistakes seemed to count against me as long as I was able to explain my thought process and show that I would have caught the mistake and produced a good solution if I had more time and a debugger.
We took a break for lunch, and after lunch, met with other teams of programmers and designers.
The first team gave me some brain teasers and asked me gameplay programming questions, how I would implement systems that handle certain situations, etc. The brain teasers were because I finished that segment early, so we had extra time to kill before the next team. It was fun but didn't feel like part of the formal interview.
The next team started asking me trickier questions about MMO netcode and math.
In the end, my unfamiliarity with math ended up being the deciding factor, so in hindsight, I do wish they had asked more math problems at the beginning so I would have been aware that it was something I needed to study before the on-site.
However, it was still an overwhelmingly positive experience overall, and I do intend to apply again in the future.
What is your favorite, and least favorite thing about the most recent expansion in World of Warcraft?
(After providing an answer, the follow-up question) Assuming you were put in charge of designing a fix for your least favorite thing, how would you go about it?
Describe the internal structure of various common containers, and the pros and cons of each.
Describe some of the basic differences between TCP and UDP networking. When would you use each?
Assume a paladin targets a unit and presses their heal button. Describe what the client and server do to handle this player input. How do you handle the cast time, target verification, and having enough mana? What happens when the cast completes? Could anything interrupt it, and how would the engine handle an interruption? Is your solution vulnerable to cheaters? How would you prevent them from broadcasting malicious messages to interfere with this casting process?
A mage casts Dragon's Breath in front of them. How do you verify a target is within the cone of damage? Assume the netcode is perfect, and you already have a spatial partitioning solution, so all you have to worry about is two unit positions. Perform the math you would need to verify a hit. Would you choose a cone that is flat at the end, or rounded? Why?
The following metrics were computed from 1 interview experience for the Blizzard Gameplay Programmer role in Irvine, California.
Blizzard's interview process for their Gameplay Programmer roles in Irvine, California is extremely selective, failing the vast majority of engineers.
Candidates reported having very good feelings for Blizzard's Gameplay Programmer interview process in Irvine, California.