Interviewing as a DBA
How you should interview for a DBA position?
Honestly I don't have all the answers, but I do have a few things I have done in the past as well as recommendations that I have given others. Recently with some friends looking for new jobs, I wrote some recommendations and gave advice, so here are a few things that I think are important to share with you.
This isn't everything you need to know. I'm assuming this is a job interview for a position that you want, or at least think you want and you've done some research there. I do have an article on Finding Your Dream Job out there.
First some background on how I view a job interview. I think this is important because you might be in a very different place in your life and have to approach things differently. Keep in mind my advice works well for me and has gotten me many more job offers than I have accepted over the last ten years, but that doesn't mean it works for you. So let me take a minute to let you know where I stand in life.
My wife works. That's an important point because it means there is much less pressure for me to "take" a job immediately, or take any job. We cannot live off her salary without changing our lives, but it does take pressure off. If you are the sole wage earner then your situation is different and you might need to approach an interview differently. This also means I have less concerns about a company's stability than some of my friends.
Another important point is that I value my time away from work, so I ask questions that relate to the workload and on-call responsibilities for that reason. When I was younger, I was less concerned about this, so I would assume I might work doctor's hours (100 hours a week) and anything less was a bonus. It was one way to learn and get ahead, so I didn't mind it.
I have a lot of experience with SQL Server and most of the time the job is the same for me. I am less concerned about working on a VLDB or dealing with the latest technology, so I tend to worry more about the intangibles than specific "about the job" questions.
The last thing is that I tend to go into jobs at this stage of my life looking for a long term fit. I want a job to last me forever, so I really am open and honest to try and ensure I make a good decision. If you are looking for a shorter term engagement, you may or may not disclose that. A one year target might end your interview immediately, but I have told interviewers that I was looking for a 3-5 year job and I'd evaluate it as I went along.
I can't really stress preparing for an interview enough. Lots of people get nervous in an interview, and to some extent that is natural. Preparation can help here in getting you used to people asking you questions, even if it's your spouse or friend, but also give you confidence. Remember that you are interviewing the company as well as they you.
The other thing that preparation can give you is an advantage over other candidates. I learned this in my first interview for an internship in college. I researched every company that I had an interview with, or even wrote a cover letter for. Even to the point of trying to learn something about the interviewer if I knew their name. Before the Internet, this was a library and ask friends search, but now you can Google a name and see what comes up. Just knowing a few things about the company can help to answer questions, or even give you ideas for questions.
You don't want to constantly "drop hints" to show you know something about the company, but if the opportunity comes up, show that you have done some research one or two times. Ask if you will get to work on some technology or project you read about, or show that you understand their business. That is very important to success. After all, for most companies, running the database isn't the business. Understanding what the business actually is helps you to proactively help the business run smoother or even prioritize issues.
The last part of preparation is spend some time listing things that you want to know about the company or the job. Really think about what is important to you and then have some questions you want to ask. A few that I have used in the past:
- How often would I be on call?
- Is there travel required to other sites or customers?
- Can I telecommute for personal reasons (kids sick, snow, etc)?
- How often can we take servers down for maintenance?
Most of these questions are geared to feeling out the job. For example, the last one tells me something about the stress of this environment. I have had people say we can never take the servers down, or that it's once a year. This is a more stressful job, both in ensuring that things run well and trying to make them better. Regular downtime makes a DBA's life easier because you will have some flexibility in scheduling. I used to work at one company where we could go down once a quarter: Sat night from midnight to 5 am. That wasn't as much fun as another job where we pretty much ran 7am-7pm each day and nights off. Maintenance was done on my schedule, not the other way around.
The best thing in an interview is to relax. Take the approach that you need to interview the company and be prepared to ask them questions in between their questions. This will help keep things flowing and make it more of a conversation than a quiz.
Answer the questions promptly. It is acceptable to pause briefly to think, but if it will be more than a couple seconds, note that. "Let me think about that" is something to give you a chance to collect your thoughts. I often will walk through my thought process out loud, letting the person know how I am viewing things and the approach I will take.
Answer honestly and if you don't know, then tell them immediately you've never solved that issue, worked with that problem, whatever the reason, but trying to fake your way through a questions, especially a technical one, usually is worse. You can always learn, they can train you, whatever, but that dishonesty cannot be repaired easily.
If you do not know something, it is not necessarily a mark against you. I have had interviewers ask me questions they did not know the answer to and I've done it myself to someone. It's a technique to see if you can get some free consulting or even to ascertain if the candidate is more qualified than you. So be honest and answer the questions. I once interviewed to go to the South Pole and the first question was the meaning of the acronym ACID.
And I missed it. I knew 3 of the 4 and stammered for a few seconds before just admitting I couldn't remember. I could explain the idea behind it, but didn't know the term. Isolation was the one I missed. Later in the interview they asked me a replication question they didn't understand. Once I answered it, they admitted they had been stumped and were glad I answered it.
It's possible you will find yourself in a situation where you are smarted than the interviewer. Especially for a DBA where often a manager or system administrator interviews them not knowing much about SQL Server. Be deferential and do not embarrass anyone. Answer questions tactfully and if the interviewer "mis-asks" a question because they do not know SQL Server that well, be polite about pointing out a misunderstanding or mistake. Or clarify the question and see if they were asking what you interpreted. Showing off or bluntly telling someone they made a mistake is not a good way to handle things in an interview or even in a job. Mind your manners at all times.
Another thing to remember is to let questions go. If the question is asked and answered, or partially answered and the interviewer moves on, then move on as well. Don't go back to the question and try to get it "more right". If you are familiar with Seinfeld, the TV sitcom, there were numerous situations where George or Jerry couldn't let something go and kept going back to it. Even if you are bothered by it, move along in the interview. You can discuss it another time or check on it later.
Often you will get asked about bad experiences: why you were fired/laid off, the classic "tell me about a bad personal interaction", describe a problem, etc. In addition to answering honestly about the situation, do not speak poorly about others, insult them behind their backs, or anything along those lines. It's unprofessional as well as a poor reflection on your character. The interviewer will wonder what you may say about him or her one day. A couple quick stories on this.
I once interviewed someone that told me his old boss had really annoyed him with overworking him. So he wrote a C++ program that connected to a modem (this was back in '94/'95) and dialed his boss' pager every 10 minutes for a whole day. Needless to say I was less than interested in hiring him. Practical jokes or tricks plyed in "getting revenge" are usually a bad idea in the first place and a mistake you learn from, not mention in an interview.
Another time I interviewed a candidate that I thought would be a great hire. Smart, good resume, etc. that had been let go from another company before his last job. In other words, he'd been let go, found another job and came to me awhile later looking for a third. In asking about some bad experiences at the first company, he talked poorly about some colleagues there. Their lack of skills, both technical and social. I would have had some doubts about his character fitting in with our team anyway, but unknown to him, one of his former co-workers from that job was already working for me. And that co-worker was a valued employee!
You never know who you might run into at a new company, so keep your opinions about others' technical skills or character to yourself unless you are willing to say them to the person. When I was looking to leave Peoplesoft, I made no secret of my displeasure with management at some interviews. But I was polite and never denigrated anyone's skills or character. I explained the specific problems I had with policies and why I was leaving. Peoplesoft was not "wrong" in running their company that way, but it was not something I wanted to be a part of, so I expressed that. Both to my Peoplesoft director and VP as well as other companies that I interviewed with.
The last thing in the interview is to be specific in your answers. Don't use general comments to gloss over things. This is both in technical and non-technical questions. If someone asks you if you have done replication, answer with more than "yes." "I have setup snapshot replication", "I have setup simple two server replication," or something like that. Be specific.
Have I written C++ code? Yes, but I answer with the caveat that it has been a long time and I wrote simple utilities to return values. I'm not a programmer to build you an imaging application.
If you are not sure how to answer specifically, ask for a clarification. Even if you are halfway into your answer, do not be afraid to stop and ask about some details or what they are looking for with the question. It will help to show that you are paying attention, thinking, and willing to work with them.
Remember that all of these techniques are guidelines or rules of thumb. They have worked for me, but I have also had to use judgement calls with them. I try to be specific, but within time guidelines. Most questions should be answered within a minute or two. I answer honestly, but do not necessarily give every detail that might make a bad impression. If I think someone I worked with is an idiot, I would not say that, or even blame them for issues. But I would point out what I did right or well and what I didn't.
If I were looking for a one year job, but thought the company might not hire me for that, I would probably not disclose that and hope that I weren't asked the question. Is it unethical to disclose your timeframe? I'm not sure, however I also know that a year is a long time and all kind of plans can change, so no matter what my thoughts were, they might change over time. I also know I have seen people hired and then let go in 4 months because the company decided to reduce head count. In either case, you want to be as honest as you can. You have your own moral compass that will let you know how much to disclose.
We have all made mistakes in life and in our jobs. They are part of what builds our character and skills and helps us grow. Accept responsibility for them and show that you do in an interview. And point out how you have learned and grown from the experience. Remember that you want to fit in well, so treat the interview as your chance to determine that. Relax and enjoy the process.
And keep in mind that the best time to interview for a job is when you don't really need a job.