Now that we're in the process of hiring a new gameplay designer / programmer, it feels like a good time to talk about the hiring process here at Frictional Games. We're a small company, so don't hire tons of people, but we've still taken on quite a few over the years and have constantly evolved our strategies for doing so. Hopefully this article will be of help both to people who intend to hire others, and for those who want to apply for a job (with us or with anyone else).
First of all, you've got to figure out what to write in the work ad. Usually ads tend to be very specific with requirements such as "At least 3 years of work experience as junior programmer". They also tend to inflate the skills needed in a certain area, e.g. "World-class skills in linear algebra". Normally these are meant to set a high bar for the applicants; the assumption is that very few people will meet the demands, but that people will apply anyway. We tend to be a bit softer in our approach, and be a bit vaguer in the skills we want. So, for instance, instead of saying "good knowledge of 3D maths," we just set a requirement saying "has worked on a 3D game".
The idea is to make sure that people who might be unsure of their skills still send in an application. The same goes for any requirement about years of experience. While, of course, it's great if someone has worked on commercial games for years, we don't want miss out on people who have been working on hobby projects for years. In fact, because of how we work at Frictional, having worked on hobby projects can sometimes be more important than working for a commercial company. I'm particularly emphatic about this as I myself had zero proper work experience when starting out on our first game - Penumbra Overture. I've also collaborated with lots of other extremely talented people over the years who've never held a proper job. So take that as advice: work experience is far from everything, and make sure you apply even if you're not sure that you match the criteria!
When the ad text is done, it's time to find places to post it. Over the years we have found that, by far, the best place for this is our own Twitter and Facebook pages. Posting on Gamasutra tends to lead to a lot of applicants, but over 90% of them are from outside of Europe, and we can't employ those. Pretty much all the other sites we've tried haven't been worth our time or money. The one exception is Polycount, which is a great - and free - place to look for artists. In fact, all of the modellers we've hired over the past five years or so have seen our ad on Polycount.
Once the ad is out, it's time to wait for the applications to pour in. Usually we get 100 - 200 of these over a period of a month or two. This is when we begin phase one of the elimination process, which is just to remove anyone that's obviously not right for the job. This includes people who live outside of Europe (and have no plans to move here), people have the entirely wrong skillset (e.g. programmer applying for an art job) and people who simply can't write a coherent sentence. About 70% of the applications are rejected at this point.
With phase one over we move on to phase two. Now we discuss all the applicants and consider whether they could be a good fit or not. This usually means that we send people further questions in order to clarify their situation. For instance, sometimes it might be clear that someone might not have access to highspeed broadband, or only wants a part-time job, and so forth. Sometimes these kind of issues are negotiable, and in other cases it forces us to reject them. If needed we also ask further questions to probe their knowledge a bit. This is never of the "solve this puzzle"-variety, but just going a bit deeper into their previous work. Normally fewer than half the remaining applicants move past this stage.
Now we're on to phase 3, which is the most important step of them all: the work test. This is a pretty big test, usually demanding 40-80 hours of work, in which people are given a package with our tools and some of our assets. Depending on how busy the applicant is, we're pretty lenient on how long the test will take and how they'll split up their time - it could be over a few weeks, for example.
An important part of the work test is that everybody doing it always gets paid. We feel it's bad form to ask someone to spend a week or more of their time on something without getting anything back. I'm especially proud of one guy who applied for a job, got rejected, but then used the work test money to start his own indie studio. That made it even clearer to me that paying people for doing work tests is the right thing to do.
In this test they need to create something based upon a few vague directions. There are a lot of things that we get out of this. One thing is to see their general work ethics. All the people doing the test need to log their time - we can see how conscientiously they do this, how much time they spend on each task and so on. (And if they lie about the time-keeping, this is very easy to spot.) It also gives us a good sense of how creative the person is, how good they are at using unfamiliar tools and so on. Normally everyone in Frictional will have a chance to review the work tests if they want to, so we have plenty of feedback and a good consensus on the candidates that stand out. Again, fewer than half of the applicants move on from this phase.
If we consider that a work test has been passed, it's time for the final phase: an interview. We used to do these interviews before the work test, but found that we usually didn't get much information from them - but once a work test is done, we have something to discuss and a basis to ask questions. I also wouldn't want a "bad hair day" to be a reason for us to reject someone. I want people to show what they can by doing good work, not by being good at selling themselves. It's also worth noting that we never ask any hard question of the "explain Quicksort in 30 seconds or less"-kind, as we're unsure how much that really says about someone. I know I would have trouble doing simple multiplication if I was nervous during the interview. So, instead, this phase is about getting to know the person and when we ask questions it's more about learning how this person thinks, and about getting a sense of how they might gel with the rest of the team.
It's now time to decide who we want to offer a job to. There's usually lots of deliberation at this point and it's never an easy choice. Finally we send our chosen person a mail saying they got the job, and check to see that they're happy to accept it. At this point there might be some salary discussions, but we try to settle the basics up front so we know hiring a person is within our budget.
When the person eventually starts, we try to ease them in. In the past I've made the mistake of giving people too much too soon, and this often makes it all work very badly. It's important that people feel at home when starting to work; if any issues arise early they are often hard to fix. Because of this, we make sure that the new employee has a lot of basic learning to do. The idea is that both parties decide when it's time to move on to actual work. We set up a number of features they must test and get used to and the newly employed can then work on those until they feel confident in their skills.
When that grace period is over, they're a proper part of Frictional! Mostly, at least. We give people 1 - 3 months of trial period in order to make sure they like the job and that they're a proper fit for the company. Usually it only takes a week or so to see if all is okay, but it's good to have plenty of time to make sure.
And that sums up how we hire at people at Frictional Games!
If you think it all sounds exciting, please consider applying for the gameplay programmer / designer position that we currently have open (more info here).