Hiring a MySQL DBA can be challenging, especially when the demand for MySQL DBAs is greater than there are qualified people to fill those positions. This article will go into some details on how to recruit, recognize, and interview a great MySQL DBA. (For the rest of this article, MySQL DBA and DBA are the same.)
1. Preparation
It's very important to determine your company's needs before starting your search for a DBA. Is your company a small start up, or a mature company that has a large replicated or clustered environment? Is this DBA position needed to support developers? Will this position support 24/7 operations? Will a smart candidate be able to learn as they go, or do you need a rockstar now that can handle your requirements from day one? By brain storming with various department managers or technical staff, the requirements will become clear as to what's expected for this position. Just like a software project, determining "what" the software needs to do leads to developing the requirements for the project. Knowing "what" the DBA needs to do will help drive the requirements to find the right DBA. Take as much time as possible to develop these requirements, this is no time to rush. Yes CEO/COO/CFO/CIO, it's that important. Be sure to look at the dynamics of the team or teams that will interface with this person. Fitting well within the team is just as important, or possibly more important than technical requirements. Technical aspects can be learned, but trying to change the wrong personality is near impossible. It always costs less to plan for the right candidate than it is to hire off the cuff, then let someone go later on. Not only will you suffer having to hire twice, you'll find out the hard way just how much damage the wrong person can do to a company.
Someone in your company has been doing the DBA role as an additional duty. This person could be your system administrator, or maybe a developer and they would be great at helping to develop the requirements for the DBA position. They already know which aspects of MySQL impacts the company the greatest, and they especially know which parts they don't like doing, not skilled for, or their time is better spent doing what they were originally hired to do! Use them to help prepare to write the job description.
2. Writing the Job Description
Now that you have all the details in front of you, it's time to tackle the job description. It's very important to keep in mind that the job description is your first contact with a potential DBA. If the description shows a lack of organization, wrong terminology, or requirements that don't make sense, for example - 10 years experience with MySQL 6.0 - it'll be a red flag to potential candidates that your company doesn't know what they are doing. I know this is harsh, but you never get a second chance to make a first impression. You want your company to stand out from the crowd of the other DBA positions. You want your description to yell out "Hey, you want to work for us! We're a smart company looking for a smart DBA."
The format of the job description should be in the same standard format that's used by your company to advertise any other IT position. How should you describe your job requirements? This is all based on step 1. Some managers might say they need to have someone with 4 years experience with version 5.x replication, or whatever. What if you get a candidate that only has 2 years experience, but you recognize that this person is really intelligent and highly motivated? Can you relax that requirement? Personally, I don't put a bunch of emphasis on years of experience. The smart DBA will master most things in 18 to 24 months working full time, the exceptional DBA in less time. Stick with the requirements, don't add a lot of fluff to the description. Say something about your company, outline the job details, mention who this DBA will report to, describe the team, and the working hours. If it's 24/7, carry a cellphone, say so. If there's relocation, say that too right up front. Benefits are important as well. Think of this job description as your lure to catch the attention of a DBA. The job description is as much marketing as it is technical!
3. Where to Post Your DBA Opening
What's the best way to market your DBA position? First and foremost, on your company's website! After that, it's time to hit the streets. Talk with your current system administrator, or developers to find out if they know of someone that's a DBA. Most of the high end DBAs are already employed, and may not be on the market, but could be persuaded to move. Check if there's a MySQL Users Group in your area. If there isn't one, check to see if there's a Linux Users Group (LUG), or Perl/PHP Users Group. If your shop is based around software produced by the Redmond giant, research those user groups too. This is a grass roots search for just the right DBA. The MySQL conference is coming up in April, and that's a great place to recruit. If you have a developer or system administrator that can interview, send them to the conference and have them post the job opening on one of the public bulletin boards in the hallway. They could do initial interviews during the conference, and possibly bring back some resumes. Sometimes just chatting with someone they sit next to could be your next DBA. What a cost effective way to get the recruiting process going.
After exhausting the above, then you may have to turn to head hunters or posting the position on the various IT related websites. Having a clear job description helps here too. Just be prepared for an onslaught of resumes. There maybe other places to post your opening, just use your best judgment.
4. How to Tell if You Have a Great Candidate
This part of the search is where the rubber meets the road. You've got a few resumes of some highly qualified candidates. How can you tell which one is the really great candidate? Here are a few things to consider:
      A. Passion?
Do they have passion for the position? What I mean about passion is do they get excited about their work? Is being a DBA just a day job, or an obsession? Are they involved with various user groups, participate in MySQL mailing lists, blog about MySQL? Have they passed MySQL certification? I'm sure you get the idea, do they love what they do!
      B. Self Educating?
Highly important skill for your candidate. Sending them to the conference is great, but what about the rest of the year? Having the ability to read quickly and understand technical documentation is a must. Ask the candidate if they have a home lab to experiment with to learn new technology. What's on their reading list? Subjects outside of being a DBA are important too. The objective here is to see if the candidate is motivated to learn on their own and then apply what they've learned.
      C. Specific or General Skills?
Are you looking to fill a DBA position only? How about a generalist that could also backup your system administrator? Maybe someone with development skills? The required skills should be obvious from step 1.
      D. Team Player?
How well will the candidate fit and communicate with the team? Can you tell if there would be a personality clash with another team member? How well do they work under pressure?
      E. Outside Interests?
What's the candidates hobbies? Maybe they help with an open source project, or involved with something outside of IT. In any case, look for the passion they have with what they are doing. Well rounded individuals bring balance to teams.
      F. MySQL Skills?
Last but not least is the skill set. Being last might surprise you, but by now, your stack of resumes should have answered this part. If you happen to be a hiring manager, or recruiter and don't feel comfortable with this part, don't despair. If you need to verify these skills, but you can't do it yourself, consider outsourcing this part of the interview. There are several independent MySQL support companies that can handle the technical interview for you. Maybe you can contact Planet MySQL top posters and see if they'd be interested. If your candidate is already MySQL DBA certified, that's a huge plus!
5. The Phone Screen
Always conduct a phone screen! You need to be just as organized with your phone screen outline as you are with the job description. Remember, if you're unorganized on the phone, the company is unorganized. It's also harsh, but it's that simple. Maybe have multiple people participate in the phone screen. Have it organized by time and department. If you're hiring a DBA to support your programming staff, have the hiring manager, a system administrator and a developer participate. The phone screen is a great way to get an introductory feel for a candidate. You'll find out if they can communicate well verbally, and get an idea of what their personality is like. Whatever you end up doing, try to keep the phone screen no longer than an hour.
6. In Person Interview
You've narrowed down the potential candidates, and have invited them for an in person interview. Like the job description and the phone screen, the interview needs to be just as organized. If the candidate is coming from out of town, have them interview on a Friday. If you think this candidate is "the one" then have them stay over the weekend, all expenses paid. You want the candidate to like the new area they will have to move to. Maybe they have family they will also have to move. You want to know upfront that the candidate likes the area, and will stay. You don't want to find out 6 months from after they were hired that they really didn't like the area, quits, then moves back to where they came from.
Interviewing a local candidate can happen at anytime during the week. Take as much time as you need to conduct this interview. Do you need more than one interview to know if this is "the one"? That's up to you, but if you've done your homework from the previous steps, you'll have a good handle on who's "the one". All the candidates you've brought in to interview in person should be 90% to an offer. If you have any reservations that they are not at this level, don't interview them in person.
7. Reference Check
You do professional and personal reference checks, right?!
8. Make the Offer
You've made it! You've found your DBA, congrats! By now, you should be 100% comfortable with your decision. They have the skills, fits well within the team and organization. Your company is one of the lucky few that have been able to hire a great MySQL DBA.
Conclusion
Hopefully this will give you some ideas on how to attract, determine, and hire a great MySQL DBA. I've intentionally left out stuff like salary and benefit negotiations, how to handle relocation or exact details on how to conduct an interview. These topics vary greatly from company to company. There are plenty of resources on the web to help. Good luck in your search for a MySQL DBA.
Tuesday, March 11, 2008
Subscribe to:
Post Comments (Atom)
4 comments:
What you didn't emphasize is that there are really none to hire. The demand so far outstrips the supply that anyone with reasonable skills can basically name their own price and pick their own plum job. Readers who are in need of a MySQL DBA would probably get better results training a current employee than looking for someone to hire.
It may take a while for this to sink in for some readers, though. I think a lot of people waste months trying to recruit before giving up and admitting they just need to train someone. In the time they spent recruiting, they could have gotten off the ground.
Just speaking from personal experience...
Hi Mark,
Nice post!
I just noticed your poll and I would like to point out that there will be a few great tutorials at the UC that are still worthwile to attend if you are looking to get certified.
For CMCDBA:
MySQL Cluster Tutorial (full day) by Stewart Smith from MySQL AB (Co-author of the Cluster study guide, Beta tester of the Cluster exam, http://en.oreilly.com/mysql2008/public/schedule/detail/425
For CMDEV and CMDBA:
Advanced Stored Procedures by Mariella Di Giacomo (The Hive)
http://en.oreilly.com/mysql2008/public/schedule/detail/1611
Hello Mark,
Talking with your developers and find out if they know of someone that's a DBA is a good idea, and according to me one of the most efficient tool nowadays about that idea is to use social networking website such as Linkedin... The kind of group you've built yourself about mysql certified professional, is certainly a good place to visit when you're looking for MySQL Users Group.
Professionals are more and more connected to each other and some searches in those websites could match the people you need.
Baron,
too true too true. The demand for mysql DBA's is far beyond the supply. Be sure to ask questions based on the resume, so you can test if the candidate is good at what they know, in which case the may become good once they know mysql.
Post a Comment