🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Getting Destroyed in Programmer Screeners

Started by
17 comments, last by Ravyne 9 years, 4 months ago

Advice I had been given for years by recruiters while still in college was "work on your portfolio, publish games, get your own experience, get noticed."

That has worked to some extent. As a graduate, I've been getting "cold" opens from recruiters from all over. They send me a test without speaking to me at all, very opposite of regular job recruitment processes at the like of Microsoft/Facebook/Apple/ect, and they're massive. Like, 4-10 hours massive. One game shop sent me a 50 question short answer, essay, math, and programming test. So, without even getting to talk to someone about the position and the team, I'm getting subjected to lots of work for a position that I may not even like the sound of off the bat. Its a little weird. And the advice given is not conducive at all. I've made games in Unity, Unreal, Construct 2, XNA. I have published some and have prototyped many. But almost none of that has given me the experience and knowledge necessary to push through these screeners to even talk to someone it seems. The amount of vector math theory expected has been pretty mind boggling to me. These engines almost entirely hide those theories and automate it for you, so when these screeners ask to implement them, I tend to get stuck. I eventually come up with answers that I can test and they seem right and when I look them up to check they work out.

But obviously something is wrong because at least 10 screeners I've gone through now since I've graduated, the normal response is "Oh sorry, we've moved on with other candidates." No feedback, no obvious issue to me how I can improve other then general stuff. I've revisted tough questions that really eluded me such as some deep vector math questions which I admit I definitely need to improve on in general. But there are questions I've had where even presenting them to paid tutors (spent $150 total just to learn what this question was asking from 1 test), and still not get an explanation as to how to solve some of them optimally.

So I'm not sure what to do about the screeners and for the screeners that I do get by is another issue: I just find it weird how there are books dedicated to job interviews from Microsoft and such, but interviews in game programming require a seemingly random amount of knowledge for a graduate or junior programmer.

If I get past the screener, I then go into the phone interviews and there its "anyone's game" it feels like. I've been asked cache->ram cycles off the top of my head on one interview, another interview asked about a plane projection algorithm to be verbatim, a different interview wanted to know specific information about mutex locks and flags. I have experience or general knowledge I can talk about in all these areas, but I really struggle to regurgitate specifics on the spot. Some interviews, say for tools or generalist programmer positions, switch gears from C# to C++ to Python super fast and that throws me off too because its not like I don't know them, but to study 3 different languages in detail for an interview is seriously tough. I'm not exaggerating when I say these interview topics, regardless of the position, feel like total crapshoots as to what is fair game to ask. Its SO MUCH material at varying degrees of detail. I have an upcoming interview next week and I couldn't tell you the kind of questions I might get asked despite having already spoken to someone on the job. When I went to interview with Google in person, I knew the kinds of questions they would ask which doesn't necessarily make it easier but it makes it so much more approachable and I don't feel like a panicking mess when I get asked questions.

I'm going to keep trying no doubt. I definitely feel like I'm getting better at every screener I do and person I talk with. I'm super close. Heck, the interviews in progress right now I might have in the bag I hope, but the sheer variance/scope and time demand is throwing me for a loop. And at some point, I'm going to run out of studios to apply to believe it or not. I'm close to the point where if something doesn't open up soon, I'm not going to have any more applications in the wild.

Does anyone have suggestions or personal experience they can recommend?

Right now I'm:

  • going back over screeners
  • asking for second opinions
  • I'm reading the heck out of several Vector Math textbooks and Engine programming books from Jason Gregory @ ND every day.
  • I have most of Cracking the Coding Interview committed to memory, but those kinds of questions really never get asked to my dismay - only at MS/Facebook/Google as I've mentioned
  • And I try to watch one or two programming talks when I can.
  • Trying my best to keep both my C++ and C#... sharp. Sometimes if I spent too much time in one language, I get rusty in the other

And I've kind of stopped prototyping and indie game deving in my own time. again, I've found it to not be helpful in the slightest getting past these interviews and I no longer have the time commitment to spend if I'm studying like a madman X.x

EDIT: And yes, I've read the FAQs. I've been/read/participated in most of those talks/discussions years ago or watched plenty of GDC/Gamasutra talks

