When interviewing, I usually ask the candidate's to choose one project in which they have worked on and to present it to me in a whiteboard.
From there, I ask why it was designed in that way, what would be the alternatives considered (if any at all), ask about test and delivery strategy, ask about implementation details and propose different scenarios exploring fault tolerance, scalability, high availability and other -ilities.
One option I am planning to try is to perform a code review together. Write some code or get some open source code, explain enough about the purpose of the application and ask the candidate to share their impressions about it. Of course, try to choose a piece of code that has potential for refactoring, both in code and overall design of the application.
From the type of comments they do, you can get a glimpse of their experience in the field:
- are they only worried about formatting of code?
- do they care about readability of the code?
- are they looking for best practices?
- are they asking questions about the overall design of the application?
- are they worried with maintainability?
- can they offer better options of implementation?
- is the code well tested? could they offer new testing strategies?
- are they flexible while discussing points of view? or are they dogmatic?
after the code review: can they actually implement some of the changes they proposed, or at least show in an IDE how they would do it?