Next winter I’ll be entering my third year as a DevOps Engineer. When you first break into this field there is an overwhelming amount of things to learn. Frankly, this will always be the case. But I’m reaching a point where I have gained experience with most of the main areas and tooling, and I can start seeing the relations between them and how they compare to one another.
Just like any other job or activity, there are things that you like and that suit you well, and there are things that you don’t like. And now the first phases of overwhelm are confidently behind me, I’m starting to learn the things I prefer doing over others.
Being a DevOps Engineer does not mean you get to write code all day. I’m currently working in an organization where we’re not working fully DevOps yet. Rather than deploying many times in small increments, we are still using patching windows. Managing infrastructure in this way means you’ll need to communicate with teams to schedule the patching and submit changes to the approval board. It can involve a lot of emailing and talking back and forth. And sometimes things go wrong and everything needs to be rescheduled again. Although it is valuable experience, and I certainly have the communication skills to handle these kinds of situations, I’m learning that I lean more towards the dev side of things.
Today was a fun day at work. I’ve been working on a PR for a while whenever I wasn’t required to work on tickets. The PR involved refactoring a Bicep template for our Azure Key Vault deployments, which were using parameter files with a lot of repeated code. After getting a lot of good feedback on my code changes, and submitting it for review multiple times, it was finally approved and I could get to work.
I used bash, jq and vim to clean up the parameter files for each workload and submitted PRs. My colleague, who helped me with the PR’s, was standing by and ready to approve them as soon as I submitted them. Some pipelines ran into some trouble and required a few more PR’s to fix, and there was a bit of pressure because we needed to get the pipelines working before any other changes needed to be deployed the next day.
By working together like this we managed to clean up 2850 lines of code in one day and it was a great feeling to get this job done. I had been working on this for a couple of weeks and it’s so satisfying to move that ticket status to “done”.
I really enjoy the coding! And I really enjoy working with Infrastructure as Code! Somehow it really gives me a lot of pleasure knowing that the code I’m writing will be transformed to running infrastructure after it is submitted. I love writing programs in my free time as well, but there is just something magical seeing your parameter file being turned into a functional Kubernetes cluster or Key Vault.
Working as a DevOps Engineer, I’m generally having so much fun. I really enjoyed myself when I was learning jq and used scripts to change hundreds of lines of code at a time and submitting them as a PR. And some days, the work is less enjoyable, but it is all part of the job. It all serves to deliver value to the end customer, and if I can have fun most of the time while delivering value, I know I’m in the right place.
In any case, there hasn’t been a second during these past two years where I regretted my choice of becoming a DevOps Engineer. I love my job, I found my passion in my work, and I’m so excited for the future. Cloud computing is never standing still, Kubernetes is starting to become more and more popular, and my skills grow with every day that passes.
I’m a happy camper.
Links:
202305042005