During my 12-month internship at IBM, I took up a role in DevOps for IBM MQ. This was a role that was quite different from the experience I already had, so I saw it as a great opportunity to pick up some new skills and experiences. Keen to get the most out of the 12 months that I had there, I dove straight in to learning new things. I took on a project creating and deploying two new NodeJS microservices onto a Kubernetes cluster as part of a larger, existing application, which helped me learn a lot about Kubernetes itself and the concept of containerisation. My project involved creating new APIs, as well as utilising existing ones, and making use of messaging systems to facilitate communication between each microservice. Working on an existing codebase was also a new experience for me, having worked mostly on my own personal projects up to this point. As part of a team, I gained valuable experience in using Git and GitHub as part of a team, using proper practices such as feature branches, Pull Requests and Reviews. I then had the opportunity to tackle some work involving our automated build system, which made extensive use of Perl scripting. The scripts I worked on had to work across a huge variety of platforms, so this work gave me a better understanding of how to write cross-platform code that is reliable and fast.
As I gained experience in the tools and processes of the team, I volunteered to take on issues that were raised for our internal tooling, which allowed me to gain confidence and experience working under more urgency, especially when the issues raised were critical. I also delivered demonstrations of features I had written, which built my valuable presentation and teamwork skills.
Towards the end of my internship, I was offered and accepted an extension for a further year, working remotely part-time during my studies at University. I was delighted to receive this offer as I believe it reflected all of the hard work that I put in over the initial 12 months that I worked at IBM.