Before moving on to instructions for hiring a DevOps engineer, let’s define this specialization and its features. We will also consider the main questions that should be asked during interviewing Junior, Middle and Senior level specialists.
Who is a DevOps engineer and what do they do?
DevOps (Development & Operations) engineer is a specialist with a wide range of competence. The task of this engineer lies in providing communication between system administrators and developers. Establishing links allows you to minimize the number of errors and revision cycles of your current software. According to the Atlassian DevOps Trends Survey, 99% of respondents saw a positive impact of DevOps on their organizations.
Among the business goals that DevOps covers up are:
- acceleration of product release;
- the ability to deploy in different formats;
- improving testing efficiency;
- reduction in the cost of introducing new versions;
- optimization of work processes through automation.
Despite the fact that specialization took its shape only in 2013, today there is a need for DevOps in almost every IT company.
What are the qualification requirements for DevOps?
Even though each company has its own personal requirements for DevOps, there is a certain basic list of requirements from which the acquaintance with the candidate begins.
- solid knowledge of Git and its processes;
- experience with programming languages (Ruby, Python);
- experience with databases and writing SQL queries;
- experience with cloud services (AWS, GCP, Azure) and their configuration (Terraform, Ansible);
- experience with containers and their orchestration (Docker, Kubernetes).
It is desirable to have:
- specialized engineering or computer education;
- network development or network administration experience.
DevOps engineer interview questions
Last year alone, StaffingPartner’s specialists recruited more than 40 DevOps engineers. Based on their experience, let’s look at the main questions to ask a DevOps engineer in an interview, according to the levels.
General questions and Linux
- What is DevOps?
- What is HTTPS and how does it work?
- Explain the concept of Infrastructure as Code.
- What is the structure of the Linux filesystem? What are the main directories and their purposes?
- What is the difference between containerization and virtualization?
- Describe the difference between zombie and orphan processes. What is inode and its purpose?
- How to collect all information about the status of the disk and memory?
- Name the variables for bash.
- What types of testing are generally used?
- How to resolve a merge conflict?
- What is the role of infrastructure monitoring?
Networks and Clouds
- What does an IP packet consist of?
- Explain the meaning and operation of firewalls, proxies and NAT.
- What port and protocol do Ping and Traceroute use?
- Tell us about the difference between IaaS, PaaS and SaaS?
- Describe the main components of a VPC.
Automation, information security and virtualization
- List the automation tools.
- Describe how HTTPS and certificate ciphers work.
- Define terms: MFA, TOTP, IaaC and Terraform.
- When starting a Docker container, how to “map” it from the 80th port in the container to 8081 to the host?
- What is the difference between Continuous Delivery and Continuous Deployment?
- Describe the main stages of CI/CD.
- Specify tools and test types for CI.
- Break down the structure of the service (using the Docker-Compose example).
- Create a program that will receive messages from the queuing service and pass them to stdout.
- Describe the architecture of the Linux kernel and its purpose.
- Describe the difference between RedHat and Debian distributions. What is the purpose of /proc and /sys directories.
- What is SSH? Is it possible to organize access to the server without a password or from certain hosts?
- Explain the case: the output of df -h indicates that there is not enough space on the disk, but the file cannot be written with the message no space left on device.
- Is it possible to increase the file system size?
- What network topologies do you know?
- What is the purpose of the IP address? How is it different from a MAC address?
- Is there a difference between a hub and an L2 switch in Ethernet networks?
- Describe the layers and functions of OSI.
- Describe the algorithm for TCP delivery.
- How to migrate a site to a new IP address without the user noticing?
- What CNIs have you worked with, how do they differ, pros and cons.
- Is there a difference between managed Kubernetes and self-hosted?
- Tell us about cluster scaling.
- With what PID does the process start in the container?
Virtualization and containerization
- What types of virtualization are you familiar with?
- Are there any differences between Docker containers and virtual machines?
- Tell us about the image layer (maximum number, functions).
- Solve the case: access to the VM is lost, how to recover the root password / SSH key, having only access to the disk?
- Name the main components of the kube cluster and their purpose.
- Describe the important stages of any pipeline (lint, test, build, deploy etc)?
- Case: there are two branches stage and dev. The Dockerfile was pushed to dev and then whitewashed to dev and stage. Will it be one artifact or different?
- Describe Deployment strategies and their differences.
- Give a summary of GitOps.
Clouds and Automation
- How to organize a multi-environment project?
- What cloud services did you work with? Describe their benefits.
- How to organize team access to AWS/GCP/Azure? Role-based access, assume role, SSO.
- What is SLI, SLO, SLA? How to use them?
- Monitoring helps to support the whole architecture of the system: do you agree or not?
- How to save logs in case of storage failure?
- How does Prometheus work?
- Define SAAS monitoring and its types.
- Give definitions to the concepts: XSS attack, SQL injection and CSP.
- How can you secure SSH connections?
- Solve the case: Root password is missing, how to update it?
- Tell us about the rights management on the file system in Linux.
- How to block traffic from IP addresses when a Linux server is hacked?
- Why should or should not indexes be used?
- Your strategy for building a billing system to operate thousands of invoices.
- How do transactions occur in the database?
- How to find slow queries in MySQL/PostgreSQL?
- Compare SQL and NoSQL, describe your own experience.
- Containerize the application and create a helm chart for it.
- Create a Terraform module for the test service infrastructure on AWS.
- Describe the deployment of a simple program using GitOps.
- How to find out IP address, mask, network, routes without using ifconfig and ip?
- Tell us about Ceph.
- What happens if we move /dev/sda1 to /root?
- Tell us about pseudo-devices.
- Solve the case: the server has been hacked, a large number of files have been created in the /var/www directory. You cannot use cd /var/www followed by rm -rf*. How to delete files?
- What is the difference between IPv4 and IPv6, does it make sense to move to IPv6? Tell us about IPv6 everything you know.
- Define terms DPDK and SR-IOV.
- What is the difference between OpenFlow and NetFlow?
- Tell us about SDN and controllers.
- What is configuration drift? Why is it bad?
- Tell us about your latest experience in implementing an architecture for a service.
- Explain how Kafka works.
- How do I update the documentation of DevOps applications in GitOps?
- What do you know about Kubernetes on-premise design features?
- Difference between observability and conventional monitoring?
- What do you know about Service mesh and Cluster federation?
- How to implement Pod fine-grained access?
- How to debug container traffic?
Clouds and Automation
- What tools to carry out cost optimization?
- Tell us about the organization of such processes: multi-account, multi-region cloud setup
- Tell us about AWS Lambda. Are there similar solutions in GCP or Kubernetes?
- What branching strategies do you know and which ones did you work with?
- How to emulate cloud-provider resources for local testing and development acceleration?
- What is Cloud-Agnostic?
- How to properly store passwords in databases?
- Ways to pass secrets to application.
- Compare CI/CD SAST and DAST.
- How to properly transfer secrets in the container and CI pipeline (using HashiCorp Vault)?
- The process of conducting Kubernetes cluster vulnerability testing.
- What is the CAP theorem? Where and how is it used?
- Tell us about rollback and backward-compatible migration?
- Describe tools for database performance testing.
- What stack would you choose for accommodation booking services (language, code infrastructure, CI/CD settings)?
- You need to justify moving from AWS to GCP. What are your arguments?
Also, we recommend you to ask the question “What is DevOps?” every specialist you are interviewing, regardless their level.
Thus, DevOps is rightfully considered a complex specialization, and the selection of such a specialist requires immersion in the topic. Having such an engineer in your company will make a big difference and improve the efficiency of your processes.
Whether you’re planning to scale your business or upgrade your system to keep things running smoothly, a DevOps engineer is a must have.
In case your company has open DevOps or other software engineering vacancies, we can help you hire the right IT talent faster in any part of the world. Contact us right now to get the first candidates within 1 week.