• Occasionally I participate in technical interviews, if the candidate is applying for a database related position. I don't ask pop questions like "What is DDL?" or "What is a clustered index?", because any intelligent person, regardless of their background, can find the exact answers to these quetions on the web and memorize them. They also don't reveal the depth of a person's knowledge and experience. For example, asking someone what is the capital city of South Korea doesn't reveal how competent they would be in the role of international finance. Honestly, I could teach my eight year old daughter in a single weekend how to pass this type of interview. She has a good memory and can be very charming.

    Instead, I prefer to ask "Tell me..", "Describe..", and "Why.." type questions and expect an answer that is detailed and has context with their past experience, as if they were being interviewed for a talk show. Often times the answer they provide will lead to a five or ten minute discussion before I move on to the next question. This can be very revealing about a candidate's real experience.

    Below are a few examples that I expect any mid-level database developer or DBA to be conversent with. I have a list of about 100, but will typically ask about 5 - 10 depending on the role they're applying for and the experience they have provided on their resume. For example, if they list "data modeling" on their resume, then I expect them to tell me about a data model they developed. I believe these are all fair questions, because they are exactly the type of question that they would be asked during their daily routine assuming they were actually hired. In my department, we don't hire at entry level, so this type of interview probably wouldn't fit that purpose.

    "Let's assume that a stored procedure call which typically takes 10 seconds to complete has occasionally been taking several times longer. Based on your experience, what are some common causes for this, and also how would you diagnose it?"

    "Tell me about some scenarios where a clustered index can potentially degrade performance."

    "Describe a data model that you have designed in the past."

    "Explain the relationship between logins, users, roles, and permissions."

    "Assume there is a table called Customer, and a column called Customer_ID should contain unique values but doesn't. Describe how you would construct a SQL query to return only those IDs that are duplicated."

    "Locking, Blocking, and Deadlocking: Tell how these three things are related and how they are different."

    "Do not seek to follow in the footsteps of the wise. Instead, seek what they sought." - Matsuo Basho