Advertisement
rememberant, what exactly is a "screener"? Is that the first person who interviews you (who is NOT the person who is looking to hire someone)? Is that what you mean? You used the term a lot but you didn't clearly define it.

I have used filters when reading through a stack of resumes - and I wrote about that at http://www.sloperama.com/advice/m87.htm

-- Tom Sloper -- sloperama.com

Do you mean with screener something like a head-hunter, a scout or your first contact person for a job who send you some tests ?

rememberant, what exactly is a "screener"? Is that the first person who interviews you (who is NOT the person who is looking to hire someone)? Is that what you mean? You used the term a lot but you didn't clearly define it.

I have used filters when reading through a stack of resumes - and I wrote about that at http://www.sloperama.com/advice/m87.htm

No nothing to do reading resumes.

Here:

I've been getting "cold" opens from recruiters from all over. They send me a test without speaking to me at all, very opposite of regular job recruitment processes at the like of Microsoft/Facebook/Apple/ect, and they're massive. Like, 4-10 hours massive. One game shop sent me a 50 question short answer, essay, math, and programming test. So, without even getting to talk to someone about the position and the team

That test is a screener.

The way Microsoft or Google do a screener is they first have an HR rep reach out to you. Schedule a phone call with someone who will likely ask a technical question or two. That person might have you write code into a google doc live, basic questions. You do well with them, then they fly you out. Microsoft usually keeps it to one person who calls you while Google I had two people - HR and then purely technical screener.

A screener by game industry standards seems to be, at least 85% of my experiences, these "take home technical tests" or question packets before you talk to anyone. Such as the 50 question test I got from a company. Sometimes they're essay based, sometimes they short function questions, sometimes they're entire system design questions. One asked me to do a big diagram for some network backend system - databases and all - and I had yet to talk to anyone about the position and why I would even be asked a question like that. The point being, they are magnitudes more demanding and detail orientated than I've experienced before with any other companies. I feel really unprepared whenever one of these tests come my way out of blue, their topics are all over the place, and when I don't get feedback after spending 8 hours of some system design and implementation, its completely defeating.

Do you mean with screener something like a head-hunter, a scout or your first contact person for a job who send you some tests ?

I guess first contact person. Its usually an HR person who just sends the test. Most of the time, I don't even get to talk with the HR person. Its just "here's a test and how long we expect it back." There have been one or two studios where the HR person talks to me on the phone, asks me general behavioral and previous experience questions, maybe a technical question or two, and I go much further in those scenarios than I do the blind test or "screener" as I've seen it referred to elsewhere. I think part of it is that I feel much more confident talking to a person and being able to clearly ask questions about what is being asked of me, then some test where obscure questions with dozens of interpretations can be made, and sending emails back and fourth talking about technical details of a question isn't conducive.

These tests are not uncommon and they are often the first thing to get past if you have no experience. It's the way you prove yourself for them to even start talking to you. If you do not pass the test they think your knowledge is to low to waste their and your time on a interview. So some advice on them.

'and how long we expect it back'
This is an important part and you should aim for two or three days. Limit the amount of studios to apply to at the same time so you do not get to many tests at the same time. You can work a few hours each day and still keep the rest of your life running. So you are in a way saying it will take you about one day of work time.

'dozens of interpretations can be made, and sending emails back and fourth talking about technical details'
Do not do this. The test both check your ability to do the task and also handle a diffuse specification. There are always many ways to interpret any assignment. If you keep asking questions time and again the will think you are a person that can not work on his own. The technical person that later review your test will look at all the email exchange and conclude that your are to much risk to hire. Do what you think is the right way and complete the assignment on time and sent it in. If you do not make precisely what they feel they specified they will still look at the answers and get a feel for how you work. If you get to an interview the talk will then be why you choose to do as you did in the assignment and not random questions they pull out of a hat.

'stopped prototyping and indie game deving in my own time'
Start again, its the best way to get good smile.png.

@spinningcubes | Blog: Spinningcubes.com | Gamedev notes: GameDev Pensieve | Spinningcubes on Youtube

These tests are not uncommon and they are often the first thing to get past if you have no experience. It's the way you prove yourself for them to even start talking to you. If you do not pass the test they think your knowledge is to low to waste their and your time on a interview. So some advice on them.

