Head in the clouds about getting the cloud in my head - by Casper Dijkstra
At Xccelerated we believe software engineering is the foundation to become a Cloud engineer. With our 13-month program we transform software engineers into highly in-demand cloud developers/engineers and learn them how to build cloud-native software in a secure and compliant way using the DevOps way of working.
Last year, Casper started his journey from software engineering to cloud engineering with Xccelerated and started a challenging job at Xpirit’s emerging DevOps services team. He shares his story and experience below.
My transition from tradition software development to Cloud Development
Life as a software developer suited me pretty well. Here I had already learned how to write decent code, how agile scrum can speed up and improve software development and more importantly that I really like dev-ing. But I also had the impression that a lot of valuable time was spent on manual processes (aka toil) when running software on-premises. Manually running static code analysis tools, writing release notes, gathering signatures are examples of activities preventing traditional software developers from doing what they like the most: devising solutions and developing new cool features.
Around 80% of business throughout the world uses some kind of cloud functionality
And more and more companies are going serverless each week. This trend was interesting for me, mostly because of two reasons:
Cloud computation is very future-proof and becomes increasingly more valuable.
There is a vast variety of technical challenges in the realm of cloud engineering.
My start as an Azure Cloud engineer
Having the motivation to make this career change is one thing, but how do you get in this challenging field of work? My working experience as software developer enabled me to write decent code, but distributed systems were a pretty new realm for me!
I was glad to find out that Xccelerated offered an interesting cloud engineering bootcamp. Time to make the transition from traditional software development to cloud development, and to get good at it quickly!
My DevOps journey
The first month at Xccelerated consisted of a full month bootcamp with five colleagues. We covered all the Azure fundamentals (pipelines, function apps, alerting, application insights and event hubs to name a few) and a lot of this could be put into practice at my current job afterwards. What I really liked about the bootcamp is that you’re really working together with a group of talented developers who are eager to learn about Azure, the bonding in the group makes it much more engaging and interesting to learn about cloud engineering compared to watching tutorials yourself, and we’ve learned a lot from each other’s experiences and do’s and don’ts.
The Azure cloud engineering bootcamp got me acquainted with the intricacies of the Azure cloud, but that’s not what I liked the most. What made me truly excited about the program is that Cloud engineering is not limited to one specific platform. I believe that time spent on generalities like DevOps practices, design patterns and toil elimination is equally important as getting specialized in one kind of platform. Those broader skills like CI/CD, test-driven development, Infrastructure as Code, event-driven architectures and a familiarity with cloud-agnostic technologies (like Terraform, Packer and debugging tools) have helped me a lot to progress as a cloud engineer and made me feel way less bound to one specific cloud provider.
While I had some familiarity with Docker and (less so) with its orchestrator Kubernetes already, I for instance had no idea how to run unit tests on dynamic Docker images. That you can absolutely be sure that there’s no wrong network configurations, or to stop the build when the image size gets out of hand is very useful. Also did you know that the Infrastructure as Code no longer has to be written in configuration languages (like json or yaml), but that you can nowadays use your favorite programming language for this?
The bootcamp first got me up and running as a cloud engineer, then contually create smarter workflows, use cloud features more efficiently and to share lessons learned with Xcceleraters on return days! While many of these technologies are quite new already, it is very cool to learn about new advances in these emerging technologies and about Azure previews. This ensured that we continuously improved: the ultimate DevOps proposition
And…what exactly does a cloud engineer do?
This bootcamp has enabled me to get an impactful and challenging job at Xpirit’s emerging DevOps services team. My first assignment at my job was already pretty cool; ensuring that crucial parts of our distributed system, the Kubernetes clusters, would be brought up to date. We did the same migrating our .NET (ASP/Core) applications to their newest versions. If any of these would break down due to breaking changes, there would be consequences.
Then I spent some weeks tweaking our Azure monitoring tools (like application insights) and mostly optimizing our alerts to ensure that our DevOps team is alerted by the right kind of triggers.
More on the dev-side on the spectrum, I’ve implemented event handlers for certificates that are about to expire/rollover in the application. I’ve added a lot of unit and integration tests to further enhance our code coverage (and to test edge cases) and to get good rest at night knowing that our application does exactly what it is intended to do. I am now learning about chaos engineering to test our entire application including its interdependencies of components (databases, AKS clusters, key vaults) and corresponding latencies and error codes to get a better insight of the hidden complexities and vulnerabilities in the system.
My responsibilities have therefore been an interesting interplay between building new features, keeping systems up to date and even that of… a cloud doctor. Are we capable of determining the health of our system, and do we know where to perform surgery in case of an incident? Do we have confidence that they eliminate false positives and negatives? Can we identify the weak points in this infrastructure and are our tests sufficiently? The interplay of developing and contemplating how the reliability of web applications can be improved is an interesting one that I like about my job.
What I have described above is one possible route for cloud engineering. What about my Xccelerated colleagues, what are they up to? Companies they joined are ABN AMRO, Nationale Nederlanden and Lely, focusing mostly on automatization, Kubernetes or pure software development. Interestingly we all have widely diverging interests and responsibilities, which makes it interesting to share experiences on the return days.
Are you a software engineer and became interested in becoming a Cloud engineer?
Become a Cloud Engineer through the Xccelerated Cloud Engineering program. In 13 months, we will teach you many topics mentioned above and connect you with one of our partner organizations.
The program starts on August 1st. Apply now, or find more information about our organization and the full training program.