IT recruiter’s guide to hiring DevOps engineers
Table of Contents
Although a booming industry, hiring DevOps engineers is quite difficult. But DevOps ranks among the top skills that developers want to learn in 2022, so we can count on more skilled talent coming our way. A DevOps developer automates infrastructure tasks using IaC or bash/python scripting, to maintain and configure a cluster of servers. They are required to have a whole gamut of skills ranging from Linux to Docker. Technical skill assessment including coding assessment is one of the best ways to screen and evaluate DevOps candidates.
DevOps engineer is a versatile specialist who helps development teams to optimise specific infrastructure while improving business. A booming sector, DevOps market size is projected to reach $57.90 billion by 2030. This growth can be attributed to rapid application delivery and cost-cutting in businesses.
Considering that it is a highly specialised role, the recruitment process for DevOps is notoriously tough. According to a research conducted by CodinGame, DevOps is among top three roles that recruiters struggle to fill. But the good news is, it ranks among top five in skills developers want to learn in 2022, so skilled talent shouldn’t be a problem.
What is the role of DevOps engineers?
Before the term DevOps existed, we have different roles for Network engineers, Security engineers, System administrators, and Automation engineers. Later, Cloud and DevOps practices integrated evolving into a single role – DevOps engineer. So basically, a DevOps developer automates infrastructure tasks. This is done via IaC or bash/python scripting, to maintain and configure a cluster of servers. Their role also involves creating and sustaining CI-CD pipelines, secure servers, and cloud services.
Most importantly, they are masters of cloud services. They know how to integrate any AWS managed service, including Amazon RDS, Aurora, Amazon S3, or even a cloud networking issue (VPC Networking). Besides that, if any system is hacked they are usually the ones who investigate and inspect the cause, look for the vulnerability, and conclude with an analysis and remedy.
Which different roles can DevOps engineers operate in?
Other than the traditional role of a DevOps developer, they can also be found in other roles.
- Cloud engineer: This role focuses on Cloud administration in one or multiple clouds including AWS, Azure, GCP and more
- Linux administrator: As a part of this role, they maintain Linux servers, open-source services, and also perform server troubleshooting
- Site reliability engineers: In this role, they maintain Linux servers and increase the reliability of the production systems. They also respond to on-call incidents and conduct Root Cause Analysis (RCA) on previous incidents.
Skillset of DevOps engineers
The skills required of a DevOps engineer is a function of the team composition, technologies and toolsets in use. They need to know the components of a delivery pipeline and have a thorough understanding of the available tools and services.
They are also expected to communicate clearly as they are the link between the development and operations teams.
Going into specifics, these are the skills that a DevOps engineer must mandatorily have:
- Linux: They must have a 2-3 years of experience in Linux administration
- Open Source Services: They should be familiar with a couple of open source services like Apache, Nginx, PHP, MySQL, or PostgreSQL
- Network Protocols: They should understand network protocols like TCP/IP, networking, TCP, UDP, and HTTPS
- Bash or Python scripting: They are required to have a working knowledge of Bash or Python scripting
- AWS: They should be experience working with at least one Cloud and must have worked with Amazon S3, VPC, EC2, ECS, IAM roles, and RDS
- CI-CD Pipelines and Toolchain: They should know the SDLC and how to create and maintain CI-CD pipelines. Also they must be proficient in minimum one CI-CD tool.
- IaC Tools: They must know how to implement programs like Terraform, CloudFormation, or Python
- Web Application Stack: They must have the ability to deploy and launch stacks like Java app, MERN stack, or Python/Django application
- Troubleshooting Server: They must have prior experience in handling security incidents and EC2 instance issues
- Security: They need to know the basics of AWS security, Linux security, and hardening (Server/Containers)
- Docker and microservices: They need to be proficient in Dockers and microservices
- Amazon ECS or Fargate: Knowledge of Amazon ECS or Fargate is mandatory
- Databases: They need to know how to manage at least one of these three: Mysql, Postgresql, or Amazon RDS
- Monitoring: They should be familiar with one of these: Amazon Cloudwatch, Prometheus, Nagios, Zabbix, Grafana, DataDog, or New relic
Steps to hiring DevOps engineers
- Identify & Screen: You can integrate the assessment links within the job posters as you post the job requirement. This will help you screen the candidates in the beginning itself. You can also host a hackathon online to screen and identify top candidates. You can choose to include a home test in the job description itself.
- Assess: Depending on the skill proficiency required for the role, give the screened candidates technical assessments to solve. These assessments should be domain-specific and project-based to check on-the job skills. Coding proficiency can be measured by giving them coding assignments.
This round is very crucial as you can get an objective view of the candidate’s profile and know the skills and knowledge they possess. This round can help you check their suitability for the job role as these assessments mimic real-life problems. You can either build these assessments in-house or with platforms like Yaksha.
- Interview: The candidates’ performance on the assessments can be determined with a detailed report to understand their strengths and weaknesses. The assessment round can be followed up multiple rounds of interview as per requirement.
You can also add coding assessments to the interview rounds to make the decision making process more objective. This round should help you understand if the candidate is a good fit for the organisation. Team members can also meet the candidate for a short interview to see if they fit into the company culture.
Yaksha offers on-demand interview-as-a-service so that you can find the right candidates for different tech roles. Interview and screen candidates as per your needs with Yaksha’s IaaS to save time and make your hiring process 2X faster.
- Onboard: In the onboarding, you can do much more than admin formalities. Informal meeting with the team members can help the candidate get comfortable with the office culture. You can also share a technical assessment with the candidate to find their skill gaps with respect to their job role. This will help you chart out L&D plan so that they can upskill as per the requirement for their role.
Build customised technical assessments to measure skill gaps with Yaksha.
Assessments and interview questions to hire DevOps engineers
Here are some sample assessment and interview questions to hire a DevOps engineer
- How to create a Jenkins job?
- How to integrate Git with Jenkins or any other CI-CD tool that the DevOps engineer is familiar with?
- How to troubleshoot a DNS problem?
- Mention 3 ways to save or reduce AWS hosting costs on AWS
- A server administrator is using the command ‘docker ps’ to view all the containers that have installed on the current server. But they find that some images that were installed and ran earlier on the server are not listed. Why did this happen and is there a way to view all the containers currently available on the server?
- A server administrator paused an instance of a docker image called hello-world. Now he would like to resume the container which he had paused earlier. But he is unaware of the details of the container except for its image name. Which commands must he use to find the details of the required container and then unpause it?