(Rebecca Murphey recently published A Baseline for Front-End Developers which was well received and is the inspiration for this aside.)
It’s tough hiring top developers when the talent pool can seem so small and given that I work for an agency the available pool is even smaller. Those who have worked in the industry for some time are more likely to be scarred by agency burnout and it can feel as though the most skilled developers have taken advantage of their scarcity and found great positions already. When attempting to hire I’m often left looking through the details of apathetic web journeymen and recent graduates I don’t have enough time to mentor.
Recruitment is made harder because CVs have limited value; skill cannot be deduced from big name clients (household brands push out heaps of expensive garbage) and portfolio websites–which are on the wane–can be a misrepresentation. It’s not fair to dismiss an applicant because they lack a GitHub account either.
To help avoid frustrating already fraught interviewers, here is my baseline for front-end interviewees:
I want to see a candidate get animated describing a beautiful site they know, an inspiring talk they attended, someone they admired working with, who they always take notice of on Twitter, projects they follow or web experiments they don’t understand. A candidate must be able to show they have an interest and understanding of their industry; what else are we going to talk about? Maintaining a keen interest in interaction design and technology at all times is not an indicator of ability but it is within reason to expect candidates to be savvy enough to prepare for a question that will certainly be asked.
It’s disappointing when a candidate states “HTML5” as a feature they are looking forward to. What about it? HTML5 officially covers a range of technologies so being knowledgeable about specific features will be an advantage. I don’t wish to downplay the significance of the improvements to HTML document outlines and the pain alleviated by additions to the CSS3 backgrounds and borders module but it’s not very interesting to discuss features that have been in widespread usage for some time and considered a standard tool. Being able to clearly convey your ideas for using the latest hotness will be far more engaging than discussing the drawbacks of sliding door sprites. An enthusiasm for evolving web technologies is vital.
A candidate must be able to choose reliable resources when in need. When asked where to find programming help “Google” is not an answer, only the first step. The competency to distinguish the right Stack Overflow answer or pluck out the most up-to-date documentation is a required skill. There are many highly respected blogs and books to read so it is expected that a candidate can recall their favoured authorities.
Attacking programming issues or new features ignorantly creates difficulty for the team later. A basic understanding of how CSS, HTML and JS are parsed and processed will make avoiding and solving problems easier (even unearthing the logic behind legacy Internet Explorer layout). In general the repetitive front-end sticking points of uniform cross-browser style and DOM manipulation can be fixed methodically rather than with brute-force. Front-enders will naturally amass trivia over time but recognising why a hack works is more important than blindly copying and pasting. The key to bug fixing code is working from the bottom-up, not top-down.
I’ve interviewed plenty of devs who say the right things but have been unable to solve or even define basic programming problems when presented with them. Candidates should always expect their coding and problem solving skills to be tested when entering the interview room.
Hiring is a subjective process with many more factors not discussed by this article but front-end development–like other programming disciplines–can be an objectively testable skill (so long as you ask the right questions). In my experience conducting a simple test is the most useful way of determining if a candidate will fit into the team. We want interviewees to show passion and display a broad knowledge of technology but it is not until we see how they problem solve and test if their reasoning is sensible that we can make an informed decision.