Devops is a culture and philosophy that, in a nutshell, aims to unify the formerly separate silos of development (the people who create applications) and operations (the people who make sure those applications are working the way they should) into a single team. This team uses continuous integration, continuous delivery, and testing to release frequent incremental improvements to the existing codebase into production.
Logically, then, a devops engineer is someone with the skills necessary to serve on such a team. But like all things devops, the precise definition of a devops engineer can be difficult to pin down—and some people claim the term “devops engineer” isn’t a meaningful job description at all. Nevertheless, more and more companies are saying that they want to hire devops engineers and are willing to pay them good money. Let’s see what it is they’re looking for.
Devops engineer defined
Implementing a devops philosophy doesn’t mean that you’re replacing your entire development and operations teams with an undifferentiated mass of devops staffers. Different staffers will have different skills. There will be programmers, sysadmins, DBAs, and so on, all working together.
When companies use the term devops engineer, they want someone who can help tie all of these roles together. The company blog for Altexsoft, a software engineering firm, describes the role this way:
Some consider this person to be either a system administrator who knows how to code or a developer with a system administrator’s skills. In a way, both definitions are fair. The main function of a devops engineer is to introduce the continuous delivery and continuous integration workflow, which requires the understanding of [devops] tools and the knowledge of several programming languages.
Or, as developer Igor Kantor put it in a Medium post, a devops engineer is ”somebody who understands the software development lifecycle and brings software engineering tools and processes to solve classic operations challenges.” The key is having enough knowledge and experience on both the dev and the ops sides to understand how they can work together—plus the “soft” people skills to help more specialized team members connect with one another and understand the world beyond their silo.
Devops engineer training
There’s a running joke that pops up on places like Reddit where IT pros hang out: There’s no such thing as a junior devops engineer. That’s because the breadth of technical skills that companies hiring devops engineers are looking for goes beyond what someone fresh out of school or a boot camp could have acquired.
The way you “train” for the role of devops engineer is through on-the-job experience of the sort that can provide developers with exposure to the operations side of things, or vice versa. As Jeffrey Lee put it on Hacker Noon:
There is no training or educational path to become a devops engineer. 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 five years of experience before applying.
Devops engineer skills
Just because there is no formal devops engineer educational track doesn’t mean you can’t choose to orient your career toward getting a devops engineer job. But you do have to make a conscious decision to gain a diverse set of skills, either through on-the-job experience or through outside formal or self-directed training.
Igor Kantor presents a whole series on the key technologies and platforms to understand if you want to become a devops engineer. He breaks them down into the following categories:
- Foundational: Linux administration, Python, and AWS or some other cloud platform
- Configuration: Terraform and Ansible
- Versioning: Git and GitHub
- Packaging: Docker
- Deployment: Jenkins
- Running: Amazon ECS and Kubernetes
- Monitoring: ELK stack
Obviously, that’s a tall order! However, although being a master of all of those platforms is unrealistic, you should at least have a sense of how they all work. More importantly, you should know how to learn more when you need to on the fly.
Being a devops engineer goes beyond knowing specific products or technologies—and after all, these change all the time as the industry evolves. Just as important is a familiarity with the devops philosophy and the underlying lifecycle. That means you’ll need to understand the continuous deployment and continuous integration process (CI/CD) that lies at the heart of a devops shop, along with the kind of software testing that goes along with it.
And don’t forget those soft skills: They’re crucial for a role at the center of a cultural shift toward a more rapid and iterative software development and release cycle, and one that entails bridging the gap between developers and operators, both of whom may be used to working in an adversarial relationship. Cybric founder and former Yahoo CIO Mike D. Kail sums it up in a TechBeacon post: “Increasingly, organizations want software engineers who have mastered soft skills such as empathy, integrity, and resiliency to help usher in a new wave of devops.”
Checking out devops engineer interview questions online, like these sample interview questions from Edureka, gives you a good insight into what might be expected from you on the job. Obviously, the questions are there about specific technologies, but you’ll also be expected to explain how all of those platforms and tools can work together, as well to show potential employers that you understand the devops philosophy and processes.
If you’re looking for a bit of institutional guidance as to the package of skills you must acquire to call yourself a devops engineer, you might want to investigate the AWS Certified DevOps Engineer exam from Amazon. This certification is obviously focused on Amazon’s cloud platform, but studying for the test will show you where the gaps are in your devops engineer knowledge. Udemy’s study guide says it will help you “learn how to develop a full functional CI/CD Pipeline in AWS using AWS Developer Tools.”
Devops engineer roles and responsibilities
So what does a devops engineer do on a day-to-day basis? Altexsoft says a typical list of devops engineer responsibilities looks like this:
- Writing specifications and documentation for server-side features
- Managing CI/CD
- CI/CD script writing
- Performance assessment and monitoring
- IT infrastructure maintenance and management (encompassing hardware, software, network, storage, virtual and remote assets, and cloud data storage)
Of course, no two jobs are alike, and the role of a devops engineer’s role will vary from company to company. The size of the organization may have a particular impact. At a small business, your duties may span the entire devops lifecycle, whereas on a bigger team you may end up focusing on one portion of it.
If you want to get a sense of what employers will ask you to do as a devops engineer, you might want to check out the devops engineer job description templates available on sites like Dice, Workable, and ZipRecruiter. These provide a baseline of industry expectations.
Devops engineer jobs
Devops engineer jobs are proliferating. TechTarget says that this is a result of the spread of the devops philosophy generally, which in turn is due to enterprises wanting faster rollout of applications to internal and external customers. There’s reason to seek these positions out—Glassdoor calls devops engineer jobs the sixth best job in America right now, based on the combination of average salaries and job satisfaction.
Devops engineer salary
And about those salaries ... they’re pretty high! In Dice’s 2019 salary report, devops engineers ranked in the top five, with an average of $111,683. Glassdoor pegs the average at $115,666, with $91,000 at the low end of the typical range and $155,000 at the high end. Collecting these skills will undoubtedly take time and effort—but it clearly pays off.