How to Hire a DevOps Engineer
As businesses transition to more technology-focused solutions, both internally and externally, the role of DevOps engineers is getting increasingly more important. They provide the other teams in your organization with the tools and solutions needed to increase their productivity, improving the development cycle for more frequent and reliable releases.
This guide will provide you with the knowledge you need to hire the right DevOps engineers for your company, and to ensure that they can effectively and efficiently integrate within your teams and help improve collaboration, security, quality and productivity within your organization.
Table Of Contents
What is DevOps?
DevOps is the application of certain practices to software development and operations that helps reduce development time, improve system quality and allow your teams to focus on developing features instead of putting out fires.
The DevOps team creates Continuous Integration/Continuous Delivery pipelines, takes care of the tooling, and designs and implements other automated solutions, all of them aimed at allowing the other teams to move at a faster velocity when compared to traditional structures.
Investing in a DevOps team will supercharge all your other software teams, especially if they are separated into product teams or you have several teams working on specific features.
Why Hire a DevOps Engineer
Hiring DevOps engineers has become a necessary investment in modern software development to help streamline and improve developer productivity. It allows you to release updates, and features more frequently and reliably by streamlining processes into automated workflows.
Hiring a DevOps engineer will allow your developers to focus on the features your application needs, and it will allow them to release updates faster to users. Furthermore, they can help promote good practices within your organization, allowing teams to gradually adapt and upgrade to the new solutions created by the engineer.
The Customer is Key
Hiring a DevOps engineer allows you to release software that is much higher quality and more fault resistant, which translates into improved customer and client satisfaction. It’ll help streamline the internal processes that may be currently bogging down your development team and might be the reason why you don’t ship features often.
This small investment can pay off big, and it has been demonstrated time and time again that hiring DevOps engineers is fundamental to a well-oiled business. All of this leads to happy customers, happier employees and happy management.
DevOps engineers, combined with a Software Reliability Engineering team, which is a team responsible for making sure your systems are always available and developing automated tools or processes to maintain this, will help create a rock-solid foundation for your organization to grow.
Maximizing Reliability
If your business provides technical solutions to other businesses through the use of APIs, systems or platforms, you may have to honor a Service Level Agreement. This agreement is a guarantee that the system availability will be maximized, and that any issues that arise will be taken care of in a certain timeframe.
Keeping these commitments is essential for business continuity, growth and development. Hiring a DevOps engineer directly integrates with these goals as it allows you to maximize how much you adhere to these Service Level Agreements, and helps maintain the quality your customers expect.
An Investment That Pays
Hiring a DevOps engineer allows you to facilitate a culture of knowledge sharing within your organization, which helps your teams develop and grow. As an investment to your employees’ and organizations’ future, hiring a DevOps engineer is one of the best decisions you can make.
Non-Technical Skills to Assess in DevOps Engineers
Business Processes
When interviewing potential candidates for DevOps positions, it’s crucial that you evaluate whether they have the necessary knowledge regarding business processes, as this is what they’ll be helping your teams improve. It’s important, therefore, that you ask questions relating to how their work impacted on their previous roles.
One example could be that in a previous business, it took three different team members for a new release to be completed, and their solution was to automate this process, helping free up time for those colleagues to work on more productive tasks.
Continuing on this, it’s a good idea to probe for any experience building teams. If the candidate is one of your first hires and you’re testing the waters with DevOps engineers, it’s essential that you hire a candidate that can lead the way.. You should ask them how they would build a team given the opportunity, and how they would see DevOps growing within your organization in the future. Candidates should be familiar with where DevOps sits in an organization and within an Agile team. This means that they should understand that the role is there to not only serve the business as a whole but to serve individual teams too. Therefore, they should have the ability to communicate effectively and to easily solve problems within different types of team structures. This collaboration, and ability to teach others, is a fundamental aspect of any successful DevOps engineer.
Security Knowledge
Security is paramount when working within DevOps. It’s essential that any potential candidate is familiar with standard cloud solution security practices and system-level practices. This will ensure that any automated tools or processes they create are inherently secure. Furthermore, if you have a dedicated security team, they should be comfortable communicating with them and applying any internal policies they have set. Familiarity with this is essential to ensuring your organization is compliant with various standards set within your industry.
Certifications
As DevOps has become crucial to businesses over the last couple of years, several industry-specific certifications have appeared. You should ask whether the candidate has any certifications related to those your organization uses. Examples of this include being Azure or AWS DevOps certified, Agile certified and more. This will ensure that you hire competent candidates with proven knowledge in dealing with the systems your business uses.
Furthermore, you can search for knowledge outside of qualifications. Does the candidate have a technical blog they maintain? Have they written any open source tools that solve DevOps issues? These kinds of questions will help you not only hire candidates that are competent but those that will supercharge your internal teams.
Technical Skills to Look For in DevOps Engineers
Continuous Delivery and Continuous Integration
One of the key tasks of any DevOps engineer is to implement Continuous Delivery and Continuous Integration to your software projects, as this will allow you to release software frequently and reliably. You should ask candidates, examples on when they have had to do this, and how they went about doing this. It’s also crucial that, if your business requires it, your candidate has familiarity with micro services, primarily in the context of setting up DevOps solutions relating to several smaller projects.
Infrastructure Management
Infrastructure tools such as Terraform and containerization platforms such as Kubernetes or Docker, are essential to any successful DevOps engineer. These are the bread and butter of DevOps engineers setting up the solutions that your organization will need.
Therefore, it’s essential that you understand the level of knowledge they have with these systems. They should understand how to set up the necessary infrastructure from scratch, how to write the necessary code and how to deploy this within a team. You could potentially ask them for a high-level overview of how they would implement this within a smaller team, and how they see their solution being expanded upon in the future.
This, combined with knowledge of configuration management tools, such as Chef, will allow you to understand if the candidate will be effective. Experience with different cloud platforms, such as AWS, Azure and GCP, or better yet certifications, would be a good base to start understanding their skill level.
Pipelines and Source Control
The daily work of your DevOps team will involve working with and setting up source control pipelines, so you need to verify that the candidate is not only familiar with your source control software ( such as Git) but that they know how to write the necessary pipeline code to automate DevOps processes.
This means that they should have a thorough understanding of writing the code necessary for the platforms they intend on using, or your organization is already using. For example, if your team primarily works within the Microsoft ecosystem, you should verify that the candidate is familiar with build tools such as Octopus Deploy and that they know how to write the necessary Powershell code to create the CI/CD pipelines. If your team is using AWS, the candidate should be familiar with Bash, and the various CI/CD tools that AWS provides. This will allow you to verify that the candidate can quickly and easily create the solutions your teams need to successfully deploy their code.
Logging and Monitoring
Finally, you should assess whether the candidate is familiar with the concepts of logging, and using various tools to verify that systems are working as intended. These tools will prove essential as you build out your team. This, combined with knowledge of tools such as Jira, will help paint a picture of a candidate that is both competent technically, and also competent from a business perspective.
Last but not least, they should be familiar with the testing frameworks that your teams use, to ensure they can effectively automate these testing suites into the pipelines they’ll create.
Technical Interview Questions for DevOps Engineers
Question: What is an example of a DevOps KPI (Key performance indicator)?
Answer: Reduce the number of failed deployments.
Question: What is the purpose of “shifting-left” within DevOps?
Answer: It allows for issues to be spotted earlier in the development process.
Question: Why would you implement automated testing for your builds?
Answer: It allows you to automatically run your test suites when changes are made.
Question: What is Continuous Integration in DevOps?
Answer: The process of merging all developers’ code into a shared repository several times a day.
Question: Why should a DevOps team implement thorough logins of their systems?
Answer: To help ensure that data is logged to help ensure application availability and assess the impact of any changes.
Final Thoughts
DevOps engineers provide the tools needed for your company to scale, deliver faster and provide higher quality solutions. Choosing the right one is critical for your organization, as the decisions they make can skyrocket your teams’ productivity or completely break it.
If you start hiring without vetting these engineers correctly, it can prove detrimental in the long term, so it’s essential that you ask the right questions and look for the right knowledge mentioned in this guide.
Modern DevOps provides you with the opportunity to really transform your business into a lean and agile company, one that ships frequently and provides its customers with a high-quality experience. Furthermore, it provides you with the opportunity to teach others within your organization, helping develop the mindset that modern DevOp demands. Using the questions and knowledge specified in this guide, you’ll hopefully be on the journey towards supercharging your business and empowering your employees to be the best they can be.