Tag Archive: hiring

How To Hire Top Talent

You want to hire a fantastic DBA or database developer.

You want someone who can hit the ground running, who you can trust to maintain your current system and tune it like a pro. Plus you want someone who can see key improvements, communicate effectively, and drive change in your system.

You want it all.

It’s incredibly hard to find this candidate. First of all, you’re not the only one looking.

But guess what? You’re probably looking for the wrong person. And you’re almost certainly asking the wrong questions.

Newsflash: You’re Not Looking To Hire an IT Pro Who’s Done the Same Job Before

Hiring top talent just got a bit more fashion flair

It's hard to hire people who are superstars and don't have something unique about them. Like a mask.

I’ve talked to many hiring managers about what they’re looking for and how they look for it– I’ve asked these questions both as a candidate and as someone who’s helping them find the right person. I typically hear this:

I’m looking for an IT pro who has five or more years of experience with our technology, is an expert in several of those areas, and who can communicate effectively.

This limits your field too much right from the start.

Managing and developing data environments is interesting because of the variety of work available. There are common patterns and practices, but environments are highly unique and technology varies widely.

Say you want someone who’s worked with highly available internet applications. Is the person who’s already worked with a website just like yours and happens to be looking for a job now necessarily the best person?

Instead, consider this:

I’m looking for an IT pro who adapts quickly and has five years or more of experience managing or developing data environments. Strong production change experience is absolutely necessary.

There are small changes here, but it makes a huge difference. You’re open to many more people, but you’ve specified if there are any particular types of experience that are absolutely required.

Maybe you’ll find someone who hasn’t worked on Windows in several years, but has an interest in your company. Maybe they’ve worked on related technology, but different components than the ones you use. Don’t shut them out. Instead, open your mind.

Break Out of the Recruiter Room: Ask the Right People “Who Is A Great Candidate?”

Your recruiting staff is overworked. They use common tools for hiring for different departments– they probably have one or two websites they post to regularly and some established channels for finding candidates.

You want more. You need to use smart alternatives to find great candidates. Here’s how you do that:

  • Write a good job description. The job description says a lot about your business and you as the hiring manager. Write it like you care. Think about the person you’re looking for, not just the position you’re trying to fill. Be clear if the job entails on-call duties. Mention if you have a flexible working option, and if relocation is available. Please– if you list requirements for “X years with Y product”, make sure you get the product name right and that someone can realistically have been working with it for that number of years. (I don’t have 10 years of experience with SQL Server 2003, and I never will.)
  • Throw your net wisely. Find out where your recruiters are listing, and supplement with other sites if you can. Not all recruiters post on StackOverflow.
  • Use your network. Let your network on LinkedIn, FaceBook, and Twitter know that you’re hiring. Send emails to former colleagues who may have leads.
  • Reach out to community leaders. Drop a line to community leaders in the area you’re searching. Include the job description. Ask if they know anyone great who’s looking, and ask them for feedback on the job description. You can find these leaders on Twitter and in blogs. (We’re happy to help.)

You Won’t Hire a Great DBA or Developer By Asking Boring Interview Questions

If I had a dollar for every time I’ve been asked about the difference between a clustered and non clustered index, I’d be blogging from a private island. Questions like this imply you’ve phoned it in and you don’t really care about your candidate.

Don’t try to find experts with nit-picky questions, either. If you have Senior SQL Server DBAs ons staff, they probably think your next Senior SQL Server DBA should be able to wax poetic on how to change collation or write a dissertation on the nuances between data types. Once you work with a product for a while and you do certain things you get this mindset– everyone should know that. But this knowledge is typically based on how your own applications are developed.

These questions also turn off great people. Your best candidate may or may not be able to answer these immediately in extreme detail– but if they couldn’t, they could find the answer and test it out in a matter of minutes. So why not find that out?

Screen candidates by asking about their experience, not about your own experience. Become good at asking probing questions, and drive through the experience questions to find out what knowledge they have about the technology they were working on.

If you don’t have a big support team and you need someone to come up to speed immediately, don’t panic. Ask questions about times when the candidate needed to learn new skills quickly. Spend time on it– find out how much they remember and what they found difficult. You want someone who can learn, and who can describe hurdles they’ve overcome in learning in the past. Your great candidate is someone who knows that not everything comes easily, and they’ll tell you about that.

Use Timed Labs in an IT Job Interview

If it’s critical that your new hire already have certain skills, don’t try to determine that with Q&A.

Set up a VM with an environment job candidates to work in. Build questions, or have someone build them for you. If you really need those skills immediately, they should be able to fix broken things in that environment, and do it under a time limit with someone sitting in the room with them.

If they’ll have the internet available to them while they work, make it available in the lab environment, along with any standard tools.

Call in an Interviewing Professional

What if you’re in a small company and you need to hire an expert in an area where you don’t already have an expert? How do you know to ask the right questions or set up the right lab?

In this case, build the parts of your interview that cover team fit and interaction with related teams on your own. For the specialty area, rent an expert.

This can be simpler and less expensive than you think. Take our team for example– we want to help people find the best candidate who’s the right fit for them. Contact us and we’ll work out how to help you.

Be Consistent Across Job Interviews

This is a trick. Because guess what? In order to be consistent, you have to be prepared.

It’s good to be consistent for HR reasons, but it’s even better to be prepared with a set of good questions. And make sure that all your interviewers across different sessions know what they’re asking about, and have a set of prepared questions to ask as well.

You won’t end up having the same conversation over and over again because good questions start conversations where you use good follow up questions, or probing questions.

Never forget: top candidates are interviewing you, too. They have choices and they’re judging on multiple criteria, including team dynamics, manager effectiveness, and whether you appear to have your SharePoint together.

Prepare your questions and be a little serious, but also be human and have some fun. Share interesting things about your business and your team. Show that you listen. Listening makes you interesting. Top talent often will pick the team that’s fun and interesting over the boring team that pays a little better.

Make sure that you do your research and read the candidate’s blog. Make a place in your interview structure where you ask the candidate about specific blog posts they’ve written. Ask why they did something a certain way, or what they might do differently now.

Are Your Change Management Styles Compatible?

There are cowgirls and there are bean counters, and there’s everything in between. Allow a little time before you start asking about the candidate’s change management process and style– because this candidate should be asking you about that.

Make sure that you cover this in the interview process at some point. You want to find out how the candidate handles change and if they can fit well with your process. If you have a really heavy process, it may drive them nuts, and cause you endless trouble. The opposite can also be true.

This is also a good place to find out how your candidate has handled errors in the past. If you’re looking with someone with experience handling critical downtimes smoothly and calmly, devote a lot of time to asking them about past situations and how they handled it. You may also include several hypothetical questions in a time limit, in either a written or verbal format.

Ask Candidates for Feedback

Let every candidate know at the end of their interview loop that you welcome feedback about the interview experience at any time. Make sure they have your card with your email address. If they send you feedback at any time, read it, keep it, and review it later. You may see patterns you want to change.

You Can Hire a Top DBA or a Superstar Database Developer

You can hire great talent. When you do, you’ll find they aren’t what you picture ahead of time.

They have a varied work history, possibly. They may be significantly older or younger than you would expect. They may not have the degree you’d assume. But they have a passion for data, an enjoyment for learning, a love of technology, and a level head on their shoulders when everything goes down— and that’s all that matters.

Kendra Little

Kendra specializes in high availability and performance tuning. She is a Microsoft Certified Master in SQL Server-- the highest technical SQL Server Certification available. Kendra loves databases and software development more than long walks on the beach. Those cartoons in her blog posts? She draws 'em all. Read more and contact Kendra.

Website - Twitter - Facebook - More Posts

My Weekly Bookmarks for October 30th

Here’s my bookmarked links for October 26th through October 30th:

SQL Server Links

#SQLPASS Links

Tech Links

The Junk Drawer

These bookmarks are automatically imported from my bookmarks at Delicious.com. If you’d like to get up-to-the-minute updates on what I’m bookmarking, you can subscribe to my bookmark RSS feed.

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

Website - Twitter - Facebook - More Posts

Top 10 Developer Interview Questions About SQL Server

