Sometimes the best career fields are ones we don’t know too much about. A little over three years ago, if you asked me what a software developer did on a daily basis I would probably mumble something about mysterious command line interfaces and social isolation. Thankfully someone took the time out of their day back in 2021 to really describe to me that none of that is true. The profession is highly transparent and very social.
I’ve been working as a full time software developer for a little over a year now, and am already starting down another new career path! No, I’m not leaving software development behind. I’ve been brought on as a DevOps engineer consultant for a major pharmaceutical company. I’m still in that nice spot where I can still remember the trepidations of becoming a new software developer, and more recently a DevOps engineer.
Whether you work in software or you are new to the field, changing career focus can be daunting. Today I want to enlighten you to what DevOps engineers are and maybe encourage you to venture down this career path. I’ll include some context of what the profession is, and some helpful things I wish I would have known before I started as a DevOps engineer.
What Are DevOps Engineers?
You may be asking, what is a DevOps engineer? Well, that takes some context around where they exist and what kind of environment they exist in. DevOps engineers sit between software developers and operations personnel. Developers are generally the folks who write the code, while operations folks focus on deploying, monitoring, and maintaining applications. DevOps engineers bridge the gap between these two functions by easing workflows, increasing speed of delivery, and ensuring security throughout the process. In the end, DevOps engineers, much like operations and development, are focused on getting quality software into the hands of customers. 8th Light has published a number of articles that explore specific practices and challenges in DevOps, and Amazon Web Services provides a deeper overview as well.
What Does a DevOps Engineer Do?
DevOps engineers manage the workflows and delivery cycles for software teams all across the organization and all of its digital products. They create shared systems that allow other teams to thrive, and they create custom solutions for their platform’s unique needs.
DevOps Engineers Support Teams
Now imagine the following: You are a DevOps engineer supporting a large healthcare corporation. You have seven teams of engineers, ranging from four to seven developers each, delivering applications using multiple different programming languages. You have a bit of .Net in C#, some Java, a bunch of bash scripting and even some PowerShell! That is a lot of developers and complexity to support.
Your job as a DevOps Engineer is not to understand all of their applications with the same depth as the team, but to understand the team’s difficulties and frustrations when working with their apps. Your main concern is ensuring obstacles are removed from their path in the delivery pipeline, processes have quick response times, and only high-quality code is reaching the deployment cycle.
DevOps Engineers Create Custom Solutions
Your engineers already have a lengthy process flow to get code to production. They have to manually run unit tests, run user interface tests, run security analysis on their changes, and notify their seniors that their code is ready for review. Once that code is ready for deployment, your teams may have to send an email out to the operations team to schedule a deployment and generate the required reports to ensure that the code is up to government compliance.
As a DevOps engineer, you create automation solutions for their workflow. You can write custom programs that automatically test new code before it is uploaded to Github. You can even write custom scripts that run new code through a security analysis even before the developer sends it to their reviewers. All of this is created through the lens of improving your supported teams’ quality of life.
One great tool that I’ve been able to master in my first few months on the job has been Github Actions, and my colleague Emmanuel Byrd has written an introductory article on the tool.
DevOps Engineers Are Problem Solvers
As one of my team leads has emphatically pointed out, “anyone can build a website.” Although they might not be sustainable or well-written websites, I completely agree. The amount of documentation out there on every web framework is extensive. Sometimes it feels like just about everything has been done and has a StackOverflow post written about it.
DevOps is different because it’s so dependent on the implementation details. DevOps is composed of methods and best practices that have to be applied in a myriad of different situations. You’ll find great articles talking about the best methodologies of ensuring continuous compliance on AWS, but you’ll rarely come across exact instructions on how to integrate a 10-year-old legacy .NET Framework 3.0 application into a security workflow. As a DevOps engineer, you have to be flexible in your approach and be tenacious in figuring out solutions.
Some of the tools and examples of what I use every day are free for public and personal projects, and I encourage you to explore open source projects that pique your interest. If you are interested in checking out a tool that handles security check automation, try SonarCloud.
Can You Become a DevOps Engineer?
Only you can answer that question, but I have found the work tremendously satisfying. I get to improve the quality of life of engineers. I get to work on complicated problems and create novel solutions. I am constantly exposed to new technologies as the software world develops and I always feel like there are new learning paths to go down.
I won’t lie — the DevOps engineer career path is not an easy one and far from glamorous. This career field is all about support, and if you are doing your job, you will rarely ever be in the limelight. You enable others to reach their full potential by enabling their workflows and pushing good code quality, but you’ll rarely get recognition for it. You sometimes have to stand in developers' way by guiding them down the path of enforcing permissions and focusing on zero-trust principles, but you do know that the code that customers will receive will be highly secure. You frequently get to question process workflows and break down obstacles, but organizational norms are hard to change.
So if you are ready to impact the lives of software developers and operations personnel, I hope to see you on my DevOps team in the future.
If the points in this article interest you, I highly recommend grabbing a copy of the DevOps Handbook. If you want help implementing the DevOps mindset and improving your system’s reliability, you can reach out to our team.