The term DevOps means different things to different people and businesses, which can make hiring DevOps engineers a challenge.
In the book, Integrating the Internet of Things Into Software Engineering Practices, D. Jeya Mala describes DevOps as:
“a set of practices that combines software development (Dev) and information-technology operations (Ops) which aims to shorten the systems development life cycle and provide continuous delivery with high software quality.”
Jeya Mala's definition is excellent.
DevOps brings together the development and operations processes practiced by IT and software teams across businesses. Initially, bringing together development and operations was a matter of internal culture change. However, this quickly turned into the growth of a new skill set among software professionals. Rather than specializing only in “Dev” or “Ops,” software engineers started to become DevOps engineers, with skills across both disciplines.
Our guide will help you explore the value that DevOps can bring to your business and walk you through everything you need to know to hire the perfect DevOps engineer for your company.
What is the purpose of DevOps?
The biggest reason for hiring DevOps engineers is to improve your IT and software teams' productivity and processes.
Introducing DevOps engineers into your business may help you to:
- Reduce IT and software maintenance and upgrade costs.
- Cut unnecessary or excessive expenses.
- Standardize process delivery across your business.
- Replicate and scale IT processes quicker and more effectively.
- Improve the reliability of processes and reduce the need for engineer intervention.
A DevOps engineer’s role will be specific to each business. The specific issues a DevOps engineer might work on include coding and scripting issues related to software deployment or the integration and connecting of code, as well as implementing product development frameworks such as SCRUM.
The role of your DevOps engineer will evolve over time: If you're hiring your first DevOps engineer, the position will encompass more elements of bringing together your Dev and Ops processes. As your development projects become more advanced, the need for DevOps expertise will also grow. This means you will need to continually upskill your existing team or move towards hiring more DevOps specialists. As your Dev and Ops teams evolve into broader focused DevOps teams, these processes will gradually merge anyway.
Why has the demand for DevOps engineers grown?
As a global community, we continue to become ever more reliant on IT. Examples of this include the continued emergence, understanding, and use of the "Internet of Things" and the increasing reliance on the cloud to manage data and processes.
Consequently, demand for DevOps skills also continues to grow.
A May 2018 report from Markets and Markets projected a compound annual growth rate of 24.9% in the DevOps market from 2017 to 2023.
This growth makes hiring DevOps engineers a two-way street. Sure, you will have access to a growing pool of DevOps talent. At the same time, DevOps talent will have a wide array of employment opportunities to explore. You need to clearly define the DevOps roles in your business and ensure they are attractive to DevOps talent seeking their next appointment.
What should I look for in a DevOps engineer?
Clearly defining what you want from your DevOps engineers is key to your success in recruiting. The most important thing to understand is that you can’t just “hire a DevOps engineer.” The discipline of DevOps encompasses a vast skillset.
A good place to begin with screening candidates, is a DevOps skills test to identify candidates that possess the basic skillset required for a DevOps role. Beyond those basic skills, you can further define your DevOps role through areas of specialization, depending on your business needs.
Let’s take a look at the major focal areas within DevOps, the roles they can fulfil in a company, and the specific skill set that each requires.
Systems Administration (usually called SysAdmin) is the skill of managing and working within multi-user IT environments to optimize processes and performance. SysAdmin tasks can be wide-ranging. Traditionally, the core aspects of the role center around server management. You want your DevOps engineer to build and manage applications, file servers, and supporting infrastructure. A SysAdmin may also be involved in automating critical processes to keep your IT systems dependable and efficient.
You may also need your SysAdmin to manage networks, databases, and storage, as well as have the skill to develop, deploy, and oversee IT security systems.
Familiarity with a range of operating systems, IT programming, and coding language may also be a bonus. Many in the DevOps space treat virtualization and cloud software competency as specific standalone skills. However, DevOps recruiters increasingly search for these in a SysAdmin context. As such, it is worth seeking candidates with such expertise.
Consider including the following key skills in your job post. Remember to tailor requirements to be specific to your business and the role you are looking to fill.
- Installation and configuration of software and hardware.
- Systems performance monitoring and maintenance.
- Troubleshooting of issues across DevOps processes.
- Deployment of system security such as controls, backups, and firewalls.
- Continued upgrading of systems and processes to optimize performance.
- Managing networks including LAN and WAN.
- Creation of scripts in relevant programming languages.
Virtualization is a vital part of DevOps and focuses on the creation of software and the use of processes to virtualize servers and other process components. Virtualization work by nature takes place in the cloud. As such, your DevOps engineer should be skilled in working in various fields, such as Amazon Web Services (AWS), GitHub, and Google Cloud, and in specific project types such as automating Q&A.
Within virtualization, you may require a candidate to have a more specialized skill set in a particular area, such as server virtualization or network virtualization.
The aim of virtualization is always to achieve less with more. Therefore, you’re looking for candidates who can prove skill in increasing capacity and performance, reducing inefficiencies and costs, and streamlining processes, all using virtualization techniques.
Use the below virtualization skills in your job post:
- Design and deploy virtualization across various platforms.
- Identify opportunities to use virtualization to improve processes and efficiency.
- Install, configure, and manage virtualization environment components.
- Ongoing appraisal of virtualization infrastructure.
- Deployment of security systems to protect the virtualization environment.
- Configure, administer, and conduct tasks like backup and retrieval.
Network & storage management
Network and storage teams are responsible for setting up, managing, and maintaining your business’ computer networks. Network management skills are therefore crucial for a DevOps engineer. However, in recruiting the best DevOps professionals for your business, you’re looking for more than just a skilled network manager. As crucial a skill as network management is, it’s also a basic one in an IT context.
Your business will need certain things when it comes to network & storage management. You always want these aspects to be high performance, dependable, and scalable. When recruiting DevOps engineers with this skill, focus on "how" rather than "what."
If your business utilizes physical servers, you will need candidates who have skill and experience in working with physical data centers. In contrast, if your business uses cloud servers, you will be looking for a network manager who is skilled working within the cloud environment you use, such as Google Cloud.
You don't just want a DevOps engineer who is skilled in network & storage management. You want one who can show they're prepared to push the boundaries and influence your business.
- Installing and configuring networks and systems.
- Troubleshooting problems as they arise.
- Maintaining existing hardware and software where applicable, and upgrading when obsolete.
- Monitoring networks and systems to identify opportunities for improvement.
- Ongoing network and storage administration and support.
In bringing together the disciplines of Dev and Ops, coding skills are essential. Possessing these skills will allow a DevOps engineer to work effectively across both teams. As your use of DevOps evolves, this will continue to make processes more efficient and see deployment times fall.
Ask yourself the following questions when outlining the coding skills you want from a DevOps engineer:
- Do I want to hire a DevOps engineer specializing in a specific coding language to fit into the current business framework and the coding languages we use?
- Do I want to hire a DevOps engineer who specializes in a specific coding language that we’re looking to move towards using?
- Do I want to hire a DevOps engineer with skills across multiple coding languages to advise and lead on the relevant language to use in future developments and projects?
How you answer those questions will determine the coding skills you look for when hiring a DevOps engineer.
Use the below required skills in your job post:
- Building, testing, and deploying software and applications.
- Migration of code from testing to production environments.
- Identification and fixing of bugs.
- Competent across multiple coding languages.
- Working knowledge of your specific server environment.
Automation involves setting up systems and processes to reduce the human time and resources required to carry out tasks. This makes automation one of, if not the most integral element of DevOps. The whole DevOps culture and way of working are about streamlining your business and achieving as many of the potential benefits of doing so, and automation will play a huge part.
Seeking out skills in using automation tools will require a similar approach to hiring a candidate with a specific set of coding skills. You need to know what you want from the candidate.
Are you already using automation in your IT processes and want a DevOps engineer to join you and work with these? Or are you looking to move towards using automation and need a DevOps engineer to become your in-house leader as you do so?
Look for candidates who can demonstrate skills either in using the automation tools you already use or with the skills to introduce and deploy these in your business.
Use the below required skills in your job post:
- Specific experience of working with relevant automation tools.
- Identification of which tools to use for specific tasks.
- Identification of opportunities to use automation to improve processes and efficiency.
- Automation architecture and performance testing.
- Configuration deployment and management.
- Troubleshooting of automation problems.
Security and compliance are critical aspects of any IT infrastructure. One of the biggest challenges faced in businesses is that Dev and Ops teams are often unattached from security teams. As more companies move towards working in an integrated DevOps environment, this challenge becomes even more acute.
As DevOps puts a focus on speed and efficiency, it is typical for the pace of DevOps work to be way ahead of security teams. When this happens, it can lead to delays as security specialists check and verify code. In turn, this slows down DevOps projects, defeating the purpose of embracing this way of working in the first place.
That’s why you’ll benefit from hiring a DevOps engineer who is skilled in IT security. Look for an engineer with the skills to implement and maintain security at all stages of the DevOps environment and lifecycle, from inception to deployment and long-term maintenance.
Use the below requires skills in your job post:
- Expertise in deployment of anti-virus and malware programs, including how to maintain IT performance while these are in use.
- Understanding and use of risk assessment methodologies and tools.
- Designing and deploying secure networks, applications, and architecture.
- Recovery and backup.
- Specific knowledge of cloud software security.
- Use of automation in an IT security context.
Testing & diagnostics
Testing & diagnostics can often go hand in hand with automation tools. If a candidate talks about using automation tools to help their testing processes, you can explore the reasons why. Likewise, candidates who conduct testing independently of automation tools can be valuable. Discover why they undertake original and self-designed testing methods, and you'll learn a lot about their skills.
The best DevOps environments embrace prevention rather than cure. In your recruitment, seek out those who can demonstrate the skills to ensure releases are secure and reliable. If someone is exceptional at diagnostics, it is worth questioning how often a candidate must use those skills. Having diagnostic skills is essential, but your priority should be to ensure problems don't occur in the first place.
Question candidates around testing processes and how they integrate with the DevOps environment's other elements to understand how they will bring value to your business through their skills.
Use these required skills in your job post:
- Specific diagnostic and testing skills related to software, systems, and platforms you use.
- Use and deployment of automation tools for testing and diagnostics.
- Troubleshooting of issues once diagnosed.
- Identification of issues across multiple aspects of the DevOps environment.
- Implementation of systems to prevent repeat issues.
Understanding different DevOps roles
There are typically five specific roles associated with DevOps roles. It is common to find one overarching position that you might utilize to oversee your entire DevOps process and culture.
The role or roles you choose to recruit into your business will depend on several factors:
- How you are moving towards working in a DevOps environment.
- The skills and experience gaps in your DevOps process.
- The type of person you're looking for and the nature of the available position.
Let’s explore what each DevOps role involves, to help you understand which ones you might look to recruit.
The DevOps evangelist role is the one that overarches the DevOps process and environment in your business. The DevOps evangelist may be a leadership role. You may require your hire to work across each strand of DevOps, driving excellence through your whole team.
Depending on the extent to which your business has adopted DevOps, an evangelist could be the first person you hire to begin to build your DevOps environment. Your evangelist could play a vital role in bringing your existing Dev and Ops teams closer together. Alternatively, they might be the last person you hire once you have built the broader infrastructure of your DevOps team.
The optimal approach will usually be to hire them first, as they can set the standard and the tone for DevOps across your business from day one. Use the checklists below to help you decide when, and when not, to hire a DevOps evangelist.
When to hire a DevOps Evangelist
- If your business is committed to creating a DevOps culture.
- If you have training needs around DevOps and need to empower teams to reach a specific set of objectives.
- If your current Dev and Ops teams are broken or inefficient, and you need to reimagine their role in your business.
- If you will need long-term help in identifying and nurturing talent across the five main DevOps roles and specializations.
When not to hire a DevOps Evangelist
- If you’re not certain of the role DevOps has to play in your business.
- If you already achieve great results from your Dev and Ops teams, and they minimize inefficiencies already in how they work.
- If you already have DevOps specialists in place who deliver great results reporting into their managers.
- If your managers in each specific area of Dev and Ops collaborate brilliantly and do a great job with their teams.
In a DevOps context, the release manager will sign-off everything before your team moves onto the next stage of a project. They will be involved in everything, from signing off the plan and development schedule to finally agreeing to how a project will be deployed and maintained in the long term.
Due to the nature of the role, the release manager will be skilled in coding and testing, while also having relevant quality assurance knowledge. Your release manager's role might be to "break" something to verify it’s built well enough before moving onto the next development stage.
When hiring a DevOps engineer for the first time, you might initially hire a release engineer. Then in the longer-term, you may have a larger team of engineers who report into the release manager.
While each DevOps role is important, given the role automation plays in successful DevOps processes, this could be the most critical.
You need your automation architect to, among other things:
- Find opportunities for using automation to improve the efficiency of processes.
- Find the best automation tools to use to achieve your aims, appreciating that the best tools may be different for specific processes.
- Facilitate the development of custom automation.
Specific automations might be:
- Delivery of products between different automation tools.
- Communication and project management functions.
- Repetitive tasks.
- Server updating and maintenance.
If you have a specific need for an automation specialist who is more skilled in one task than another, be sure to include this in your job post.
The software development role is the one closest to what might traditionally exist in separate Dev and Ops environments.
Your software developers will take responsibility for the writing of code and the integration of various elements of your DevOps projects.
In a DevOps environment, developers have added responsibilities around testing and on-going maintenance. When you recruit a software developer for your DevOps team, you should be clear what the role will involve. Some developers will have limited skills in testing and critically appraising their work. Still, it is a necessary skill for a developer that wishes to move into the DevOps space.
Your quality assurance (QA) lead will often work in conjunction with your release engineers or release manager. In the early days of embracing DevOps in your business, you may have the same person doing these roles.
However, in the long-term, you're looking for these to take the role of an end-user. You want a QA lead to be ruthless in finding potential problems and opportunities for improvement. You may also use them to look for possible improvements in code. As such, some businesses often have QA specialists who work in both a back-end and a front-end context.
The security engineer role in DevOps is critical. Your security teams will have a dual-pronged approach.
First, they will work alongside your automation specialists and software developers. Your security engineers will play a key role in ensuring software builds are secure as work is on-going. This approach ensures projects can continue efficiently, and you avoid long wait times for sign-off.
Your security engineers will also work on an independent basis for on-going maintenance, testing, and dealing with any problems or security breaches.
A security engineer needs to be proactive and be able to appraise their work, systems, and processes to find weaknesses.
Five interview questions for a DevOps Engineer
When crafting interview questions, you want to tailor them to the specific DevOps role you’re looking to hire.
The following five questions hit on important points for all DevOps roles at the high level. Feel free to fine-tune them to dig further into the specifics of your open position as needed. We’ve included an explanation of why each one is important and what to look for in good answers to help you identify the strongest candidates.
DevOps engineer interview question 1: Implementing security
How do you factor security into your DevOps processes? How do you emphasize the importance of security to non-tech-savvy team members?
The purpose of DevOps is to make things more efficient. However, trying to do things quicker vastly increases the scope for things that can go wrong. According to Digital Guardian, the average cost of a data breach for US companies is $8.19 million.
Many businesses simply cannot afford security breaches, while all companies should want to avoid them.
Ask your candidates how they consider security in their work and get buy-in from those not involved directly.
Strong candidates will be able to walk you through a handful of specific examples they have dealt with in their career to date. Any good answer around DevOps security will include details about the challenges they faced, how they found solutions, and potentially even look at how there were several failed attempts before finding something that worked.
It’s important you get these real-world examples so you can challenge and check your candidates’ experience rather than only their theoretical knowledge.
DevOps engineer interview question 2: Building automation
What is the most challenging automation you have ever implemented? What made it challenging?
Automation is a significant pillar of DevOps. The very nature of automation means that things will go wrong. If a candidate hasn't experienced a challenge with automating a process, they are likely not someone who pushes boundaries, and they will not be useful in your business.
Look for candidates that answer with a passion for automation and to talk about actively seeking out opportunities for automating complicated processes. It's also worth asking about processes that candidates choose not to automate and explore why. In addition to questioning a candidates’ experience around implementing automation, you should also ask them how they have dealt with people-centered challenges in the past. A good question, for example, might be how they convinced their boss it was worth investing time and resources into a specific automation project.
A strong answer will include not only references to different automation tools but also to the business goals that these automations served. Ideally, the candidate will include in their first answer reasoning behind using a specific tool ahead of another, but you may need to press them on this yourself.
DevOps engineer interview question 3: Improving operations
Tell me about a script you have developed in the past to improve operations, why you developed it, and its impact on operations.
The best DevOps engineers don’t just write script and code. They produce ideas for scripts to improve operations, rationalize how those will improve processes, and take the lead in writing and implementing them.
You can also ask candidates about how they adapted an idea from a colleague and helped to make it better. Collaboration and fine-tuning are important traits to bring to this area.
Strong candidates will answer this question by clearly highlighting the problem that inspired them to explore the possibility of improvement. The best candidates will speak in plain terms without jargon and explain how decisions were made on the project. Beware of candidates who seem to suggest and implement scripts and ideas simply because they could but without a specific benefit or purpose. That can end up costly for your company.
Keep in mind that you want to receive specific and quantifiable details at each stage of this question. If the purpose was to save time or money, for example, how much did it save?
DevOps engineer interview question 4: Learning from mistakes
Tell me about a release that went wrong. How did you stabilize the issue? What did you learn for next time?
Sometimes in DevOps, things will go wrong. You're not interested in why the issue occurred, as you will get an idea of that when the candidate tells you what they would do differently next time.
Look out for the candidates' ability to find solutions and collaborate with others to do so.
An experienced DevOps engineer will have several examples of things that have gone wrong. Strong candidates will have a positive outlook even to the biggest issues and will speak with passion around the search for solutions.
Use the candidates’ answers to probe further and ask questions around how learning from a specific problem has helped to make them a better DevOps engineer.
DevOps engineer interview question 5: Measuring success
How do you measure your success as a DevOps engineer, individually and as part of a team?
At its heart, DevOps is about continuous optimization and a relentless desire to improve. A person who thinks there will come a day where no longer need to measure their success or track their improvement isn't suitable for the job of a DevOps engineer. Many individuals and businesses in the space live by the simple mantra of improving “1% better each day.”
Look for DevOps engineers with a similar mindset. As with all the questions you ask, you can use the answer as a means of digging deeper and seeking out detail. The strongest candidates will give you a nuanced answer that talks about the specific objectives of each project being key to judging success.
How much should you expect to pay a DevOps engineer?
DevOps salaries can differ quite a bit. As with any job, salary expectations will vary depending on several factors, including location and the level of skill and experience you are looking for. The table below, with current data from Neuvoo (consulted in June 2020), highlights the salary you might expect to pay for a variety of DevOps roles at different levels.
|DevOps Role||Entry Level Salary||Average Salary||Top-Earner Salary|
|DevOps Engineer - Overall (source)||$78,006||$135,000||$200,000|
|Release Manager (source)||$18,525||$148,200||$165,760|
|Automation Expert (source)||$16,770||$115,000||$195,000|
|Quality Assurance Engineer (source)||$35,685||$88,068||$149,716|
|Security Engineer (source)||$40,000||$125,050||$195,000|
*Data from Paysa, as no data held by Neuvoo.
Statistics correct on 3 June 2020.
Hiring DevOps Engineers for Your Business
Hiring DevOps engineers into your business for the first time is an incredibly exciting step to take. When you understand how DevOps can impact your business, you're in a fantastic position to start recruiting DevOps talent.
You must appreciate how complex and wide-ranging the DevOps discipline can be. It is not enough to say, "We need to hire some DevOps engineers." Your recruitment planning process needs to go into detail around what, and most importantly, who you need to bring into your business to start to build your DevOps environment.
Remember that many DevOps engineers are looking for roles. Likewise, the volume of companies recruiting for such positions is on the rise. Therefore, you must ensure you are an attractive proposition for DevOps talent. Be clear on what you're looking for, and demonstrate why a candidate with an in-demand skill set should choose your business as an employer.