During the last few weeks I have been interviewed for several DevOps positions. In two of them I had to reply a skills check-list and in the other one an exercise to be solved and send back by email. I think these check-list interviews are not good for DevOps positions, specially if the check-lists used are not updated properly. Let’s see why…
Several questions were related to specific tools or services. Eg: Nagios and IPtables specifics configuration.
If your daily tasks include the configuration of Nagios monitoring system and the IPtables, you can probably reply the check-list questions since you are used to work with these manually on a daily basis. It means that you can be an excellent Linux administrator, but not necessarily an excellent DevOps administrator.
I don’t remember when was the last time I had to configure Nagios or IPtables manually… No, wait! It was before I started using Puppet and DevOps methodology. Since then I have written the standard Nagios and IPtables configurations for my systems once and let puppet manage the low level configuration for all my systems automatically. The knowledge about the specific configuration is not in my head anymore but in my git’s repository.
I don’t see the point of asking such questions in a job interview that can be replied spending 5-10 second searching on the Internet. Also with these questions your are validating that the candidate can manage manually these specific configurations. You are not validating candidate’s DevOps skills or abstract thinking.
Puppet has the PuppetDB (a CMDB like knowledge repository) that keeps info about your puppet managed systems. It can be used to dynamically update your Nagios or IPtables configuration. This means that your monitoring system or your IPtables rules are automatically updated when:
- A new server is deployed.
- An old servers is decomissioned.
- A new Tomcat, Web server, FTP is ready for production.
This sounds more DevOps to me :). Do it once and forget about doing it manually again and again.
In the other interview I had to reply several complex real problems. To solve them I used DevOps methodology, and the solutions proposed were highly scalable and automated.
What do you think is the best approach to interview a DevOps candidate?