NOTE: Apart from
(and even then it's questionable, I'm Scottish). These are machine translated in languages I don't read. If they're terrible please contact me.
You can see how this translation was done in this article.
Tuesday, 03 September 2024
//Less than a minute
One of the MANY LinkedIn aspects which bugs me is the 'how to interview developers' posts. There's a TON of them and they're in 3 camps:
Over the years I've interview dozens of times and hired hundreds of Developers for various companies from Microsoft to Dell to tiny startups. I've also oddly been a Research Psychologist specialising in psychometrics (the science of measuring mental capacities) and a Software Developer. So I've seen the process from every side.
Coding is often not a social activity. Sure 'soft skills' are vitally important but they're often orthogonal to the practice of writing code to solve user problems. So how do you interview someone for a job that's mostly about writing code?
Our profession is also rife with impostor syndrome. I've seen it in myself and in many others. It's a real thing. So how do you interview someone who's already feeling like a fraud?
Our profession is rife with the socially awkward (and yes like myself slightly autistic); an interview which is both stressful and requires social interaction while solving coding problems is a recipe for disaster. So how do you interview someone who's socially awkward?
First read their resume; don't even talk to them if their resume doesn't make it clear they have experience sufficient for the job you're hiring for. This is not only respectful of their time but also yours.
Second, setting up the interview (or interviews) should be as stress free as possible for the participants. This means:
BE ON TIME; nothing makes a person more anxious than waiting for an interview to start. If you're late you're already starting off on the wrong foot. If they're late give them a few minutes; they likely haven't been in back to back meetings so their setup might be screwy.
Do they seem like someone who would fit with the team in terms of temperament; are they a good fit for the team? This is important; you can have the best coder in the world but if they're a jerk they're not worth it.
One tip I've come up with (after years of Fibonacci sequence questions, reversing arrays, linked lists etc) is.
CODERS LIKE TALKING ABOUT CODE THEY KNOW
This means that if you're doing a technical assessment the person doing the interview needs to be able to talk about the code they're seeing. If it's a framework you don't know (like me interviewing Angular devs) don't worry too much.
So before the interview with enough notice (5 days is generally good) tell them that you'll be asking them to talk about a piece of code they've written. I don't GENERALLY ask for a GitHub link (many people at even senior levels might not have this; I've worked on many projects which are proprietary and can't be shared).
Make it clear you're not asking for a big project / some amazing innovative code. It's just code they can talk about. MANY people have these 'family' things, chances are they haven't been a 365 day streak contributor to a major Open Source project.
You're not hiring based on how much free time someone has
So why do I prefer this approach? Why do I think this is a better way to interview developers?
So there are exceptions here, super junior coders sometimes need a little coding exercise, but take it slow. Asking them to parse and refactor / fix some huge codebase is just cruel. For them you can ask about basic concepts like loops, conditionals etc (keep it focussed to the job you're hiring for). Patterns? Well I've seen a lot of people who can't name a pattern but can tell you when they've used it. So don't get too hung up on this.
Logic Puzzles? I've never seen the point of these. I've never seen a job where you need to move Mount Fuji. I've never seen a job where you need to know how many golf balls fit in a 747. I've never seen a job where you need to know how many piano tuners there are in New York.
After the interview make sure you follow up with the candidate. If they didn't get the job tell them why (you didn't show me enough oof your experience, you weren't clear when explaining your code etc). This is not only respectful but it also helps them improve for the next interview. If they did get the job make sure they know what to expect next.
Wow.
I just want to say how much I love this! Thanks for writing it!