-2

I'm interviewing some candidates for a web development and BI analyst role and need some ideas regarding good questions to ask them.

Traits I'm specifically looking for are:

  1. Ability to look at complex and even messy legacy data sets and design a well structured database (normalised but also sensible) to store that data, plus the process to import it.
  2. Ability to write code which is good, clean, modular, robust and highly maintainable for a web solution to interact with said database.

I'm primarily interested in good coding habits and real world problem solving ability. Any ideas on how to tease this out of a potential candidate and what I should look for?

  • What sources have you found already and why are they not fulfilling your needs? – Jonast92 Jul 10 '14 at 10:51
  • 1
    You are clear about what you are looking for. Just give a coding assignment which consists of a real world problem. – Shaunak D Jul 10 '14 at 10:58
  • 2
    I will point out that good BI analysts tend to not also be the good web devlopers. This is like looking for a doctor who is both a pediatrician and a radiologist. They are totally differnt professional specialties. – HLGEM Jul 10 '14 at 14:46
  • Hi HLGEM, thanks for pointing that out. I actually understand that as I have a technical background myself. This is really a business app with a web interface, so I'm not looking for someone to dazzle me with CSS or Flash, but who can write some solid CRUD type code to meet business requirements and understands relational database design. I like your answer by the way. – Mark Micallef Jul 11 '14 at 1:46
2

Questions that come to mind:

Have you designed a database before? If so, what process did you use to determine the design. One of the main things you are looking for here is for them to talk about normalization and for them to not let an ORM do the designing for them. You want someone who thinks about design.

How would you handle transforming data from a file to your database? You want them to consider how to clean and transform the data. You also do not want anyone who would directly put the data into a prod database without checks. Good BIs design so that any data failures happen in the staging tables not when putting the data into production. IF a BI candidate doesn't talk in the interview about the need for data integrity and how he intends to ensure it, do not hire. Extra points for making sure that exceptions are handled and logging is done and that the person doing the design is thinking in terms of receiving files over time that may change from the sample given. Big extra points if their answer considers performance as well.

I would give the person a small set of messy data and ask them to look it over and ask them what kind of cleaning they would do. You would want them to see that the phone numbers are not correct and that the email column contains notes instead of email and that the last_name column is missing information, etc. You would also want them to be asking questions about the constraints on the database that they would have to consider (can you have more than one address per person for instance). You could also directly ask how they would design a normalized database to put this type if data into. You want them to ask questions that show they care about the meaning of the data nor just the mechanics of putting it into a database. All top BIs that I know care passionately about the meaning of data. All bad BIs I have worked with do not.

Ask them how they would refactor a database. Databases will need to change over time and they are hard to refactor, so find out what process they would use or if they have even thought about this before. You should be hearing things about concerns for preserving existing data, how to move existing data to the new structure, setting default values for old data when a new required column is proposed, etc.

Can't help you on the web design questions.

Not the answer you're looking for? Browse other questions tagged or ask your own question.