By Steven Marchesani
Sr. DevOps Engineer, Logicworks
Developers and systems engineers often ask me, “How do I become a DevOps engineer?” or “How do I get into DevOps engineering?” Quora and Reddit are full of such discussions.
The answer is that most DevOps engineers come from one of two paths:
- Systems engineers who got into automation, containers, etc. in order to keep up with our new cloud-centric world
- Software engineers who were already comfortable writing scripts and automating processes, and fell in love with nitty-gritty of server management.
Both paths are valid; I happen to come from old-school systems engineering, but most of my team are former software engineers. The good news is that if you’re already a software engineer or systems engineer, you have many of the foundational technical skills you need to jump into a DevOps career. (If you’re brand new to programming, my advice is to learn software engineering or systems engineering first. I’ve never met anyone who went from zero to DevOps.)
But beyond the technical skills, certain key qualities distinguish DevOps engineers from other IT professionals. The following list will help you determine if you’ll make a great DevOps engineer:
1. You have an eye for automation
You know when it’s a good idea to automate, when it’s a bad idea, and how to tell the difference. Automation is a double-edged sword. It can make it easy to do something well, or easy to break a lot of things very quickly.
All the DevOps engineers I know love automation and dislike manual processes. Whatever is code takes on all the benefits of code: repeatability, testing, etc. DevOps engineers get excited when a manual process gets automated, and when their teammates benefit from faster, less risky processes. They have an arsenal of tools in their toolbelt to write scripts and integrate open source tools.
2. You’re strategically lazy
DevOps engineers don’t like doing the same thing over and over again. They want to solve a problem once and be done with it. Hence their love of automation.
3. You’re serious about learning old-school IT concepts
Some software engineers who get into DevOps think they won’t have to get in the weeds on things like load balancers and process monitoring and Squid proxies. But even though you can get managed services and PaaS solutions to take care of this stuff for you, knowing how they work will get you a lot further than just assuming they’ll just work.
4. You’re not married to a single platform
We all have our favorite platform. But the best DevOps engineers try to be platform agnostic, and write solutions that work for as many platforms as possible. Don’t marry a platform, because you never know who’s going to need to use your solution.
5. You enjoy working in a team & are good at advocating for your ideas in a group
DevOps is not a good career path for people who feel like they know best, and everyone else should leave them alone. Often engineers on “DevOps teams” are responsible for creating new processes and getting different teams on the same page. They have to communicate change to other engineers who don’t like change. If you’re one of those programmers that wants to be alone with their terminal window all day, DevOps is not for you.
6. You’re patient with server-huggers
There will be times when another team or a client decides to hang onto a piece of legacy technology, no matter how hard you try to convince them otherwise. It’s easy to get frustrated, especially when you’re offering a better solution.
While it’s harder to build a resilient, scalable, cloud-friendly system with legacy limitations, it does push us to come up with a more creative solution. Great DevOps engineers know when to stand their ground and when to accommodate legacy requirements. As a former server-hugger myself, you may even find yourself agreeing with them every once in a while 😉
7. You’re not afraid to fail (and fail fast)
Try something, and if it sucks, move on. But you’ll always learn something.
8. You like change and are curious about new platforms
No matter what IT career you choose, you’re going to have to keep up with new technologies. But I’d venture to say that DevOps engineers have to be even more comfortable with change than most. Serverless? AI? Big Data? You should probably know your way around all of these concepts, and they’re all changing every day.
A great DevOps engineer is genuinely curious about these new technologies, and even though s/he is not an expert, s/he has enough familiarity to suggest infrastructure solutions to support applications built with these technologies.
A DevOps career path is challenging, but if you have some or all of the skills listed here, you’ll make a great DevOps engineer. If you’re a software engineer or systems engineer who’s interested in infrastructure automation, DevOps might be the right path for you.
If you’re currently a DevOps or automation engineer, what do you think of the list? I’d love to hear your suggestions for other qualities of great DevOps engineers in comments.