In our ongoing Life in Tech career series, we have looked at several overlapping job titles, such as software developer, software engineer, and site reliability engineer (SRE). In this article, we’ll look at yet another related position: DevOps engineer.
The principles and practice of DevOps are still evolving and finding new applications within organizations. But, these days, a DevOps approach is key to successful digital transformation, cloud computing, security, site reliability, and more. Within this scope of continuous change, DevOps engineers play a crucial role.
The DevOps Role
According to Red Hat, “DevOps is all about the unification and automation of processes, and DevOps engineers are instrumental in combining code, application maintenance, and application management. All of these tasks rely on understanding not only development life cycles, but DevOps culture, and its philosophy, practices, and tools.”
The role of DevOps engineer, which involves coding, scripting, re-engineering, automating, collaboration, and communicating, is fundamentally an engineering role, says Eveline Oehrlich. And, “engineering is about innovation, with creativity being a basic human trait that drives the development of new technologies and new products, processes, or services,” she writes.
Thus, a DevOps engineer’s role, according to Glassdoor, combines an understanding of both engineering and coding to innovate and improve processes and performance. “From creating and implementing systems software to analyzing data to improve existing ones, a DevOps engineer increases productivity in the workplace,” Glassdoor says, and strives to bring balance to various aspects of a project, including such complex processes as CI/CD, site reliability, and infrastructure requirements.
Skills and Responsibilities
DevOps engineers need to be familiar with how to manage an IT infrastructure that supports the development of software code, and the position requires a broad range of general skills, according to Insider Pro’s Career Roadmap. These generally include:
- Knowledge of major software development languages, such as Java, Python, C, C++, and Go
- A broad understanding of development tools
- A strong background in system administration
- Experience with infrastructure automation and configuration management tools
- Familiarity with cybersecurity tools and processes
- Strong testing skills
According to Glassdoor, the specific responsibilities of a DevOps engineer may include:
- Analyze current technology utilized within the organization and develop steps and processes to improve and expand them
- Develop processes to facilitate collaboration between teams
- Create and present practical demonstrations of proposed solutions
- Provide detailed specifications for proposed solutions including materials, workforce, and time requirements
- Provide clear project goals and develop steps to ensure timely implementation and progress
- Work with others to maintain necessary hardware and software
- Mentor and train other engineers and developers
- Seek to continually improve processes throughout the organization
- Work with project management teams to successfully monitor progress and implementation of initiatives
And, according to Dice, the specific job skills and requirements may include:
- Bachelor’s or Master’s degree in Computer Science, Engineering, Software Engineering, or a relevant field
- Strong experience with Linux-based infrastructures, Linux/Unix administration, and cloud technologies and tools
- Experience with open source technologies and cloud services
- Experience with databases, such as MySQL, Elasticsearch, Redis, and MongoDB
- Experience with project management processes
- Experience working with tools such as Puppet, Chef, or Ansible for automation and configuration
- Strong communication skills and ability to explain processes with team and management
- Strong time and project management skills
In today’s tech landscape, “the old-school IT silos are gone,” writes Neelan Choksi, “and every engineer must be more well-rounded and contribute more than just the activities traditionally associated with their job title.” With the overlapping roles and responsibilities of DevOps engineers, software engineers, SREs, and others, it’s important to keep your skills up to date and stay informed about industry best practices. You can learn more from the resources below.
- DevOps for beginners: Where to start learning and focusing by Tim Beattie
- DevOps Tutorial for Beginners: Learn Now (Training Course) from Guru99
- Following the DevOps Career Arc From Beginner to Top-Tier by Yael Grauer
- IT careers: How to get a job as a DevOps professional by Pete Sosnowski