Although Puppet has been around since 2005, the open-source configuration tool’s growing popularity is linked to the rising interest in DevOps. Monica Culver, the London-based director of customer success for Puppet Labs, explained in a recent interview how, like many managers, she evaluates candidates for Puppet-heavy jobs on their proficiency with DevOps practices and fundamentals, in addition to technical proficiency. (Culver also looks for a sense of humility and an aptitude for teamwork, since those traits help power collective successes.)
When assessing a candidate’s mastery of Puppet and DevOps, Culver asks these specific questions:
Describe the most significant gain you made from automating a process through Puppet.
- What Most People Say: “I automated the configuration and deployment of Linux and Windows machines using Puppet. The process used to take a week and now it happens in less than 10 minutes.”
- What You Should Say: “I automated the configuration and deployment of Linux and Windows machines using Puppet. In addition to shortening the processing time from one week to 10 minutes, I used the roles and profiles paradigm and documented the purpose of each module in README to ensure that others could update the module using Git. The modules I wrote are still being used, but they’ve been improved by my teammates and members of the community.”
- Why You Should Say It: Automation is not just about the initial efficiency gain—it’s about long-term success. Therefore, it’s critical to demonstrate sustained improvements by minimizing and simplifying manual intervention not just for routine or daily changes, but for major events such as upgrades, process changes and personnel changes.
Tell me about a time when you used collaboration and Puppet to help resolve a conflict within a team.
- What Most People Say: “The development team wanted root access on test machines managed by Puppet in order to make configuration changes. We didn’t want to give them root access because we wanted to manage consistency across testing boxes. I worked with the development team and figured out a way for developers to change only specific configuration values that would feed into the machines they used.”
- What You Should Say: “The development team wanted root access on test machines managed by Puppet in order to make specific configuration changes. We responded by meeting with them weekly to agree on a process for developers to communicate configuration changes and to empower them to make many of the changes they needed. Through our joint efforts, we came up with a way for the developers to change specific configuration values themselves via data abstracted through Hiera. In fact, we even taught one of the developers how to write Puppet code in collaboration with us.”
- Why You Should Say It: Using Puppet robustly to serve other teams throughout your organization means breaking down organizational silos. While Puppet centralizes control and management of infrastructure, the modular nature of the DSL means that it should be reusable, extensible and serve as a platform for cross-team collaboration.
Which open source or community tools do you use to make Puppet more powerful?
- What Most People Say: “I use Git and Puppet’s Code Manager app to manage Puppet code in accordance with best practices.”
- What You Should Say: “Changes and requests are ticketed through Jira and we manage requests through an internal process. Then, we use Git and Puppet’s Code Manager app to manage Puppet code in accordance with best practices. Additionally, we run all of our Puppet changes through our continuous integration pipeline in Jenkins using the beaker testing framework.”
- Why You Should Say It: A strong Puppet practitioner will definitely utilize several community tools as well as best practices to enhance Puppet’s performance. He or she will also use version control, code review and change management through a CI pipeline with robust testing.
The real masters are resourceful when it comes to working with technology and others. It’s important to demonstrate your mastery of Puppet automation, teamwork, collaboration and reusable tooling when you interview for any DevOps position.