I recently had the privilege of performing the technical interviews to evaluate potential new hires into Oracles support organization. As my approach is different from many interview processes I thought I would share it with you. It is basically a three step process.
We ask them technical questions about what they said they have done on their resume. Very common to get responses like, oh I didn't do very much with that. In that case we mark them down, if you you put it on the resume then we will ask you detailed questions, for example if they have "worked" with enterprise Java then we ask about the meaning of EJB transaction settings ("what is the different between Required and Mandatory") and get them to explain the JSP->Servlet lifecycle ("a jsp is deployed as a mixture of HTML and Java source, how does it become executable code"). This is really just an honesty and level setting phase where we see if what they said on the resume is accurate and they understand what they said they understand.
After testing if they know what thy said they know we ask them questions a little outside their area of knowledge to see if they can extrapolate from what they know. We encourage them to guess an answer, we want to see if they understand principles and can come up with a reasonable response, the response doesn't have to be correct, we are looking for a plausible, but possibly wrong, solution. If they won't guess we mark them down, if they guess wrong but have good reasons we mark them the same as if they got it right. This puts them in to the typical support area of trying to solve a customers problem where you have to make informed guesses and be able to justify to the customer why you want them to do this.
Then we ask them to troubleshoot a specific problem. For example "yesterday you deployed a new application and it worked fine for users, today they are reporting they get errors saying database unavailable". We want to see if they can take a big picture and narrow down the problem area in a sensible way. We are really looking for them to grasp the big picture of which components are being used and then to describe how they would isolate the problem (test if database is running, test network connectivity, check can log in to db from app server etc.). Again this is directly relevant to the support job and we want them to demonstrate that they know how to troubleshoot - just saying I would look in the logs will get them marked down.
Sadly it seems a lot of people are better resume writers than engineers, but this process tends to weed out those individuals. We were able to hire some excellent engineers based on the above process and shortly after joining Oracle they were making great contributions to the company so it seemed to work. Of course a technical interview is only part of the process. It is also important that engineers fit into the culture of the company. So an engineer might pass the technical interview but still fail because the interviewer felt they wouldn’t fit into the Oracle culture. So the above is a process to help in evaluating technical skills but there is more to hiring than just that.