Knowing good SQL questions to ask during an interview with a developer can help you filter out the best candidates from the ones who aren’t the most qualified.  There’s a huge difference between “It worked on my machine” and “It scales well in production.”  These interview questions will help you filter out the bad apples before you hire them.

10. Explain why DBAs don’t like cursors.

I like to phrase this interview question this way because I’m not saying the DBA is right – I’m just asking the developer to explain the DBA’s point of view.  I don’t have a problem with the developer rolling their eyes as they explain the answer, but I have a problem with the developer being surprised by the question.

The candidate gets bonus points if they seem even vaguely aware of the terms “set-based processing” and “row-based processing”, but that’s purely a bonus.  (I wish I could say that these concepts are requirements, but in today’s economic market, companies don’t always want to pay top dollar to get the best candidates.)

9. Where do you like business logic – in the app or in the database? Why?

Personally, I like stored procedures because they’re easier for us DBAs to test, tune and tweak. On the other hand, the developer community isn’t always as fond of stored procs.  For their side, see these posts by Jeff Atwood:

I don’t mind what arguments the coder candidate uses, but I want to see ‘em put some thought into it.  No matter which angle they take, I’ll play the devil’s advocate and prod them with arguments just to see how they react.

8. Explain when and how transactions should be used.

Not In The Oprah Book Club, Oddly

Not In The Oprah Book Club, Oddly

Start with just that open-ended interview question, and if they have trouble getting started, give them a scenario.

“Say we’ve got a table for Orders, and a table for OrderDetails.  Someone places an order for two books – Bacon: A Love Story and the hit bestseller Eat What You Want and Die Like A Man.  Tell me what happens.”

After they’ve answered, ask them when transactions should not be used.  I don’t want my developers wrapping anything inside a transaction unless it absolutely needs to be.  (Unlike bacon, which should be used as often as possible for wrapping purposes.)

7. Explain referential integrity and where it can be enforced.

If they stumble on the question, circle back to the Orders and OrderDetails tables we used as examples earlier.  What’s an orphan?  How do we make sure that we don’t end up with OrderDetails for records with no matching Order record?  Where are all the places we could enforce referential integrity?  (Think foreign keys, triggers, the application, or not at all.)  Have you worked in places where there was no referential integrity, and what problems did you run into?

6. What’s the fastest way to get a thousand records into the database?

I’m not looking for the best answers – I’m just looking to hear that they’ve done some work to performance tune their queries.  If they’re doing fully logged individual record inserts, one at a time, into a data warehouse-size system, we’re going to have problems down the road.  (Yes, I’ve actually worked with a BI developer that did millions of individual inserts per night in full recovery mode and thought the performance was the database’s fault.)

Bonus points if they link back to the previous interview question and talk about whether or not they should disable constraints or referential integrity during data loads.  (I don’t care what their final answer is, but I just want them to know the pros and cons.)

5. What’s the difference between a primary key and a clustered index?

This is almost a bonus question.  Most of the time, the candidate doesn’t know because it’s a function of the data modeler or architect, not the developer.  However, I want to see how the candidate reacts to tough questions.  Ideally, they say in a relaxed tone of voice, “I’m not sure, but I know who I’d ask.”  If they don’t mention where they’d go, ask them where they go for SQL Server answers.  Speaking of which…

Bonus Points for This Candidate

Bonus Points for This Candidate

4. What’s your StackOverflow name?

I don’t need to see a high reputation, but I do want to see an awareness of the site.  This interview question serves two purposes: it finds out if they’re serious enough to be active in the community, and it shows them that you’re okay with their community activity.  Start a conversation with them about the level of internet time that you find acceptable in the office, and encourage them to share their knowledge with their peers.  This sells the candidate on your shop.

3. Tell me about a time when a DBA got mad at you.

This is a spin on the classic interview question, “Tell me about a time when you failed.”  Implemented a user-defined function, trigger, CLR in the database, or something else that made the DBA freak out?  I want to hear that the candidate listened to what the DBA had to say, good or bad.

If they say it’s never happened, rest assured it’s going to happen soon.

2. How can you tell if a query will scale for production?

