Many of you may be wondering if 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 speaks 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 ✍️
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 are 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, 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.
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 😇
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 application packaging process
- The next thing could be configuring deployment servers on 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.
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 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 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 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 operation team has a lot of effort and needs long time to update and maintain 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 a very fulfilling work: Improving things, optimizing, making things faster, automating etc. 🚀
And this leads to the next reason, which is the 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 this again can be super fulfilling to know that your work has such an impact and affects many people eventually.
You can build processes through automation that make the work of your fellow team members in the organization much easier. Smooth well architected processes means 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 lives of developers, operations, testers, project managers and so on easier.
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. Which means end users are happier and 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 demand for DevOps 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 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, 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 these 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 premium for having you. This means ✅ flexibility, ✅ lots of options, ✅ high salary with lots of added benefits. So you have a 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 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 apply for a job as a DevOps engineer, who can help the company implement the DevOps processes from day one and that's what extremely valuable for the employers.
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 they 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 bootcamp, which is another proof that companies are willing to invest in building DevOps know-how internally to implement DevOps throughout the organization.
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?
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.
This is actually a necessary thing, since DevOps is still evolving and there is a lot of dynamics and changes in 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.
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 a 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. 🗯
But I plan to make a separate video, where I talk about advantages and challenges of DevOps as a career in general, so that you can decide whether a career in DevOps is right for you. 👍
If you don't want to miss it, you can subscribe and activate the notification bell to get notified: TechWorld with Nana
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 outweighs the challenges 😊
Now I hope this gave you good insights into DevOps and that I could provide some valuable information around 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: