How to interview for a Front-End Developer (and what any decent applicant should know)
A friend of mine (who's just started his own digital agency) got in touch the other day to ask the question:
"We're interviewing for a front-end developer this week and [not being a front-ender] I was wondering if you could give me some tips on what topics we should cover?"
Not a problem at all, I said. Having recently been interviewing for similar positions here at Clock I knew what I would look for so it was no trouble in the slightest.
Afterwards it became apparent that there's not actually that much out there to help in these situations, so he suggested I write something for other people in the same situation. When I got a spare few minutes I did just that...
First and foremost you want to look for someone who is enthusiastic about what they do. Of course their knowledge is important but you get a real sense of how good and motivated someone is by the manner in which they talk about their profession. It's important that they'll fit into your team, and (depending on the level you are looking for) bring extra knowledge and energy to the workplace.
Next up it's always good to see how up-to-date their knowledge is of the front-end world. I think we can all agree the industry moves forward at a considerable rate, so it's always good to get their opinion on the state of things like HTML5, CSS3 and any latest additions there might be to the working specification drafts. Also, it's no good asking questions like 'are you familiar with HTML5?' - that's a question anyone can say yes to. You need to delve a bit deeper, ask questions that require them to show a bit of knowledge, like 'what's your favourite aspect of HTML5?' - that's a question they actually have to answer.
It's always great if they can show you some work and describe what they did on it. Make sure you keep the links so you can have a look back at the code quality and structure later on. If they can't demonstrate any latest techniques such as responsive / adaptive design, then cover topics like Media Queries and how to use them, how they go about establishing suitable break-points for different screen sizes, and try and get a sense of their general opinion on cross-platform production. What can they tell you about different mobile frameworks (jQuery Mobile, JQ Touch, Kendo UI, Spine Mobile to name a few) as well? If familiar with them, what do they think are the benefits and pitfalls within the products? This level of mobile development may not be directly applicable to the position but it's always good to get a specific idea of their knowledge and passion - and who knows, they might even bring something new and unexpected to your team.
I personally enjoy it when someone starts talking about progressive enhancement as it then helps the conversation flow nicely into subjects like the browser market, to what extent they embellish products with CSS3, what browser tools they like to use, which is their browser of choice, and why.
Discussion that revolves around browsers means you can easily talk about HTML5 compatibility. Similar to when talking about IE6 support, how would the applicant get older browsers to cater for HTML5? There are a couple of different options out there - Paul Irish's HTML5 Boilerplate being a great example of a thorough, well-produced template for this kind of development. One thing I particularly like about the Boilerplate is the fantastic description of what's in there, and why. Anyone who talks me through the inner-workings of something like this, stands a great chance of getting the job.
The Boilerplate's developed on GitHub, which brings us to version control. Social coding and code control is another topic that is great for a potential employee to talk about - any knowledge about subversion or Git means that they know the importance of having continual, stable development stages that you can roll back to should it be needed. The benefits of branching a project and when it's appropriate, merging and resolving conflicts - the more they can talk about this subject matter, the better it is all round.
In the last few months we've been developing using Node.js, and one of its major benefits for front-end production is the utilisation of Jade and Stylus. Both are fantastic packages for writing efficient, well-organised and valid markup, which helps maintain high coding standards. I'm not going to go into everything they can do, but similar packages are available - and again it's great to compare the benefits of one over another - if they know more about Less or Sass, for example.
Now I'm not saying I would expect more junior applicants to know everything I've mentioned here, but I would want to see a passion for the industry, combined with sound knowledge of some of the more basic topics covered here. Obviously the higher up the position, the more I'd want demonstrated.
I hope that you've found the article helpful, and if there's anything you think I've missed then feel free to add a comments below.
I'd be very interested to hear what you have to say - good luck recruiting!