Guest Blogger – Ed describes his three month paid summer internship at endjin
Ed is studying a Mathematics BSc at UCL. He made contact in January because he was looking to gain some real world software development experience during his summer break, before his final year at University.
During his three month internship we tried to expose him to as many different aspects of endjin as possible; from New Proposition Development, Data Science and Machine Learning activities, as well as our software engineering processes and the Microsoft Azure ecosystem.
If you are interested in a paid internship, take a look at the internship section on our join us page.
Hello reader. My name is Ed and I have had the pleasure of spending just over three months as an intern at endjin. I’d like to use this blog post as a chance to share with you my experiences from working here.
I study Mathematics at University College London and I am just about to begin my final year of study. Since my course doesn’t offer a year in industry, the only real chance for work experience during the course is through the summer – be it an internship, temp or part-time job. I came to find endjin through a network of people, eventually ending up at Howard. After rallying a few emails with Howard, I was invited to come to endjin HQ earlier on in the year to meet the team. I didn’t quite know what to expect from this meeting. Was this an interview? Was I being judged? As it happened, it was a ‘No’ to the first question. As for the answer to the second question, well – I guess I’ll never know.
I was greeted by (almost) all of the team enjoying a communal lunch in the rec-room. How fortunate I was to catch them at a time when they were all in the same room… It’s as if it was planned! I was pleased to soon find out that they weren’t there to test me at all (although, going out of my way to learn the first 24 digits of pi proved fruitless). Along with general chit-chat, they were interested in me, why I wanted to work with them and what I thought I’d be doing if I were to undertake an internship here. They knew I had no prior knowledge with regards to programming/software development. I didn’t even own a laptop for goodness sake.
After shadowing the team for a little while in the office, it soon came to the end of the working day. The final thing Howard said to me before I left was something along the lines of “We’ll find something for you to do.”. Thinking back now, that’s just awesome. They took me on knowing that I had no computing knowledge or experience, and they were going to go out of their way to find things for me to do (or maybe they had something planned, and just didn’t tell me).
My internship began and I was instantly thrown into an array of software names, acronyms and general technological jargon and I had no idea what it all meant. Numerous search engine quests were undertaken, particularly throughout the first couple of weeks. Aside from the new alien language, I was loving the unfamiliar territory. My course at university had turned into quite the routine, and I struggled to see how any of its content was relevant to anything in the real-world. The classic school question ‘How will this actually help me in the future?’ popped up quite a few times. Here, though, I can see how the things I’ll learn will actually enable me to do things I otherwise wouldn’t be able to do, and how to apply this knowledge to the real-world. As it happens, some particular things I have done have required knowledge from Maths I have learned during my degree. A slap in the face for naive me.
In the first few weeks at endjin I was working on two different projects. One of the projects I was involved in was a New Proposition Development (NPD). Other than the initial idea, the project was untouched. The initial stages required a lot of group collaboration with lengthy brainstorming sessions in which each and every team member was involved at one point or another. I was also introduced to several marketing procedures performed to enhance the understanding and potential scope of the new model. I spent quite a bit of time pairing with the other summer intern, Carmel, and we were asked to produce a presentation to update the rest of the team on the progress of the NPD projects. Although the presentation was in front of people we were both, by then, comfortable around, it was good to be given the chance to practice our presenting and communication skills – valuable skills that we will undoubtedly need in whatever job each of us ends up in.
My other project involved developing endjin’s IP (intellectual property) with regards to Azure Machine Learning guidance, through the use of the Azure platform’s integrated, interactive notebook service ‘Jupyter’. I was briefed on Jupyter and let loose. Jupyter can be thought of as a ‘Microsoft Word’ type program but for coding. It supports HTML/Markdown language, scripts of live code (over 40 languages) and allows you to perform all code operations with all resulting visualizations within the notebook. It really is the perfect platform for the creation and sharing of data science/programming documents, and it’s really user friendly.
This type of IP development task turned out to be what made up the majority of my internship – and I found it incredibly helpful for my personal knowledge development. I was creating documents aimed at Data Science and Machine Learning beginners, which, being a beginner myself, meant I had to thoroughly understand everything I was talking about to be able to whittle everything down into understandable ‘Layman’s terms’. They say to learn a language, the best way to do it is to immerse yourself in the country, resulting in direct exposure. This was very much my situation. I had to create these documents, which couldn’t be created unless I understood what I was putting in them. The team was therefore very understanding if there were days where I pretty much spent the whole time researching and generated very little tangible IP content.
Through generating this IP I gained a deep understanding of the machine learning process, from data acquisition through to data exploration, data preparation, model application, model deployment and the iterative process which surrounds it all. I also delved deeply into the different machine learning algorithms, trying to understand not only the structure and benefits of the different models, but the (often complex) Mathematics behind them. I made the choice to really dig into the ins and outs of the algorithms, but my mathematical background really aided my understanding and sped up the learning process. In reality, the Azure platform does a fantastic job of providing a highly user-friendly and wieldy machine learning service, which can be fully utilized by relative beginners. In general, this is exactly the direction machine learning should be taken, as many individuals/companies won’t have the time or desire to school themselves on the ins and outs of data science, but do have masses of data at hand they wish to utilize.
The main coding language I had direct exposure to was R. I progressed from next to no knowledge of R coding, to creating and running neat little bits of code to help with data manipulation/evaluation. I must say – it is extremely satisfying running code you’ve spent hours creating and returning no error messages. As R is now probably the most widely used language with regards to data science and machine learning, I am determined to become more proficient in it as the year progresses, and endjin have already expressed their desire to help me achieve this in any way they can.
Aside from data science and machine learning I was also introduced to endjin’s own Azure-based CMS (Content Management System) called Vellum. Using this was very interesting as it was a whole different spin to what I’d been focusing on previously. Through Vellum, I was acquainted with Microsoft’s app development platform Visual Studio, which the team was using in collaboration with Vellum mainly to perform operations like styling alterations on the website they were working on. At first, I had no idea what was going on when observing my colleagues working in Visual Studio. They were coding in C#, and I had never seen anything like it before. I deduced, though, as soon as one gets to grip with all the specific statements and procedures involved with a new programming language, it is then relatively straight forward to apply one’s knowledge and techniques from other languages. If only there was a magic switch to learn all programming languages at once…
I may have rambled on a bit, and it is a lengthy blog post for ‘just an internship’. But that’s the thing – it was a lengthy internship. I was originally on a two-month scheme, but was offered an extension until I needed to stop for university. I ended up spending fourteen of my nineteen weeks of summer working at endjin, and blimey how time flies. Endjin has no desire to make you a robot during their internship, wait for you to serve your time and then throw you out once you’ve done. They have offered you an internship because they like you, and really try to give you the most worthwhile, engaging and wholesome experience they can whilst you’re there. Not only have I learned practical skills, but also how fun and relaxed a company’s culture and atmosphere can be. It’s not all doom and gloom in the world of work. There are undesirable times – I can’t say a half-an-hour journey on the southbound Northern line (via Bank) at 8:30 on the hottest day of the year is something I’ll miss. A manifestation of sweat, lack of breathable air all thrown together with a resounding aura of restless impatience is not something I look for in a morning commute to work – but there’s very little you can do about things like that. In the end, Monday mornings do still exist and are still tough, but they’re a whole lot easier when you’re going someplace you enjoy being.