Here’s a potential idea to improve the technical interviews that you run: if you use algorithm questions in interviews, ask candidates to ask you an algorithm question as well.
I think it could be beneficial to tell candidates that they should prepare an algorithm question to pose to their interviewer and work through together in the same way. This could have a similar vibe to the general questions at the end of the interview, when we ask candidates if they have any questions for us.
As an interviewer, overall I wouldn’t object to this, and I think as a concept it could help everyone to gain some insight into the whole process and improve it a little bit.
This is only a semi-serious suggestion. This post isn’t a complaint about the existence of algorithm questions, but an attempt to be more thoughtful about their use from the perspective of interviewers and hiring managers. I’m more interested in the thoughts and responses it generates from interviewers, and what the idea demonstrates about how the industry runs technical interviews.
To try and hedge this even more, this is not intended to be a strong criticism of algorithm questions – I’ve run several hundred such interviews as an interviewer, and have mixed feelings (rather than outright negative feelings) about them as both an interviewer and as a candidate. My point here is really to try and examine some of the attitudes in the industry and produce a little bit of perspective.
If you are an interviewer who runs technical interviews using algorithm questions, you might not like the idea of the candidate also asking you an algorithm question at the end of the interview. Maybe this post will convince you that it’s at least an interesting thought experiment.
Every justification for asking the candidate an algorithm question, and every objection to them asking their interviewer an algorithm question in return, seems to apply both ways. Again, this isn’t a criticism of algorithm questions, but an observation that there seems to be some useful insight if we consider the idea of candidates also asking the interviewer an algorithm question. We tend to encourage candidates to ask their interviewer almost any other question that might be relevant to the role.
From the hiring manager’s perspective, having the candidate go through the process of trying to select an appropriate algorithm question and plan out the discussion seems like a good exercise. It could provide some extra insight into what it would be like to work with them.
Getting a bit more rhetorical, surely the interviewer’s ability to work through a previously unseen algorithm problem isn’t that relevant to whether the candidate should want to work at this company? But the candidate might want to ensure they’re working with high-performing, like-minded people. If the team doesn’t want to work with someone who can’t work though an algorithm problem collaboratively, then why should the candidate want to work with a team who can’t demonstrate the same?
The candidate might explain that they’re not expecting the interviewer to churn out an optimal solution on the spot, and instead to have a conversation and work through the problem together. This sounds very good, and is commonly how interviewers describe their interviewing technique. Again it seems like a good reason to have candidates do the same thing with us in reverse.
How can we be sure the candidate will be reasonable and fair in their choice of algorithm question, and in their assessment of the interviewer’s solution for it? We can’t, and we also can’t be sure that interviewers are reasonable and fair when doing this.
The candidate is unlikely to choose an algorithm question that they themselves genuinely solved from scratch in the given time without having seen it before. They’ll probably choose a pet question, something they watched a tutorial on, or something tricky they once had to deal with at work and that took hours or days to figure out. They might choose something culturally specific, or something related to their obscure hobby that they think the interviewer should also be familiar with if they are a true geek. The interviewer won’t feel able to point out how unreasonable any of this is if they don’t want to damage their chances of the candidate accepting them as a potential colleague.
Will the candidate give any feedback to the interviewer about their solution? They might be patronising when giving the feedback, and the interviewer will be obliged to accept it politely. The candidate might never give any feedback at all, and ghost the interviewer and their company afterwards. The interviewer will probably dwell on this for some time, and have to quell their resentment at the unfair treatment. This situation is common for candidates, so I’m not sure that interviewers can object on these grounds.
If candidates could ask their interviewers algorithm questions, it would be scary for the interviewer, and make regular interviewing more stressful than it already is. Candidates already have to deal with this fear and stress, and the industry seems to think it is worthwhile. Maybe we could all be kinder to each other if we ran it both ways.
The odds that the candidate asks a question that the interviewer isn’t able to finish in time seem to be quite high, and that situation would be quite embarrassing. We wouldn’t want the interviewer to be made to feel foolish. But then why do we think this is OK when we do it to candidates?
Could we ask the candidate to give us a heads-up about roughly what kind of question they’re planning to ask? That sounds like a good idea and one that we should probably apply more generally.
It would require some humility from the interviewer. The interviewer has run through their algorithm question dozens or hundreds of times with numerous candidates and is familiar with all sorts of details and edge cases. When the candidate springs an unknown question on the interviewer, suddenly the interviewer would find themselves back at square one, having to think everything through from scratch, and possibily get flustered. Meanwhile (in the universe where this is standard practice), the candidate has probably asked this question to multiple other interviewers and is aware of all sorts of details and edge cases. Why is it a good interview technique in one direction but not in the other?
I hope that this idea can generate a little more empathy and thoughtfulness from interviewers and hiring managers in the industry. We all know that technical interviewing is difficult for the interviewer, and that algorithm questions are problematic. There’s no easy solution, but I think everyone would benefit if people on the hiring side could remember to be humble and acknowledge the flaws in the process that they have designed and are asking other people to go through.