'and how long we expect it back'
This is an important part and you should aim for two or three days. Limit the amount of studios to apply to at the same time so you do not get to many tests at the same time. You can work a few hours each day and still keep the rest of your life running. So you are in a way saying it will take you about one day of work time.

'dozens of interpretations can be made, and sending emails back and fourth talking about technical details'
Do not do this. The test both check your ability to do the task and also handle a diffuse specification. There are always many ways to interpret any assignment. If you keep asking questions time and again the will think you are a person that can not work on his own. The technical person that later review your test will look at all the email exchange and conclude that your are to much risk to hire. Do what you think is the right way and complete the assignment on time and sent it in. If you do not make precisely what they feel they specified they will still look at the answers and get a feel for how you work. If you get to an interview the talk will then be why you choose to do as you did in the assignment and not random questions they pull out of a hat.

'stopped prototyping and indie game deving in my own time'
Start again, its the best way to get good smile.png.

Like I said, the stuff I've been doing previously doesn't help with these tests thats why I'm looking for help and new suggestions.

I could make several more games and it wouldn't be related at all. I could go and make a dozen games in Unity or UE. Not one of them will improve my ability to "create a queue structure that has manual alloc and dealloc methods that do not use heap, but instead, a provided 2048 char/byte array as storage" I couldn't even force a scenario like that if I wanted to into an indie game. Why would I?

I guess maybe I'll make my own engine from scratch and learn Direct X or something and force myself to never use any of the STL libraries and wing it, which isn't bad to know, but DX going to just add to the pile of "general knowledge" and take quite awhile to do and not add any immediate knowledge for the first couple of weeks/months that I need for these tests, as someone who now is out of school and no job its rough.

This is an important part and you should aim for two or three days. Limit the amount of studios to apply to at the same time so you do not get to many tests at the same time. You can work a few hours each day and still keep the rest of your life running. So you are in a way saying it will take you about one day of work time.

I do the tests right away and send it back typically the next day after I get them. Earlier if possible, same day. Never implied I couldn't complete them in the time limits provided.

Do not do this. The test both check your ability to do the task and also handle a diffuse specification. There are always many ways to interpret any assignment. If you keep asking questions time and again the will think you are a person that can not work on his own.

I don't send emails back and fourth. That's part of the issue.

for example maybe they made an error on the test or something but because I never asked I will never know - one studio handed me a math question which I had no idea how to do and could've come up with 3 different interpretations of the question. After being told off, I went to paid tutors and they're like "uummmm yeah it doesn't look like you can solve this." So what gives? do I email, do I not email? I don't email I can't decipher the problem (in question) so I fail vs I email and suddenly its about how to "interpret" the assignment so I fail. With no feedback, it makes it impossible to get good at that. At least, again, with that specific question that is one of the primary reasons I'm quite riled up about this. There are a bunch of stuff I could theoretically cover, but the issue is I don't know what to cover specifically and the people I expect to know how don't know either. Heck, WHO KNOWS if I did that question completely correct! Maybe it was the other 4 questions I got wrong. Maybe they just didn't like how I wrote code. I have no idea & I guess I never will. I can't get better at something I don't know I need to is what I'm saying.

EDIT x 19:

Sorry if I'm venting while also asking for help at the same time. I don't mean to sound dismissive of suggestions, but I know they're unrelated so far in the my difficulties.

Not one of them will improve my ability to "create a queue structure that has manual alloc and dealloc methods that do not use heap, but instead, a provided 2048 char/byte array as storage" I couldn't even force a scenario like that if I wanted to into an indie game. Why would I?

So, that sounds very much like they are looking to see how comfortable you are with actually implementing and understanding data structures, rather than just using libraries. Yes, you probably won't be writing your own systems (and arguably, most of the time, you shouldn't be), but making sure you know how to as an open-book question seems reasonable to me.


obviously something is wrong because at least 10 screeners I've gone through now since I've graduated, the normal response is "Oh sorry, we've moved on with other candidates."

