It might sound funny but a nice kind of question to ask is unrelated to programming at all, but like u said, on real life stuff or acutally to check how the guy thinks in general.
I remmember someone telling me that during an interview he was asked to take a thermometer and check the door to the entrace of the room heat with it, most people will go wrong and acutally try to check it, while the real answer is that the door heat is excactly like room's heat (25 degrees) and there's no need for checking at all
Types of methodologies they have used and to describe how they have worked within them. By asking this you will pretty quickly see if they have any formal knowledge in development methodologies which can be a gauge of experience and aptitude.
I asked their understanding of patterns and how they apply to the version of language being used.
What are the areas that need to be addressed to properly secure a web based application. I don't provide any clues here, so I don't refer to Sessions, Cookies, User Accounts, Database, Escaping, File System, Server Settings, and Hardware Security. I get them to best describe what is needed.
Are they proficient using a versioning system; specifically (in my case) GIT?
Who do they see as experts in their field. If they don't mention key people that match the ones we follow then we might see this as a warning flag (or also may get educated )
I get them to describe how they work with a team. Specifically
how do you best work with a project manager, describe how this works.
How do you manage Account Manager or Customer feature creep.
How to you describe schedule oriented risks to the Project and Account Managers, and the Customer? Describe how you get involved in upstream risks?
Describe your working methodology with Designers. How do you consult them on what is best suited for code rather than design.
Please bring samples of your code and be prepared to walk one of our developers through it. Be ready to describe choices, and challenges you faced. Make sure you choose code that has these elements involved.
What environment are you most comfortable coding within? Do you have trouble focusing in somewhat noisy environments; if so, what do you do to be able to focus?
In your past jobs how would you characterize your relationships with your colleges. Would you say you were well liked, had many positive verbal exchanges, were respected but not necessarily understood, were considered quiet, or something else? Please be aware that I will be asking your college this same question.
Do you like to gamble if so what kind of gambling do you like to do? Their answers can help indicate risk taking preferences.
Do you get a good amount of sleep and do you eat a well balanced diet? Can give you a general idea of how well a developer will focus and make decisions.
Are you in a relationship or single and do you have any children? People in relationships tend to have more responsibility and less 'inward' focus however they can also be pulled in more directions, so you need to filter what they give you and ask questions that can satisfy you.
List your top 3 skills and tell me why. List your worst skills and why. If this was not part of the best or worst, what new skills have you recently begun developing.
What things are you passionate about?
Tell me what you know about our company?
Tell me why you are the best fit for this job out of the next 15 or so interviews I have for this same position?
These are the ones I could think of off the top of my head.
However, I see most of your questions are non-technical and related to HR only.
I am looking for some technical questions for example, if you were designing a login system how would you save the user's password.
That's actually a really good question.
Show them an ASP script - then ask them to change it and see how they do. Or whatever language they say they have no experience with.
Although it wasn't presented to me during my current job's interview (He only asked me PHP question), one of the early things I had to do when I got hired was actually work in ASP for a client and do some modifications.
My supervisor noted that was of the things he liked about me - that I could go in and work in an unfamiliar system. Actually gave me a huge raise after my 3 month trial period ended when I was officially hired - that's when he mentioned it to me.
Hopefully that gives you some food for thought on good questions to ask, outside the box.
The code that I ask them to bring in and to have them explain it to our developers and I get to ask them about how the solved challenges and illustrate their code solutions; my developers will ask them demonstrate code prowess.
Generally I avoid and ask my developers to be careful to not too much 'put the developer on the spot' as not all good even great developers are comfortable not in their IDE setup, programming resources etc., so I get the developers to discuss thing like preferred or experience in different layer abstraction like MVC, SLA, ... experience working with other developers and how the potential hire describes things the do well in teams and things that have potentially frustrated them in previous team environments.
We may ask them to:
demonstrate CRC cards
read UML models
describe the best 'pattern(s)' fit for a number of common code situations
understanding of Unit Testing and testing frameworks
talk about their working knowledge in frameworks and/or libraries
describe the value of refactoring?
to sketch a sequence diagram for a number of simple classes
use of GIT from the command line: add, status, diff, commit, reset, rv, mv, push and remote
describe the practices of BDD (Behaviour Drive Development)
I have a fairly in-depth discussion with my developers to ensure that the hire is a good fit, what type of 'feeling' did they get, did they spot any 'Warning Signs'.
Based on these processes we use the three month 'grace' period to ensure that they adapt and act the way they described in their interview. We also suss out team dynamics to ensure that they are good and that this new person isn't throwing a monkey wrench into the mix.
Code is just one of many different things a developer needs to do. Too often that is what most employers focus on, so you are lucky if you get someone like wonshikee. By understanding how a developer has invested in their craft you can understand the value they bring to your team.