You are a developer with more than five years of experience,
OR you are about to hire this type of developer.
The most common practice while interviewing developers is to ask “tricky questions” first, because “we need to know the way you think.”
Question Type 1: Tricky
The most popular question of this kind is probably, “Why are manholes round?”, but they are actually more sophisticated.The main idea is to reveal how you behave in a stressful situation when there is an urgent need to solve a puzzle quickly. The aim is really good, but being a not-just-graduated developer, I generally find this kind of question confusing and offensive. They tell me some things about the interviewer, such as…
You think all the previous companies I was working for were stupid or did not require me to perform well under stress;
You just read the book How to Conduct Tech Interviews and want to practice on me;
Your company has no idea what they need or want from their developers and are maybe too lazy to figure it out, so you just follow the most common interview style.
Question Type 2: Write me a program!
This is the other most common interview tactic, and many very well-known authors even claim [link] that it is the only way to check a developer’s qualifications. Although I do respect these authors a lot, there might be more effective (and less time-consuming) methods to determine during the first interview if I can code or not. Once again, I’m not a recent graduate (although usually even they have something in their portfolios to show)! Ask me about my latest open source code or any other project I can show you.
So what…? No questions at all?
I’m not trying to say that you need to blindly hire anyone who has five or more years of experience as a “software developer” on their résumé. I’m merely trying to say not to evaluate students and mature developers in the same way. Although here I’d probably be arguing with Google, for whom it appears to make no difference if you have any previous experience or not. How can we make sense of that? I’m not sure, but we do seem to value organizations more (and question them less) when they’re harder to get into.
10 y = 10 * 1y ?
Sometimes, however, it is possible to find a developer with several years of experience that were actually for him just a repetition of one year. Therefore, the level of this applicant won’t be that different from one with a year of experience, even though he might claim to be a senior developer. How can you recognize that you are stuck on that level, or if you’re the interviewer, how can you spot it in a developer you are about to hire? There is not a single recipe for that. I would probably ask about the applicant’s recent projects and latest discoveries in his field. If a developer starts to talk about garbage collector details in a VM or uses some obscure, high-level terminology, most probably you are facing the senior. If he replies with something like, “I knew everything about five years ago—what latest discoveries there could be?”, you are probably facing a 10 * 1y type of developer.