DevOps is a pretty new term, which makes hiring DevOps engineers a little challenging. The term “DevOps” first appeared in 2008, as part of a movement to bring greater collaboration between developers and IT professionals while improving software delivery.
“How do I interview DevOps engineers” is one of the most common questions heard from recruiters and CTOs alike. If you’re a DevOps engineer reading this, here's what you can expect.
The 12 questions below serve as a starting point for a general, non-technical interview of DevOps candidates.
12 Common DevOps interview questions
1. What are the top DevOps tools? And which ones have you worked on?
Let’s start super basic. Here are some of the top DevOps tools and their function:
Git - used as a source code management tool, and for tracking the progress of remote teams and open source collaborators.
Gradle - using gradle scripts tasks can be automated throughout the building, testing and deployments stages.
Kubernetes - “is an open-source system for automating deployment, scaling, and management of containerised applications. It’s a useful tool for continuous integration, continuous delivery, and continuous deployment.”
Selenium - is an automated testing framework. It can be made to test web applications automatically.
Jenkins - DevOps teams use Jenkins to speed up production by automating a sequence of actions in the building, testing and deployment phases.
Puppet - this configuration management tool helps to automate inspecting, delivering and managing software.
Ansible - Ansible is the simplest way to automate apps and IT infrastructure. Application Deployment + Configuration Management + Continuous Delivery
Chef - another configuration management tool.
Docker - works to ensure a stable environment across all stages of development, from staging to production.
2. How do you define devops?
DevOps is a fairly new discipline, and being so young there is often a muddle of opinions around what a DevOps engineer actually does. You may have a different perspective on the role than another DevOps engineer, and each company might have a different idea of what roles and duties they want you to perform. You might be asked to define what the role means to you, and make sure you elaborate on your various responsibilities.
3. Are there any limitations to the application of DevOps in companies of different sizes?
From the beginning, DevOps has been something startups and smaller companies have adopted to scale. The leading argument for this has been that a lean and agile methodology would not be applicable on a larger scale. Thus, the quick answer to this might be “no.” However, if you're a candidate with a broader understanding of DevOps, you may note that large corporates, from Toyota to Motorola to L’Oreál, have begun to fully embrace an agile work approach and taken up DevOps.
4. What’s your experience with the tools Chef, Puppet, Ansible and Salt?
The palette of tools and skills available to DevOps is extensive, and naturally personal preferences and work experience have a great impact on the specific skillsets of individual DevOps engineers. However, there are certain tools, with which all DevOps engineers ought to be familiar: Chef, Puppet, Ansible and Salt. These are all tools enabling the scalability of server configuration and management through automation, which allows the orchestration of hundreds - even thousands of servers. Of course, not being an expert in all tools doesn’t mean you're not a great DevOps engineer - but you should have experience with at least one of them.
5. What is your experience with continuous integration?
Continuous integration is a key element of DevOps, as it refers to the process of continually merging the source code of all developers in a team, which enables the detecting and fixing of any mismatches and errors at an early stage. This encourages alignment before continuing with writing new code, which ultimately leads to a speedier, more responsive process. While the previous question addressed specific tools, this question relates to workflow processes, and there are many tools which may be used for continuous integration, including Travis, Jenkins, Bamboo, Circle and TeamCity.
6. Use an example to explain what a vulnerability is and how and how it may it be prevented
A vulnerability is a system flaw or weakness, which has the potential of being exploited by a hacker. It isn’t necessarily a security risk, as that would indicate a “loss”, rather it refers to any kind of asset (value or no value) that could be affected by an outside attacker. The perhaps best-known example is the “Heartbleed” incident from 2014, where a security bug was inclosed in the OpenSSL cryptography library, which in summary meant up to half a million secure web servers - both servers and clients - were at risk of “buffer over-read”, aka the potential theft of private keys, passwords and user session cookies. There are tools that can aid the detection of vulnerabilities but, however, to truly prevent system flaws, careful system maintenance, best practices in deployment and auditing must be executed diligently. A good DevOps engineer should know this!
7. Which development and infrastructures mention the core operations of DevOps? And do you have experience with these tools?
Core operations of DevOps include:
Elaborate on your experiences with any of these.
8. What’s the difference between Continuous Testing and Automation Testing?
Automation testing is simply automating tests that were previously done manually. This can be done using various testing tools combined with scripts so that tests are run automatically and without the need for manual intervention. Continuous testing is the action of continually carrying out automated tests throughout the development process. As each build is continuously tested, feedback from the business is exchanged so that problems and issues are identified quickly and before teams move into the next stage of production. Since feedback is provided along the way, developers can identify exactly where the issue(s) occur in production and fix them without having to rebuild the entire project.
9. What role does AWS serve in DevOps?
The answer to this question should be straightforward. Amazon Web Services is a secure cloud services platform offering database storage, unlimited computing power and other functionalities to help a business scale and grow. Using the cloud functionality, companies can create and release polished products and applications to the web. There are over 175 fully-featured services inside of the AWS package, covering a wide range of technologies. You may be asked if you have ever worked with other cloud platforms to see what infrastructure you might have handled in the past. Be prepared to talk about data projects you have been a part of, and what cloud services you leveraged to manage the project.
10. What’s the difference between Agile and DevOps?
Most DevOps engineers expect this question as it’s fairly standard, but that doesn’t mean it isn’t helpful in understanding more about the candidate. There are many similarities that you should identify, including Agile and DevOps methodologies. Ultimately, the interviewer should hear that Agile helps with smoother production and development of software, while DevOps handles development and deployment of the piece of software - working towards maximum efficiency with faster productions, minimal errors and maximum reliability.
11. What’s the importance of DevOps? How does it benefit the delivery of software?
With everything going digital, the competition is becoming fierce. In order to keep up and stay relevant, organisations must reinvent product deployment systems to allow for more flexibility with a robust design. This way they can adapt with the digital landscape. DevOps helps with this. A DevOps engineer can help streamline entire processes and promote mobility and agility to the production pipeline, starting with the core idea and ending with delivery to users. By implementing these streamlined processes, organisations can continually update and improve their products, staying competitive and flexible as the marketplace grows and adapts.
12. Overall, what’s the most important thing DevOps helps achieve?
This question gets to the heart of the matter, and you should be able to deliver a clear point. It should run along the lines of: the key thing DevOps will do for your organisation will be to deliver faster updates into production with minimal risks helping your organisation to achieve faster changes set in production without a lack of quality or an increase in risk.
That is the primary concept the interviewer wants to hear from you, however you may add other positives. For example: better communication and increased collaboration amongst teams. They will get a sense of your experience in how precise and to the point the answer is. If you begin listing every benefit left-right-and-centre, it might show a lack of understanding on your part.
8 top tips to prepare for your devops interview
1. Note your successes
Identify what successes you have had working in DevOps, then make them relevant to the skills the company is looking for. Make sure to explain exactly why these ‘successes’ are by talking about the results and how they directly benefited the company. Was productivity increased? Was money saved? Did you create a better customer experience?
2. List the technologies you’ve used
Make notes on why and how you used these technologies. It’s also a good idea to make notes on technologies you haven’t used before. The less in the dark you are the more prepared you’ll be should an unfamiliar question arise.
3. Research the company
Find out everything you can about the company you’re going to interview with. The more you learn about the company the more you can understand what they are looking for. Having a sense of the general areas they are looking to improve will allow you to tailor your answers to their needs. It also shows interest if you can speak with confidence about the infrastructure details.
4. Talk about your work
The interview shouldn’t be the first time you talk about your work. Practice talking about your work with friends and colleagues. This’ll sharpen your points and make you more comfortable with the material. If you’re job hunting, chances are you’ll be going through a number of screenings. Use these calls to get in the habit of talking about what you do. Take note of what is most interesting to the caller, these will be helpful when preparing for the face-to-face interview.
5. Build your own infrastructure
Building your own ‘dream’ infrastructure is a great way to showcase your work and gain confidence. You’ll learn how to solve more problems and adapt.
6. Solution mindset
Be aware, the interview won’t focus heavily on all the tools you know. Interviewers are well aware that a myriad of combinations exist, and instead want to see that you can approach problems with a solution mindset and see how you can learn and adapt to the specific needs of the company.
7. Don’t be afraid if you don’t know
There are going to be tough questions asked - that’s a given. If you don’t know the answer that’s fine, admit as much, but don’t stop helplessly there. Instead, start brainstorming and work out a solution. Ask the interview questions about the issue to see if they give up some hints. Work through the question until you can figure out how to present a solution. It’s understandable to forget under pressure, but what will set you apart is that you don’t let that stop you from finding the answer.
That’s about it for now! Obviously, this isn’t an extensive list of interview questions for DevOps engineers, and for more detailed, technical questions check out these suggestions on Quora and Edureka.
You might have a bit of a better understanding of DevOps, but if you need a bit more info about the concept, head on over to our post, "How to Become a DevOps Engineer".