10 is not yet a large enough number to draw many conclusions from. Unfortunately the industry you're attempting to enter has limited positions available and an over-abundance of candidates, so even if you're answering all of the questions perfectly and returning the test promptly you may not get the position. Perhaps there are more qualified candidates (with actual industry experience, additional training, whatever), perhaps you got one question wrong and someone else answered perfectly, perhaps you answered perfectly but your test wasn't even looked at because they just proceeded with the first however many other tests also answered perfectly and yours wasn't one of those ,perhaps another candidate knows the recruiter, and so on and so forth.


No feedback, no obvious issue to me how I can improve other then general stuff.

The whole point of a screening process (however it's conducted -- testing is just one method) is to minimize the amount of resources used to find the right candidate. Unfortunately that means that there won't ever be feedback if you aren't accepted for the next stage, as that would require additional time and effort from the recruiter.

If you feel like you're doing reasonably well on the tests, you have a good portfolio and you've got a good relevant qualification then it sounds like you're doing everything right. I would suggest you simply continue trying to improve your skills and keep at it -- unfortunately you'll probably be rejected many more times before you get in, but if you stick at it you should get there eventually.

It does sound like lower-level development may be a weak area for you, and whilst that won't be a problem with all recruiters and for all positions it's an identified weakness that you can work to improve.

One of examples I mentioned above for why another candidate may be chosen before you is that they might have inside contacts -- this is quite common, and if at all possible you should put some effort into trying to make yourself that person who knows someone -- network with members of the industry to build contacts and get your name and portfolio out there. If you have an active local IGDA chapter attend some meetings. Attend industry conferences and make sure you make the most of opportunities to form connections. If you're active on Twitter follow industry members and watch for opportunities to interact with them in a positive way. Continue everything else you're doing as well, but also try to be that guy who doesn't just get in because of what you know but because of who you know.

Hope that helps! :)

- Jason Astle-Adams

Sorry if I'm venting while also asking for help at the same time.


Apology unnecessary!

-- Tom Sloper -- sloperama.com

Also, be aware that while they are interviewing you, do not forget that you are also interviewing them.

If they send you a test that will take 10 hours before they will talk to you, consider what that means. Already they are giving you more than a full workday worth of work to do without compensation. Feel free to call them out on that.

Obviously as an entry level worker there are usually far too many applicants and they need to be screened out somehow.

Even though I have decades of experience I've had companies send me tests like you described. Usually at the very top I've written something similar to the first two lines of this post. I'm willing to give a company an hour or two of free time for a test, but at my level I can afford to be picky and pass over what are obviously bad jobs. For those I'll look at the clock and at the end of two hours conclude the test with "That is what I accomplished in two hours. If you want more of my time it will need to be with an in-person interview." I've had some very negative feedback from some HR drones about how I should be grateful for the opportunity to give them a full day of my time, which just serves to reinforce that they are likely a bad place to work. Other times I've had HR drones and team leaders contact me and state that defending my time is something they could appreciate and wished more people would do. How they respond to that depends on the workplace.

So for that portion, I can commiserate. It is your life, you can choose how to spend it. Some businesses will hold it against you, others will support you.


Does anyone have suggestions or personal experience they can recommend?
Right now I'm:
going back over screeners
asking for second opinions
I'm reading the heck out of several Vector Math textbooks and Engine programming books from Jason Gregory @ ND every day.
I have most of Cracking the Coding Interview committed to memory, but those kinds of questions really never get asked to my dismay - only at MS/Facebook/Google as I've mentioned
And I try to watch one or two programming talks when I can.
Trying my best to keep both my C++ and C#... sharp. Sometimes if I spent too much time in one language, I get rusty in the other
And I've kind of stopped prototyping and indie game deving in my own time. again, I've found it to not be helpful in the slightest getting past these interviews and I no longer have the time commitment to spend if I'm studying like a madman X.x
Grr, editor ate my post.
Keeping sharp on languages and math is important.
It is good for you to do what you described, studying the questions they gave you so in future interviews you can handle that style of questions more easily.
For keeping the languages sharp, I've found it useful to re-implement basic data structures and algorithms. This works well both for languages I know and for learning know languages. Implement containers like your own dynamic array, doubly and singly linked lists, heaps, trees, and more. Review twenty or thirty different sorting algorithms and why using quicksort is not always the best option, then implement a dozen of them. Crack open some of those CS books and do some of the programming exercises. This can keep you sharp in a language without too much effort.

This topic is closed to new replies.

Advertisement