When I first came across endjin's call for internship applications, I was already a month into my summer and had mostly given up with the idea that I would be doing anything other than slaving away at my part-time supermarket job, due to the countless number of interviews followed by rejections I had received from both placements and internship opportunities.
I decided to have a look at endjin and immediately was interested - their view on internships was something that struck me as being very different to other companies I had looked at. endjin seemed to have a huge focus on learning, they didn't expect you to already know everything and invited candidates from a range of backgrounds and not just the typical computer science students that many other software engineering internships ask for.
This different approach to internships really excited me and I decided to apply. The application process basically included 3 different stages, all done virtually - an initial short chat, a pairing challenge with one of endjin’s own engineers (or, endjineers), and lastly, an hour-long chat with the (entire!) company.
I've been through many application processes where the company has claimed that prior programming knowledge etc. was not required yet would then require candidates to pass an extensive coding test. This was disappointing for someone like me whose degree didn't necessarily include a large amount of programming but still wanted to be able to break into the tech industry. endjin, however, stuck to their word - I felt like my lack of prior experience wasn't a detriment and they were more interested in my passion for technology and reasons for wanting to have a career with it.
They understood that many people in tech originally come from very different backgrounds and for once, I felt like a decision I made a couple years ago when choosing my degree choice (which now feels like decades ago to be honest) isn't now stopping me from pursuing a career in something new that I hadn't considered at the time.
Before university, I had never really had the opportunity to do any sort of coding and so by the time I started gaining a passion for it, I was already quite deep into my degree choice and I soon knew Biomedical Engineering wasn’t something I wanted to pursue afterwards, and instead I wanted to go into technology – in particular, software engineering. Ever since I realised this, I have been trying to gain as much experience within this sector because I know post-graduation, when applying to software roles, I will be disadvantaged compared to computer science graduates in terms of my degree material.
I actually enjoyed the interview process - which is something I can't usually say. In particular, it was the pairing session which I did with Ian Griffiths. It basically was an hour-long coding challenge, but you weren't expected to know the language or anything; yes, there was programming involved but Ian essentially advised me on the coding aspect of it whereas on my part, it was about problem solving and showing the endjin team how I approached something completely new.
STARTING THE INTERNSHIP
I started my internship at the beginning of August - on a Friday actually, which is a weird day to start but I liked that it gave me a chance to start without feeling too overwhelmed.
The first week or so of the internship was basically all about introductions, getting to know endjin and its processes, and getting set up. I spent a lot of time shadowing meetings (both internal and with clients) and watching other endjineers work on pieces of code. I also had a few sessions where me and the other interns set up a virtual machine using Microsoft Azure - this was so that we didn't necessarily have to download a load of software onto our own machines and allowed us Apple Mac users to be able to use software that was not accessible on this operating system - such as Power BI.
The entire endjin team has a little sync up two mornings a week - this is very useful and interesting as we get to come together as a group to catch up on what each other has been doing; it gives me a chance to see what has been going on in the other projects that I'm not involved in and is also a time for all of us to have some nice chill chat. The other 3 days a week, us interns have a morning catch up with a few other endjineers joining in on this - it gives us the chance to discuss retrospectively what had been done the day before and then to plan what we wanted to achieve in the coming day.
As I have said previously, endjin has a big focus on learning and so particularly in the first couple weeks (before the main intern project had kicked off), the majority of our time was spent learning. This was done through a variety of ways such as Pluralsight courses (the ones I have been working through are "C# fundamentals" and "How Git Works" - courtesy of recommendations from one of the endjineers) and coding challenges through this thing called 'Advent of Code'. C# was a language I had never used before, I only previously had experience using Python, C and C++ but now, I would say that I am just as competent in C# as these languages!
I have in particular enjoyed doing the Advent of Code challenges - this is a set of 25 coding tasks, and it runs every year during the run up to Christmas (it's essentially an advent calendar for coders). Each task is relatively short and vary in difficulty from day to day but each one has taught me slightly different skills in C#. Many times, I was forced to google how to do this but that is how we learn!
An example was in one of the challenges, I had lines of strings that I wanted to separate into their individual words and at first, I had no idea how I was going to achieve this; luckily, Stack Overflow to the rescue! I learned of a method in C# called Split which allowed me to split a string using parameters I defined myself. I've come to use this method many more times in other challenges and is a good example of learning by doing.
THE INTERN PROJECT
We essentially started the project as something where we were doing a lot of data analysis - we were using transcripts of data strategy briefings with various companies. This beginning part of the project, we were focusing on how we could better optimise the briefings through analysis of them. These transcripts were fed through Microsoft Azure's text analysis service which gave us a huge range of information that included things like how long each person would speak for, sentiment analysis per paragraph or even per sentence and general sentiment analysis for each speaker. We then used Power BI in order to put this data to use and visualise it.
Despite my general dislike of data, this part was quite interesting as I really enjoy anything visual! I'd also never used anything like Power BI, so I enjoyed playing around with it and exploring the various features. It was quite difficult though to get what I was thinking of to actually be displayed using the software as it really is chocked full of features. This part of the project was very guided with the help of one the endjineers, Barry. He really helped us take our ideas and put them to paper.
We generated several different graphs and visuals of the data for each client meeting so we could compare and contrast them. One interesting one was a graph showing when an endjin member was speaking and for how long, and same for the client, and it was quite interesting to see the large differences between different clients and meetings but there was still the very obvious trend of endjin speaking loads! This was a perfect example of something we could bring up with Howard and James on how the briefings could be improved - we thought it really should be more of a conversation between endjin and the client, rather than a kind of lecture which was what we were seeing.
The direction of the project soon changed to more coding focused than data analysis - we were tasked with creating a program that would generate realistic fake customer information and fake products. This data could then in the future be used for demos in the briefings. We wanted this to be realistic so that it would model what real customer data would be like - we therefore decided to use a range of real-life general data to influence our 'fake' customer data. This mainly included NOMIS data, data collected during the 2011 census. Yes, this data is now 10 years old but is still extremely accurate and is so detailed that we could essentially find specific data about anything and everything for each postcode sector in England and Wales.
We decided to use Python (which luckily, I already had a good amount of experience with) and we decided on some initial information we wanted from each customer including: postcode sector, first name, last name, date of birth, age, employment status, title, and marital status. These later would be expanded on, and more detail would be added. When it came to names, we just used faker in order to randomly generate them for us - this wasn't exactly data that needed to be modelled off the real population! Essentially everything else was fully influenced by the NOMIS data.
WORKING FROM HOME - MY THOUGHTS
Working from home has become the norm for most people ever since the start of the Covid-19 pandemic and it can be a big adjustment. endjin has been a remote company since long before the pandemic began (since 2017) and therefore, they were very lucky in that essentially nothing was changing in the day-to-day work life, and they already had all that infrastructure for remote working set up.
For almost all of my 2nd year of university, I had been working remotely, and so when I joined endjin, this was something that wasn’t new to me. I have to admit that I struggled a bit with online university – it made me feel very isolated and I wasn’t engaging in anything I was doing and learning. Working remotely with endjin however, has been a very different experience. It’s like we have a virtual office – with Slack, and Microsoft Teams, it’s easy to chat and contact others and still have a sort of community feel without it being in person.
I have had catch up meetings essentially every morning (whether it be with the whole endjin team, or just with the other interns) and most of my days have been spent on calls with other team members. There are definitely still some aspects that I struggle with such as the temptation of just working in my bed all day that I do unfortunately regularly give in to, but I’m getting better all the time. It’s the consequence of having my bedroom and office as the same room!
I definitely enjoy the programming aspect of everything I've done at endjin, and it has reaffirmed my dislike of the more data related aspect of things! It’s always good to try lots of different things and be able to decide whether that thing was for you or not, and endjin has given me that opportunity.
Coding to me is just a lot of problem solving and I feel like I'm always constantly learning. I have realised though that I would like to be a bit more (artistically) creative with what I'm doing. At endjin, all of the programming I've done has been more back-end, essentially working on more the logic behind things but I think I'd really like to explore more of front-end programming and being able to implement more of my design skills as I've always been a very creative person and design-orientated. Yes back-end coding still has creative aspects to it, but not necessarily the kind of creativity that I crave.
I'm definitely considering coming back to endjin again – hopefully both next summer as an intern again and as an apprentice after graduating. I love everyone here and the community feel that a small company creates - I don't feel like just a number. Of course, though, I know that I must try and explore other options too and not just box myself into where I now feel most comfortable.
I really hope to be seeing everyone at endjin again very soon!