So, You Want a Career in DevOps? Here's Where to Begin
No matter the type and complexity of a project, you need to master core DevOps knowledge to land a job and stay competitive.
Join the DZone community and get the full member experience.
Join For FreeOnce during an interview for a senior DevOps position, I had an amusing experience. I had covered everything the interviewer expected, anticipating their questions, when boredom suddenly swooped in. To switch things up, I handed a marker to the two engineers at the interview who were assessing my knowledge and asked them to explain how their DevOps processes were organized. As they walked me through the setup, I started asking why certain decisions were made. The engineers and the interviewer were surprised but raised no objections.
I got that job. Yet, the lesson between the lines is that there are no ready-made templates for job interviews, and unexpected twists are inevitable — especially for a DevOps position.
DevOps is like a one-person orchestra, overseeing a wide range of areas, making various system components work together seamlessly, and improving project performance. This role can be unpredictable and requires diverse knowledge. You must be proficient in at least five different IT areas to successfully pass an interview. That will take a lot of your time, effort, and nerves — but you want to be a DevOps engineer, don’t you?
Behind the DevOps Scenes
Skilled DevOps engineers are highly paid specialists, but almost no one understands what they actually do. They often struggle to explain their responsibilities to family members, and when a child's school asks about their job, they might just say they work in IT.
The truth lies in the middle. While DevOps engineers are expected to have expertise across various IT fields, their depth of knowledge can range from broad and shallow to deep but narrow in a particular area. Similarly, different projects will require different hard skills, while soft skills like teamwork and communication will always be key to success in this role (I won’t focus on soft skills in this article).
You can expect pre-screenings (demo interviews) and full interviews with potential employers. This common practice saves time for both parties, allowing the employer to clarify from the start the specific skills and technologies their project requires at the moment.
You Are Not a Junior
DevOps engineers are not junior specialists in 90% of cases. You might be at the beginning of your DevOps career, but you're expected to have hands-on experience in other IT roles (system administrator, tester, or programmer). I'm not discouraging you from building a DevOps career from scratch, but I want to warn you that it could be a bumpy road if you choose that path.
Here is my list of must-have skills for competitive DevOps engineers, presented in no particular order. Feel free to go through it using your own judgment.
- Base knowledge
- Network
- Cloud
- Infrastructure as code (IaC)
- Continuous monitoring (CM)
- Scripting
- Code repository
- Monitoring
- Continuous integration, delivery, and deployment (CI/CD)
- Containers
- Database (DB)
- Operating system (OS)
If you learn IaC, you can't do it without the cloud, because IaC is what sets up the cloud. If you study Monitoring, you need something to monitor: containers in Kubernetes — hello, Kubernetes knowledge! — and virtual machines — hello, Windows and Linux knowledge! If it is CI/CD, you need a cloud service, Kubernetes, or a virtual machine to deploy an application.
Starting With the Fundamentals
You should know DevOps best practices, how DevOps engineers work with developers, and why truly understanding concepts like CI is more important than memorizing them.
Network
A controversial point is the need for deep knowledge of networks. I believe that if you have even basic experience with networks, you can understand how DNS works, as well as the differences between Application and Network Load Balancers. Some can easily handle dynamic routing when protocols like RIP, EIGRP, and BGP are more than just jargon.
Cloud
There are many services in each cloud, and I’m not going to list them all. A DevOps engineer should have experience setting up and working with core services, including networks, subnets, virtual machines, storage, load balancers, security (specifically access control), linking CI/CD to your subscription, deploying PaaS or SaaS, databases, and standard monitoring and alerting tools provided by each cloud provider.
The perfect cloud doesn’t exist. The cloud is simply a tool for specific use cases, and you should be ready to choose the right tool for a particular project. Learning two clouds at once is a waste of time while mastering one gives you a solid foundation to easily pick up others.
Infrastructure as Code
Terraform, CloudFormation, ARM, Bicep, Pulumi — each tool has its strengths and weaknesses. For example, Terraform is a popular, but not necessarily a great tool. It’s important to understand how it works and what happens when you run init or apply. Learn best practices for organizing directories in your project. If you don’t get it right from the beginning, you will have to rewrite everything from scratch in Terraform.
Continuous Monitoring
You must have knowledge of the automatic deployment of necessary configurations to a large number of targets. Ansible, Chef, and Puppet dominate this area, and you need to understand how each tool works and what it does. At the very least, you should know what the Push/Pull model is and how it operates, how to tag targets, how to use different configurations, what is required to make everything work, and how to connect all the dots in the CI/CD chain to achieve continuity.
Scripting
I might catch a few tomatoes for this, but you need to understand what you’re using and why. DevOps engineers often say that BASH is different from PowerShell or Python just because it’s pre-installed. When someone claims they’ve used scripting, the questions immediately arise: how to handle credentials, how to work with variables, how to structure loops, what about logging, whether it is possible to run tasks in parallel, how to catch specific errors, and more. All those points are crucial. Remember, if you ask AI to write a script and then you just run it, that doesn’t mean you know how to script.
Containers
There’s a lot to cover here. It all starts with Docker and writing Dockerfiles. The key is knowing the cornerstone practices for writing them. Once you’ve got your image ready, the next step is deploying it. Naturally, Helm and Kubernetes come into play. You might wonder, "What’s so tricky about Helm?" If you’ve ever written a Helm chart, you’ve likely encountered the .tpl file, which handles much of the complexity behind the scenes. Since we’re deploying in Kubernetes, you need to understand whether you’re using Deployment, DaemonSet, or something else. You should know which node it will run on; how many resources it will consume; how it will scale; who can access the pod; and how it will handle external traffic. If you have that knowledge, you’re on your way to mastering Kubernetes.
Continuous Integration, Delivery, and Deployment
It may seem like there’s not much to discuss about CI/CD — it builds the code and delivers it to the target. However, if you want to be recognized as a DevOps professional, you should know the difference between CD (continuous delivery) and CD (continuous deployment), understand what CI (continuous integration) means, know various branching strategies, and understand why the canary (an ornithologist’s true love!) is used in DevOps.
Databases
Last but not least, you need to understand databases. A few years ago, I’d recommend having deep knowledge of them, but by now, things have become easier. A cloud provider will handle almost everything for you: backups, security, resource management, and performance. You just need to set up the database, have a disaster recovery plan (DRP), and make sure you're not overspending.
Beyond Technical Skills
You've learned everything and arrived at the long-awaited interview at the company you're eager to join. You're calm and confident, knowing you're well-prepared, but then the first question catches you by surprise: how do you handle conflicts in a team or with a client? This is when you realize I was right in saying that technical skills alone aren’t enough, as soft skills are just as crucial. Be ready to showcase your soft skills too — and may DevOps be with you!
Opinions expressed by DZone contributors are their own.
Comments