I want to hear that they do things like load tests or maybe look at execution plans.

I’m sometimes comfortable when a senior developer says things like, “I can pretty well tell when something isn’t going to scale, because I know the production boxes really well.”  The key is asking a followup question about times when things didn’t scale.

1. When is the DBA right?

Always, kid.  Always.

Want help interviewing your DBA candidates?  Check out our services.

Brent Ozar PLF Team

Brent Ozar PLF is a boutique consulting firm focused on understanding your environment and strategy. We partner with you to objectively identify pain points and develop solutions that align to your business goals. Your experience comes first; we share our knowledge and expertise to help you.

Twitter - Facebook - More Posts

Blogging, privacy, and my new job

Yesterday, one of my soon-to-be-former coworkers, Kiran, tipped me off to an NPR story on blogging and privacy. Steve Inskeep spoke with a grad student who writes a few Myspace blogs with his personal journal, political ramblings, and – whee – a blog about blogs. The student observed that he doesn’t know anyone who’s been denied employment based on the contents of their blog, but he knew people who had removed blog content with that fear in mind. Kiran said that before he met me, he didn’t know anybody so open about their lives as to maintain a blog.

It’s more than that, though: I don’t just maintain some random MySpace blog under an online name. I run my blog under BrentOzar.com, my real name, for all to see. I believe that a blog written under a real name gives some credibility, some weight, some authority. It’s less of a blog and more of a personal brand, a personal marketing site. It’s also a historical archive that lends some credence to who I am, and what I’ve been doing for the last several years. It shows that I’m not faking it.

I couldn’t go apply for a job right now with a faked resume saying I graduated from the University of Houston. Well, I could, but good HR folks could Google my name, find my site, read it, and discover that I never finished. Even if I doctored up my site right now to say that I finished, really savvy surfers could dig up an archived version of my site, step back through time to see the different copies, and read how I’d marketed myself differently over the years. Bam, busted.

Whenever a resume crosses my desk, I Google the bejeezus out of that person. I try to find every question they’ve asked on newsgroups, every reference to them and their employer, and their personal hobbies. I know I’m the rarity rather than the norm because my coworkers, managers and HR people are always dumbfounded by the amount of information I come across. You don’t have to write a blog to get busted – all you have to do is post a single question to a newsgroup or forum that shows your email address. “Ah, yeah, this guy posts questions regularly in the MS Access newsgroups, even up to last month. Why’s he still posting Access questions this basic if he’s applying for a SQL Server DBA job, saying he has years of experience?” Bam, busted.

The risk of living a somewhat online life is that if you lie about your life, you can get busted.

The reward is that if you consistently tell the truth, people can verify your history online. It’s almost like a reference check. My future employers can step back through time, look at each company I worked for, see my blog entries, and see what I was doing over the years. Until recently, that wasn’t something I promoted, but Kiran had been so impressed by my blog that he suggested I put a link right on my resume. That worked extremely well and it opened a lot of doors I hadn’t expected.

Enough doors, in fact, that I just gave notice at Kanbay/Adjoined after only five months. My last day will be Friday the 24th.

I cringe as I write this because I know I’m going to have to explain this five-month gig thing later. Years from now, hopefully very very many years from now, if I look for another job, I’ll have to explain why I only stayed five months at a company. I am so not a job-hopper – my last job was six years, and before that two at two years, but both were working with the same guy – I basically followed Wayne West to another company.

A non-blogger would give a BS excuse like “I was only a contract employee” or “The new position was a better match” or “I couldn’t stand the Kanbay merger” or something. Here, I find myself under my own spotlight, and I gotta be honest. I’m a permanent employee, I’m going into a similar position, and I think the Kanbay merger is a great move for Adjoined. At the end of the day, I just wasn’t personally fulfilled – this wasn’t the right match for me.

I’m extremely excited about the new company, and I’ll write more about it later. I don’t know their policy on blogging yet or if I have to sign an NDA about the company name, so I’ll keep my big virtual mouth shut until I get those policies cleaned up. After all, blogging is permanent, and you don’t want to screw that stuff up.

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

Website - Twitter - Facebook - More Posts