How we run a software company: Recruitment
23 June 2011, by Chris Harris
In this business, employees are a company’s most valuable asset. That may be a cliché, but it’s a cliché for a reason. They’re certainly what we spend most of our money on, so it makes sense to check we’re getting quality goods from the outset.
When it comes to recruitment for technical positions, our philosophy is that if you hire bright people with good problem-solving skills and the right attitude, training them how to write code, and even manage projects, is a relative doddle.
Relative to other companies, we don’t set as much store in previous programming or management experience, because we’re playing the long game. Most people stay with us for long enough to gain that experience in-house, and in any case, we value technical aptitude and the ability to grasp the fundamentals of programming over particular language experience.
The majority of our applications come from the top UK universities, and around 30 in 100 get to the first interview stage. We then invite around 15 of those 30 to come to our offices for the final interview stage, after which roughly 3 of those 15 will be offered a job.
The questions in these interviews are nearly all “technical”, by which I mean they test the candidate’s ability to think through problems logically, understand simple coding languages and apply them resourcefully and rigorously. Many of our interviewees (especially the successful ones) have commented that they actually found the interviews to be great fun – which is a very good sign!
All of the questions are discussion-based: whilst there is often a “right” answer, it rarely gets you any points if you don’t show your working. Equally, the candidate is rarely expected to get the answer straight away – in fact it’s often more illuminating to see how comfortable a candidate is at working with the interviewer, and taking their ideas on board.
Read on for some more information about the interview process, or just go straight to our application form!
I found this technical interview website a really useful way of preparing for the phone interview – however our tests do differ in two important ways.
- There are no “gotchas” – these wouldn’t tell us very much about a candidate.
- They need to be complex enough to require further discussion.
A typical phone interview might consist of:
- A hypothetical “real-world” situation where there are a number of methods that could be used to find the (usually numerical) solution: the discussion usually centres around finding the most efficient method. See an example question here.
- A computer-based problem, again with a number of possible solutions and a most efficient algorithm: something like “describe an algorithm to find the longest palindrome in a string”.
The majority of the questions at second interview involve us giving the candidate a very simple programming language that can be used to control a machine. They are then asked to write down programs that will get the machine to perform certain actions.
I won’t give any examples here, but it’s worth noting that when someone recently sent round a link to a game called Manufactoria, it proved very popular with our developers (and productivity was reduced somewhat that week!) If you wanted some practice for our second interview, this wouldn’t be a bad place to start.