My first month as an apprentice software engineer at endjin
I have just completed my first month working full time as part of endjin's 2021 Software Engineer Apprenticeship Programme. As a Biology graduate, I wasn't entirely sure what to expect, as this opportunity was very different to anything I had been exposed to previously. My hope for this blog post is to share with you my experience of the first month of my apprenticeship as well as provide some insight into working in technology from a non-computer science background.
From Biology to Technology
After I graduated from the University of Manchester with a Bachelor of Science degree in Biology I was admittedly unsure of which career path to take. Although I enjoyed my course, I didn't feel particularly excited about a traditional laboratory role. I realised the aspects of my course I found the most interesting were the coding aspects, such as completing a module learning the R programming language for statistical analysis. So, I began to explore opportunities in technology, including completing two Code First Girls online courses; Introduction to Web Development and Python Programming. This experience inspired me to look for a graduate job within the technology sector and ultimately I landed my first tech role at endjin.
Before I came across endjin at my University's careers fair, my perceptions of the tech world were that you needed a computer science degree in order to have a career as a software engineer. However, endjin were looking to hire graduates from any STEM background, which reflects the diverse range of degree disciplines of their current team. Enthusiasm for tech, problem-solving ability and a passion for learning were the main skillset endjin were looking for in their recruitment process, which was very different from the many other graduate schemes that required a computer science degree as a prerequisite. This completely changed my perception and showed me that your potential is more valuable than existing technical knowledge.
Starting the Apprenticeship
In my first week at endjin, I was really thrown in at the deep end. I was involved in shadowing various calls with clients including a number of Brain Trust sessions and a pre-sale call. I found this was valuable in generating some insight into how the company operates. What separates endjin's apprenticeship scheme from a traditional software engineering graduate programme is that developing our technical skills is not the sole focus. Rather, endjin encourages their apprentices to be involved in all elements of the business, developing their skills in ten core competencies. This includes consulting, project management, business development and communication. We can clearly track and visualise our progress in developing these core competencies in Career Canvas – endjin's career development framework.
Training
Around half of our time in the first year of the apprenticeship is dedicated to training. The first element of our technical training is an even split between online training courses, books and attending conferences and webinars.
This month I have started to build my knowledge of the Microsoft Azure ecosystem through the Azure Fundamentals training pathway on Pluralsight. It has definitely been in a steep learning curve. From knowing absolutely nothing about the cloud to trying to get to grips with all of the products and services in Azure. Although there is a lot to learn, this fundamental knowledge is important as it will be utilised in the projects I will be working on throughout my apprenticeship.
Towards the end of the month, I attended a four day webinar on Behaviour Driven Development (BDD) and SpecFlow by Gáspár Nagy. Here, I was able to develop an understanding of the three main practices of BDD (discovery, formulation and automation) and an overview of the .NET BDD framework – SpecFlow. I was then given the opportunity to put my newly acquired skills into practice through creating and implementing executable specifications for endjin's content platform using the BDD approach. This was a collaborative project between myself and the other apprentices with guidance from more experienced members of the team. Getting 'hands-on' experience of coding has definitely been beneficial to my learning process. I went from having a surface level understanding of BDD and SpecFlow to being able to successfully implement step definitions. I was also able to get more comfortable with writing and refactoring code and exploring the various features of Visual Studio.
I have also started to learn the C# programming language through the C# Fundamentals training course on Pluralsight and Ian's book 'Programming C# 8.0'. It has been interesting to delve into a new programming language and then be able to apply these coding skills when creating the step definitions for endjin's content platform.
Remote Working and Collaboration
Even though endjin is a remote company, this does not mean that you work in isolation. Regular pairing sessions with more experienced members of the team are an important element of our apprenticeship and serve to solidify the knowledge gained from training. We also have regular team meetings throughout the week, including team sync-ups on a Monday and Thursday and daily morning calls with the apprentices to discuss our aims for the day. The 'Show and Tell' session on a Friday afternoon gives everyone the opportunity to share with the rest of the team anything interesting they have been working on that week. This session also allows us to develop our presenting skills and consolidate the concepts we have been working on. Outside of this, we have technical one-to-one meetings with Ian where we can ask focused questions about anything we are struggling with or would like to discuss in more depth and more general one-to-one meetings with James to reflect on our progress.
On top of all of the collaboration embedded into our week, we also run regular in-person team meet ups. This was definitely a highlight of my first week at endjin. The whole company travelled to Cambridge where we enjoyed an eight course meal with many glasses of wine and champagne. It was great to meet everyone in person, especially so early on in my apprenticeship.
This combination of team-based activities definitely creates a collaborative environment, and allows everyone at endjin to enjoy the freedom of remote working without the feeling of isolation.
Reflection
I have really enjoyed my first month at endjin. I feel I have experienced the best possible start to my software engineering career and I am grateful for the opportunity that endjin has provided me.
Looking back, I have progressed so far already – from learning about cloud computing to starting to code in C#, a programming language I was unfamiliar with previously. I am beginning to establish a strong foundation of knowledge that I am eager to continue to build upon throughout my apprenticeship.