20 May 2013 Junior DBA Interview Questions – Updated
Four years ago I wrote a post titled Junior DBA Interview Questions. During that time the role of a traditional DBA has shifted. As a result of this shift I decided it was time to update my list of questions for a junior DBA.
I’ve written earlier posts regarding how to do a job search as well as the interview itself. If you have done all that work to get yourself an interview, you should know what types of questions you may be asked, right? And if you are doing the interview you should have an idea of what to ask someone with little to no practical DBA experience.
Again, the rules for the interview process are very much like going on a blind date. Someone else has arranged for the two of you to meet and you want to leave a good impression so the person will call you again the next day. I have explained that to you once before that interviews should not be a trivia contest, they should be a conversation.
Here are my top platform agnostic questions to ask during an interview for a junior DBA. Are these all the possible interview questions? Probably not, you really need to tailor your set of questions for your own shop, but these can hopefully set you on the right path. If you keep in mind that you are looking for someone that you can work closely with, and mentor, then the conversation you have should flow naturally during the interview. So, here are the best interview questions, in no particular order.
What is a database?
Let’s start with the basics. This would be like asking your date “so, what do you do for work?” While it may seem silly to ask this question keep one thing in mind: there are no silly interview questions. No matter how ridiculous a question may seem to both the person asking it and the person responding, they will always serve a purpose. In this case you may find the candidate talking about MS Access, or Filemaker, or whatever they have been exposed to previously. Let their response be an indication of their fundamental knowledge of some RDBMS system. See if they can explain the difference between a data and a log file, for example.
What is the Cloud? NoSQL?
I’d ask this question to learn if they have any experience with any service technologies. What I consider to be service technologies are the platform-as-a-service (PAAS), software-as-a-service (SAAS), or infrastructure-as-a-service (IAAS) providers that are breeding faster than rabbits on a honeymoon. This is similar to asking your date if they prefer to eat out a lot or if they always prefer cooking at home. Most people like to have a nice mix of both, and any junior DBA you are looking to hire should be aware of all available options. I’m not saying they need to be an Cloud expert, just to have awareness of things like Hadoop, Cassandra, Azure, MongoDB, AWS, etc.
How do people connect to a database?
This is about the same as asking them “where do you usually go to meet up with others?” What you want here is to gauge if the candidate knows the basic difference between Windows Authentication and SQL logins. Perhaps they do, in which case you might want to see if they understand connection strings, or how different apps might try to connect to a database, or even some basics of ODBC connectivity. You are not looking for a expert, but you do want someone to understand that different people and applications have different connectivity needs or, at the very least, someone you can train to understand the differences. Bonus points here if they can explain why Cloud applications need to have standard retry logic baked in to their DNA.
Who is the most important user of a database?
This can be considered identical to the line “seen any good movies lately?” What you want here is to get an understanding if they candidate knows who the stars are. And who are the stars? Well, everyone. That’s right. Every connection to a database server is as important as any other. What’s that? You say it is only a development server, so it is not that important? Well, a development server is considered a production server to a developer. In other words, every person and every connection is important, no matter if they sit in the corner office as CEO or not. If the candidate lists out only a handful of people or groups (perhaps the Data Scientist team) as important and fails to understand that everyone (all users, regardless of rank or stature) is important, consider that a red flag. I’d also hand out bonus points if they feed you the line “everyone is important, but some are more important than others”.
Are you active in any social networking? Do you blog?
It should be clear that this is the same as asking them “are you seeing anyone?” Why do you care if they are? Well, it’s simple. You need to know if they are amenable to working with others, either getting help or giving help. As a DBA you will often need to work with a wide range of people, sometimes they will need your help, sometimes you will need theirs. If they are not used to interacting with others then you may have an issue should they join your team and continue to work in a silo. So, unlike a real date, here you are looking for someone that admits to spending time with others. Note that I’m not interested in reviewing the Facebook updates as much as I am if they are using tools like Twitter (and the #sqlhelp hashtag) or DBA StackExchange in order to engage with others online for giving (and getting) help.
What’s your best way to relieve stress?
A very standard question in any interview and similar to “what do you like to do for fun?” Really this question is best for helping to foster a non-work related conversation. If you cannot talk to someone about their life outside of work, then you either should not hire them or not be the one giving the interview. You simply must be able to converse with your coworkers from time to time about non-work related items. It is the best way to really get to know someone and develop a solid professional working relationship. If the candidate says they do not do anything to relieve stress then either they are nervous, cannot focus, or are lying. Everyone has stress to some degree. Recognizing the signs of stress and knowing how to deal with it is a necessary step in any professional career.
Which is faster: Inserting one million rows of data, or updating one million rows of data?
This could be one of the more technical questions you could ask a candidate and it equates to asking them “what kind of car do you drive?” You are not looking for the correct answer, which is “it depends”. If they do answer correctly then examine the scenarios they lay out before you. It could be very insightful, you could get a real sense for how they think. Chances are they will guess at one or the other, which gives you the chance to explain something to them. And when you do so take the opportunity to see how the discussion goes. If they ask you lots of questions, that is a very good sign. If they just sit there, listen to your every word, accept everything you say as the truth, then consider that another red flag. No one is perfect, not even you, and you do not want to surround yourself with someone that just follows your every word, you need someone that is insightful enough to ask you more questions, someone that is always looking to learn.
If I asked you to learn how to tune a query, where would you go?
This is not necessarily a question you would find on a date, it is more about the hidden signals your potential partner is giving you. Does the candidate look like a person that tries to take care of themselves? Do they show some ambition? Do they read any web sites with regularity? Have they ever opened a user manual? Who do they consider to be an expert? In short, how would they start to look for answers when you are not around?
Have you ever built your own database, or application?
The question that comes to mind here is not really something that you would ask on a date (think Weird Science). What you are looking for in their response is an indication of their passions. Do they have a passion for building things? Solving puzzles? Do they know the difference between SMALLINT and BIGINT? Have they ever heard of 3rd normal form? Any experience with building a reporting solution? You want someone that is familiar with computers, so they should demonstrate a passion for something technical in some way. Bonus points here if they have deployed an application to the Cloud in some way.
What motivates you?
I like this question much more than “what do you want to be doing a few years from now?” Everyone should want to be successful, to aspire to be more, so asking them what they want to be doing is only going to give you the same bland answer from one candidate to the next. However, ask them about their motivations and you will gain some valuable insight into their character. Some people are motivated by money. Some are motivated to help others. Some are motivated to be a success because of external pressures, like their family. Whatever the reason may be, if you know their motivations then it is going to be easier for you to get them productive quickly when they start, rather than spending time trying to figure it out later. Also you may be able to weed some people out who are motivated for the wrong reasons.
Most of the time a company is looking to hire a junior DBA that they hope will become a senior DBA in time. If the candidate does not have motivations that take them in that direction, then you can also consider that to be a red flag. If someone is motivated to be a CEO, then spending time as a junior DBA may not be the best fit for them.
Our on-call policy is [blank]. Is that OK?
This is something that cannot be stressed enough. A DBA is always in demand, and always on the hot seat when things go wrong. And things always go wrong. You need to make it very, very clear that this person will be expected to be on-call. This would be the same as if you asked them “can I call you any time, even drunk dial you at 3AM?” This could easily scare some people away. That’s fine, you don’t want them. What you want is the candidate that looks you back in the eye and says “let me give you four different ways to reach me at all times of the day.”
How do you troubleshoot problems in your current role?
I thought about what kind of date question this would be and the closest I could come up with is “when did you know your last relationship was in trouble?” The ideal candidate will be able to clearly explain their thought process in how they troubleshoot something. Developers will most likely discuss with you some piece of code that worked well on one server but not on another. A Windows admin might talk about a service that stopped and would not restart no matter how many times they clicked on that little arrow. In either case, you want to identify someone who is articulate to a certain degree, can explain themselves, stand up for their decisions, and also be open to the possibility that there was more than one way to solve the problem at hand.
Remember, you are looking for a junior DBA, someone with little to no experience as a DBA. If you expect them to understand everything about how transaction logs operate, what spindles are, or to draw a data page map then you are looking for someone a little more senior. What you want is someone that has demonstrated their ability to learn as well as some initiative or motivation towards technical aptitudes. Oh, and keep in mind that the more junior person you hire, the more hand holding they will need. So, if you really want someone senior, because you don’t have the time to hold someones hand most of the time until they get wet behind the ears, but only want to pay that senior person a junior salary, then you have come to the wrong blog looking for help.