Recently I’ve had the chance to help conduct a round of interviews to grow our expanding tech team. Technical interviews should be considerably more straightforward than interviews in other sectors, as it’s a simple matter of assessing the candidate’s level of knowledge empirically, and then determining whether they’d be a good team fit. But somehow it’s just not that simple.
I’ve never been through what I’d call a very technical interview. Sure, I’ve talked tech, but I haven’t felt like I’m undergoing my viva voce. So I’m not necessarily talking from a position of experience. But I think a good interview could definitely go along these lines.
Getting to know you
I’m nervous when meeting new people. I’m also nervous when meeting new people, and asking them for thousands of pounds in exchange for my labour. So I’ll understand, and even expect, you to be nervous. So in the initial stages of an interview, it’s good just to talk about general, background things. This is the time for small talk – how did the candidate get to you? If they’re new to the area, do they have any questions or observations about it? How long have they been in their current/last position, and what sort of things did they enjoy there? Do they have any favourite bloggers? Do they have any personal projects they work on out of hours? Hopefully a 5-10 minute chat should settle them down and clear their mind a little. And do, of course, offer them a drink – the talking is just getting started!
What knowledge does the candidate have?
This is where we need to get a clearer idea of who the candidate is, and what their strengths are. Their CV is likely to be an optimistic take on things, to put it mildly. Unfortunately, CVs go through bullet point filters at the recruiter level, HR level, and so on. If the requisite bullet points aren’t there, the candidate won’t get through to see the person they think they can impress. So be prepared for some skill inflation, and be ready to call them on it to find out their real level.
There are already some good articles describing some good .NET interview questions (though I hope to one day pen my own) so I won’t revisit that now. But you should try and go into some detail to work out what aspects of the candidate’s skills are strong and correlate with the role being recruited for. However, it’s easy to overlook the fact that the candidate may have some skills that, although not directly applicable to the role, may well demonstrate a more interesting character. So try and discover as much about their competencies as possible.
The challenge stage
I think it’s particularly important that the candidate demonstrate their stated familiarity with the products they’ll be working with. In our case, that’s first and foremost Visual Studio. Like it or loathe it, if you’re a .NET dev, you’ll probably spend a lot of your time working in this environment. So I’ll expect that you’re super-familiar with its usage. In the recent round of interviews we did, we asked people to put together a very small “todo list” webapp to demonstrate their ability to use the tools and the stack (ASP.NET, webforms or MVC). The spec was given to the candidate as a screenshot (on paper!), and we gave them a little time to put it together in front of us.
It’s hard to underestimate the value of watching someone code in front of you. You can immediately form an opinion on them in subtle ways that a verbal interview won’t ever reveal. For example, if someone cannot touch type, I would say that was a concerning trait. If they spend a lot of time poking around in intellisense looking for simple elements of the framework (e.g. the .Length property of an array), then you start to worry about their competence. And if they’re spend a lot of time hitting GUI elements in Visual Studio without ever using keyboard shortcuts, I’ll worry that they are slower developers.
Sure, demonstrating familiarity on strange equipment in an interview environment is tough – horribly tough – and I wouldn’t relish the challenge myself. Some people may normally remap their shortcuts; use ReSharper, or alter their colour scheme - crutches without which they may feel inhibited. But nevertheless, it’s an egalitarian method of assessing someone that no amount of talking can match, and I think it deserves a high place in a technical interview.
The freestyle stage
Here’s where it gets interesting. It’s well know that some larger tech companies try to only recruit superstars by asking them bizarre interview questions. How would you weigh a Boeing 747, without using a scale? How many golf balls would fit in your house? These sort of questions are an amusing novelty, and allow the interviewer to have a smug feeling of superiority as the candidate sweats out an answer. But I don’t feel that they’re pragmatic, especially when they can be simply replaced with more valuable and interesting questions.
Instead, ask open questions that the candidate can work with. Here are some suggestions:
- You’re handed over a legacy web site to maintain. Users are complaining that it’s running slowly, and pages take ages to get served. Where and how do you start troubleshooting? Which tools would you use to debug the database/code/front end scripts? What are the most common causes of slowdown and how would you identify them?
- How would you design an account authentication web service to handle logins for multiple websites? What would you change in your design, if you knew it needed to handle 3 million logins a day? What level of auditing would you provide for failed/successful logins?
- Show me a website you like, and describe something you can see that needs a technical overhaul. How would you do it? How do you think they’re doing it at the moment?
These type of questions should allow you to get a good idea of how the candidate thinks, without humiliating them and discussing abstract situations. They’re also more fun!
The wrap
Hopefully at this stage you’ll have formed an opinion about the candidate. But there’s a good chance that they may not have formed an opinion about you, or the company. So it’s now your turn to answer the candidate’s questions, and you should invite them to ask.
However, this is not an excuse just so sit back and reel off corporate information. The questions the candidate ask may well reveal more about them. If they simply ask rote questions (perhaps about salary, benefits, working hours, etc) then that’s rather dull. But perhaps they want to know about the products you’re working on, and the team structure? Maybe they want to know what the team culture is like? These are indicative of a more interesting character and you should pay attention!
And that’s all folks
Hopefully you know all you need to know, now. You’ve assessed them technically, practically, and culturally – you should be fully equipped to make a decision. Good luck!
Recent Comments