Many of you may be wondering if the DevOps career is for you. 🤔 If you have been following and watching my videos you probably already know that I love DevOps and have a lot of passion for it, but is DevOps for everyone and what are some of the reasons why I personally like DevOps and chose it as a career? And what are some of the advantages that speak for choosing DevOps as a career in general?
I hope sharing my insights on this topic will be useful for some of you 😊
This is the written version of my new youtube video ✍️
1 - My personal preference 💙
I want to start with my own background and story of how I ended up in DevOps.
I started off as a software developer and in one of my software development projects, I started taking over tasks of configuring servers, configuring builds in Jenkins, configuring application packaging, etc. Or configuring things around Docker and running containers, making the builds faster, making tests faster, and so on. 🙌 And I noticed that tasks that were related to configuring stuff and optimizing processes were more enjoyable for me than programming. 🤓
Now, these are just a subset of tasks in DevOps. I was basically doing some tasks around CI/CD configuration, but DevOps is much more than that:
It spans the whole software development life cycle, essentially optimizing and configuring things for different parts of that software development life cycle.
Now if you don't know exactly what DevOps involves and what that software development lifecycle includes I have a dedicated video on that: What is DevOps?
So basically when you're doing software development, you are zoomed in into one specific part of that software development life cycle. When you're doing operations, again you are focused on a specific area of that life cycle:
With DevOps however, you zoom out from those specific areas and parts and start seeing the big picture or a bird's eye view of the whole software development workflow. And you start analyzing how each of those areas is connected like software development processes with Git workflows connect to CI/CD pipeline or CI/CD pipeline connected to infrastructure etc.
And you start analyzing, which areas need improvements, and which ones have bottlenecks: like development workflow is super optimized, so your team's generating new features fast, but the pipeline is slow and blocking the release of those features to production.
High-Level Thinking 🧠
Now what I also observed is that a different type of thinking is required for DevOps. You need high-level thinking connecting dots on a high level:
Width instead of depth. Like an architect making the plan of the whole building and planning how different parts are connected and implemented and then you have different specializations, who actually carry out that plan. So I personally like that role a lot 😇
2 - Diverse tasks and rewarding 💎
And because DevOps covers the whole software development life cycle, the set of tasks or the range of tasks is much more diverse and rich in variety:
Like you could be looking at front-end code and optimizing the application packaging process
The next thing could be configuring deployment servers on the cloud
Then scripting a program to automate some infrastructure configuration tasks
And if you're like me this may be much more interesting and exciting for many people and again this is probably a personal preference.
Go broader
Some people love focusing on their area of expertise deepening their knowledge in it. Like I learned JavaScript and then I just learn JavaScript to the most advanced level, with different frameworks, different features, etc.
And there is enough to learn for years in each language and technology, but for many, this can be boring. If you're like me you want to have a more diverse set of tasks, you want to go broader.
I like architecting processes instead, instead of specializing in just one tool or technology I like to understand the whole software development life cycle process and how it all works and more importantly how I can optimize different parts of that life cycle, identifying opportunities for improvements and optimizations 🙌:
like packaging, the application takes too long
setting up the environment for tests is too slow
security of the build image is not properly checked
or maybe not enough bugs get discovered before deploying to the end environment
or the build process is taking too long
or we find out about issues in production too late
maybe the operation team has a lot of effort and needs a long time to update and maintain the Kubernetes cluster
it takes too long to approve and be confident about deploying new features into production
...
As a DevOps engineer, you can solve all these challenges, and that in itself for me is very fulfilling work: Improving things, optimizing, making things faster, automating, etc. 🚀
And this leads to the next reason, which is the impact.
3 - Impact ⭐️
As a DevOps engineer, you can have a huge business impact in your company by having a good understanding of the whole software development life cycle and improving and optimizing it. And again can be super fulfilling to know that your work has such an impact and affects many people eventually.
Impact on co-workers 🫂
You can build processes through automation that make the work of your fellow team members in the organization much easier. Smooth well architected processes mean that engineers can focus on their areas of expertise and generally enjoy their work much more, instead of doing some boring manual things instead. So you can make the lives of developers, operations, testers, project managers, and so on easier.
Huge business value 💎
But you also bring huge business value. Well-implemented DevOps processes will lead to faster time to market and constant improvement of business quality, cost savings, etc. This means end users are happier and the company can innovate and deliver much better. So you have an impact on the whole business.
And this brings me to the next point which is the demand for DevOps and salary.
4 - Demand and Salary 💵
Since this is a position that has such a huge impact, it automatically means that you are super valuable for your team and your company because you literally have a direct impact on time to market, cost savings, how satisfied the engineers are with work, etc. And companies see that value. 👀
That's why the demand for DevOps engineers has increased so dramatically over the past few years. 📈 Organizations that have implemented DevOps practices are in fact seeing the benefits of high performance, and much faster deployments compared to competitors and logically are willing to pay high salaries to find DevOps experts.
The demand is very clearly visible on job platforms as well: indeed.com a major job platform, for example, had a 75% increase in DevOps job listings and on LinkedIn there was a 50% increase in mentioning DevOps as a skill.
And combine the huge value you are bringing to the company and the high demand for DevOps skills with the fact that there are very few engineers, who actually have those skills and can fill the role. This means if you are a DevOps engineer you are highly demanded and companies will pay a premium for having you. This means ✅ flexibility, ✅ lots of options, ✅ high salary with lots of added benefits. So you have super high leverage.
This means if you actually learn DevOps you will drastically increase your value on the global marketplace and get a whole new set of opportunities out there.
And I think people should definitely take advantage of this opportunity but I also know learning DevOps can be daunting and difficult and that's exactly why we created this full educational program to give people the opportunity to learn all the necessary skills to become a DevOps engineer. And we created our program to give you exactly the skills and knowledge to confidently go out there and apply for a job as a DevOps engineer, who can help the company implement the DevOps processes from day one and that's what is extremely valuable for employers.
Company perspective 🏢
From the company's perspective, when they are looking for a DevOps engineer they usually write a job opening and either they cannot find any DevOps engineer or get candidates that want to be DevOps engineers, but don't really have enough knowledge yet. 😐 Like they have been developers or can configure servers, but they don't really have any DevOps or core DevOps skills.
So usually what companies do instead is upskill their existing employees or hire young engineers and train them specifically in DevOps. Because if they can't find them, they should train them. 🙅🏻♀️ But again to train people to become DevOps engineers, you need a DevOps engineer to actually train them. 🙉 So we have a lot of companies, who upskill their engineers in DevOps using our boot camp, which is another proof that companies are willing to invest in building DevOps know-how internally to implement DevOps throughout the organization.
DevOps was not meant as a role
Now I know that there is some controversy around DevOps as a role. That it was meant as a set of concepts and principles and not as an engineering role, but the reality is that there are real DevOps engineering job positions and people who actually work as DevOps engineers 🤷🏻♂️ and I actually made a dedicated video on that as well, explaining the topic and how it all evolved so if you're interested you can check it out: What is DevOps?
5 - Continued learning opportunity 📚
Finally, since in DevOps, you are covering the whole software development lifecycle, it means you work with lots of tools, so you need to be constantly learning and expanding your knowledge.
Now this might be an advantage, if you're like me and really enjoy learning new stuff all the time or it could be a disadvantage if you want to focus and solidify knowledge in a few technologies:
This is actually a necessary thing since DevOps is still evolving and there are a lot of dynamics and changes in the DevOps area. So you have new tools, new concepts, and solutions that people come up with all the time and as a DevOps engineer, you need to actually stay up to date and see what new solutions are available to make the processes even better.
Also, DevOps processes are never completed, you don't just build stuff and complete your work once, it's a constant ongoing process. Just like developing an application, you don't just create an application once and you're done, you make improvements and continue making the application better and better, adding new features, fixing the bugs and issues, etc. It's the same thing with DevOps processes. So lots of new things to learn all the time.
Downsides 🤯
As I said this could also be a disadvantage and of course like with everything there are pros and cons here as well.
DevOps does come with some challenges as well, like
too much to learn and
too broad of responsibility can be overwhelming for some people.
Also often there are unclear requirements because companies themselves don't know what DevOps is exactly. So you may get pushed into some role or in doing tasks, which are not really in the DevOps area. 🤨
Another big challenge is communication with various teams in the organization and it can be frustrating if they don't cooperate. 🗯
Own video: "Is DevOps right for me" 🎬
Check out this video "Is DevOps right for you? 13 points to consider" to find out whether DevOps is right for you.
Career path is extremely personal 💡
Now finally I want to mention that choosing a career path is extremely personal and depends on many personal circumstances. For me being a DevOps engineer is working on a wide variety of tasks with a wide variety of technologies and tools. It's understanding the bigger picture and being able to investigate issues efficiently. And for me, the impact and fulfillment from the work definitely outweigh the challenges 😊
Now I hope this gave you good insights into DevOps and that I could provide some valuable information about it. 😊 It would be really interesting to know what are your experiences in DevOps and your personal preferences.
Share them in the comments for me and for others 👏
Like, share and follow me 😍 for more content: