CTO Roundtable #1 - How To Hire A Great DBA

discussing

Finding (and retaining) good DBA talent doesn’t have to be difficult. 


There are three main areas CTOs need to look at when hiring: Domain-specific technical knowledge, Holistic understanding of systems, and Communication skills. 


The following checklist can help you in your interview process, including example questions you can ask.


There are 10 discrete question areas, and you can score your candidate /10 for each numbered question. Technical knowledge is given the most weight (60%), and Holistic understanding of systems is weighted equally with Communication Skills (each 20%).

 

Ask one, some, or all of the sample questions for each number, and score your candidate /100.


Please let us know at BitWise how this tool works for you!
 

  1. TECHNICAL KNOWLEDGE – Make sure s/he understands:

     

  1. Server internals (they’re platform-specific e.g. SQL Server) 

    • What is a query cache memory pressure and how can it affect the server performance? 

    • What’s the difference between small and large environments?

  1. Query performance

    • What are some of the tools that you can use to troubleshoot a query performance problem?

    • What are some popular methods for SQL table optimization and query speed improvement?

 

  1. Set-based querying and data processing

    • How can you convert a row-by-row operation to a set based operation?

    • What are some of the differences between set-based and procedural approaches in SQL?

 

  1. Data relationships

    • How can you figure out a relationship between entities even if foreign keys were not specified?

    • What are the five types of relations in databases (one-to-one, one-to-many, many-to-one, many-to-many, and self-referencing relationships) – and what’s the difference between these database relationship types?

       

  2. Data modeling

    • What is a difference between a “thing” and a representation of a “thing”?

    • What’s the difference between a conceptual model, a logical model, and a physical model of data entities and their relationships? When would you choose one over another? 

    • Explain the role of math behind data? (enables quicker design)

       

  3. Servers/networks/applications

    • How does server I/O work?

    • How can you monitor server OS performance?

    • How can you configure a network and set up routing between endpoints?

    • How do connection strings and data access methods work in different programming languages?

 

B. HOLISTIC UNDERSTANDING OF SYSTEMS – Can s/he articulate:

  1. CI/CD Continuous integration and deployment

    • Is this DevOps or DBA territory?

    • What’s the difference between DataOps and DevOps?

    • What’s your view on the need to become more “full stacky”? (Databases are becoming more DevOpsy, merge into one deployment, move from reactive to proactive)

 

  1. Generally speaking

    • What is your role in a Sprint? (Communicate with developers and do code review – mistakes are becoming more costly)

    • What do you use parsing tools for? (Speed and quality of thought are not contradictory)

    • What are some things to consider when troubleshooting?

    • What are your top tips for server hardware issues?

    • What are some key things to consider when assisting users?

    • What does the scientific method have to do with being a great DBA?

    • How do you develop and maintain a data dictionary?

 

C. COMMUNICATION SKILLS – Observe if s/he:

 

  1. Proper communication with all stakeholders

    • Do they know how to properly listen and take notes?

    • Can they analyze the information that they were given and rephrase it and/or request clarification, or do they just say “yes”, “got it” to everything?

    • Assess how their personality would fit in with your current team / management style.

    • Can they clearly explain their concerns in a non-technical jargon without being condescending?

    • What’s their communication style like? Do they display empathy, talk about collaboration skills?

  1. Ask behavioral questions

    • What do they know about your organization and what is unique about your brand? 

    • How have they handled an uncomfortable situation in the past?

    • What are their career ambitions and what they are interested in learning or improving on? 

    • Present a typical technical concept as if to a non-technical stakeholder.

    • Describe a time when they successfully solved a DB emergency for a client.

    • Talk about any unique tools they have developed themselves.

    • What do they like most / least about DBA work?

    • If applicable, what do they know about working remotely / across time zones / with diverse- multicultural co-workers?

    • What questions do they have for you? (No questions is a red flag). Good answers might include: “Tell me a bit more about the team I’ll be working with” / “Tell me about your current big project” / “What would a successful DBA in this role be doing 2 years from now?” “How do you recognize great work?”