This is 2019, soon to become 2020 God willing, and the tech stack of our modern age has become huge. No normal person comprehends or memorizes every single aspect of the entire stack they work with, and they don't have to, nowadays we have search engines and we utilize personal notes.
If you, the reader, is a person who interviews candidates for software development, or just tech in general, you need to understand that if you're mainly focusing on the technology rather than people, you're doing it wrong!
You shouldn't be asking questions about search algorithms or framework abstractions. Why would you think that these questions mattert? Do you think that if a person knows the answers to such questions that he or she is somehow more valuable to your company? What you need to figure out is whether you're dealing with a condescending and obnoxious person. I say that because almost anyone with a genuine interest in technology, especially someone how is self taught, can get up to speed pretty quickly, especially if your company has good documentation (and of course you do have good documentation right?) and helpful colleagues.
There is always trust involved and there is always a risk when you have to hire someone, but no lengthy code quiz or white board quest is going to guarantee that you have found a good candidate. Perhaps this person has memorized the answers to your questions because someone at Glassdoor has exposed your entire interview process.
I suspect that the bad trend is becoming a standard in the industry because it is reported that this is how Google does its interviews. But just because Google does something, doesn't automatically make it good. Google is becoming less and less about providing good search results and more about making optimal profit by stalking users on the Internet. They are definitely not worth imitating.
You need to treat your developers with respect and kindness. If you think software developers are expendable and easily replaced you are sorely mistaken. Whatever future employees that accept such behavior, perhaps out of dire need, and pass your tests, will sense the attitude at your company, and nobody will like to work for you. So how do you think the quality of the work is going to be by those people who stick around?
Of course a candidate has to know the basics, but even a good programmer might not be working with programming all the time, some do a lot of sysadmin work too. The person can perhaps not remember how he or she normally solves a particular problem. This is not a problem, and this is not important.
The only real problem you might be facing is if you're dealing with a fraudster, someone who is lying and who wouldn't know the difference between a variable and a function, but these guys are usually easy to catch, you hardly need a code test to figure that one out.
So, unless you're from CERN or NASA and you actually do need an "algorithmic genius", I suggest you reconsider your interviewing process.
If you have any comments or corrections please feel free to email them to me. Also, if you found this content useful consider supporting me on Patreon