I am a senior software engineer and a lead developer in a company with 250 employees. The company is hiring mid to senior level developers. I am doing technical interviews, even though I have been here for only 2 months. I don't have much prior experience doing interviews as my previous company was much smaller and hiring new backend engineers was very rare.
A part of the interviews is live coding, usually through Skype. The candidates can use their own IDE or use a collaborative real-time editor, such as CollabEdit. They have 20 to 30 minutes to complete the task. I do not care about the syntax, the point of the task is to prove the ability to find the solution and implement it.
A lot of promising candidates (having good experience, knowledge and ability to evaluate why a particular framework/technology is used) fail on what I think are easy coding tasks (for example, finding the second biggest number in an array). I understand that they are under pressure, but I try to guide them and make them feel comfortable. I usually also provide them with code skeletons to get them started.
I have consulted with the Technical Lead. He says if the candidate is unable to do this, we should not continue, as we are looking for programmers and we expect them to write code.
Since so many promising candidates are failing these coding tasks, I am wondering if they are really as "easy" as I had assumed. How can I determine if a coding task asked in the interview is too hard?
UPDATE 8.3.2024
After 7 years after doing at least hundred of technical interviews:
If even junior programmer is unable to find second largest number in an array (in linear complexity = without sorting, but the solution can iterate through array multiple times), just dont hire them. If they cannot solve this (even with some help, you can "unstuck" them and help them think and discuss the solution) - they will not be able to perform well.