I regularly ask interviewees at all levels, after they've talked me through some code they've written, how they would do it differently (emphasising that I always wish I'd done things differently). It's one of the questions I've found to be consistently helpful in finding out how a person thinks about making software
1. it's a good indication about how they think about improving existing code
2. it can show how they learn from what they do
3. it give them license to talk openly about mistakes (much better than a rote 'tell me about something that hasn't gone well' type question)