If it's for a more advanced role, I give them a coding challenge after a non-technical, on camera interview. Then if it's worthy of a technical follow up interview, they must build, execute, and walk me through the code live on camera. I also ask them to make slight alterations or extensions live.
This may sound like a lot but the total time invested by a candidate, including the interviews themselves, should be no more than 4 hours. The challenges are experience and role appropriate and I'm not asking them to build an MVP or anything close. They're also allowed to search and use resources in the live interviews, as they would on the job. I'm not interested in testing your memory-recall abilities, I'm interested in seeing how you approach problem solving using CS.
Lastly, record all your interviews.