In my last , I talked about DevOps as a culture and as a role. These days, a lot of companies are looking for a DevOps engineer to be a part of their DevOps teams. I know labeling someone with this term contradicts DevOps values a bit, but what exactly is a DevOps engineer? And why are so many companies looking for them?
What Is a DevOps Engineer?
Let’s start with the first part of that question. There is no training or educational path to become a DevOps engineer. Typically, DevOps engineers are senior developers or sysdamins who have skills in business, organization, configuration, automation, operations, and leadership.
In other words, it’s typically people who are confident in their current skill set and have branched out into other roles. They are hired because they have deep knowledge about the field and have lots of hands-on experience. You won’t find a job posting on LinkedIn that isn’t asking for at least 5 years of experience before applying (but then again, that’s pretty much any position).
Why Are Companies Looking for Them?
They want someone with DevOps skills because companies that implement a DevOps culture have better results! Puppet’s report showed that high performers spend less time (28%) on configuration management, deploy more frequently, and recover faster after implementing DevOps practices. And these are just some of the many advantages.
It’s not that companies are specifically looking for DevOps engineers, but anyone with DevOps skills. If you go to LinkedIn or any job listing site, there are many different types of DevOps positions.
What Is Considered a DevOps Skill Set?
According to , these are the three top skills that DevOps engineers need:
- Coding or scripting
- Process re-engineering
- Communicating and collaborating with others
Process re-engineering is probably the most telling skill. Engineers are not being hired to write code from scratch as much, but to find the best open source tools that can function with a company’s current platform and operating systems.
What Exact Skills Do Employers Want?
After searching through many DevOps engineer positions, these tended to be the common skill set requirements:
- Strong automation skills (tool agnostic).
- The ability to design, build, and operate a technology stack.
- Configuration and automation management, health checks, single point of failure, notifications.
- Expert skill in any of the following tools and coding languages (will vary depending on job): Docker, Jenkins, Chef, Puppet, Salt, Git, MongoDB (or other NoSQL DB), JAVA, and Nginx.
- Strong operational experience in Linux/Unix environment and scripting languages: Shell, Perl, Python.
- Effective cross-functional leadership skills (prior leadership experience, verbal communication skills, strong collaboration skills, empathic).
- Ensuring operational best practices by working closely with the deployment/releasing teams.
- Experience with AWS in a production environment: EC2, S3, VPC, IAM, ELB, CloudWatch.
Have a “Senior” Level of Knowledge of DevOps
Since DevOps can be interpreted in so many ways, it can be hard to determine what counts as having a senior level of DevOps knowledge. Mainly, if you want a DevOps role you must know your stuff better than anyone else. You must cross train yourself because not every company is going to hand you the skills that improve your “DevOps skill set.” That means embarking on projects that allow you to get familiar with automation, scripting, configuration, leadership, etc. You must learn to market your skill set and show others that you know what you are doing. Don’t know how to get started or how to show off your skill set? Here are some places to start:
Resources to Get Started