All articles

Summer Internship experiences

 

The University of Bristol is one of the top Computer Science universities in the UK, they have a curriculum that is heavy based on practical work and group projects. For example, in my third year I am part of a team of seven people working towards a year long project. The goal is to build a fully functional game by making use of some sort of new technologies. It is a great opportunity to prove how creative we can be as the task is fairly opened – the games can range from AR to VR or massive multiplayer games with an impressive networking design.

During the year, we will have to learn how to communicate, cooperate and work as a team, which in my opinion is the hardest part of this subject. These type of courses simulate the environment that you may encounter in a company: working in a team, have specific deadlines, team roles and usually a project supervisor. However, working in a company will most of the time prove to be a completely new experience than University, especially in the world of Software Development.

This was one of my motivations for trying to fill in my summer breaks with industrial, hands-on experience. Also, you have the opportunity to work in teams of passionate engineers from whom you can learn a lot as a young programmer. In the summer between my first and second year of study, I did a three months internship at GE Aviation, Cheltenham. There, I worked on two different projects in teams of two and three. I was the lead programmer in developing a tool for the outsourcing department where I designed a web-based solution from scratch. This experience taught me a lot about working in a team and building a software solution from the requirements stage.

I decided that for my next summer I would like to join a startup. Experiencing a different working environment seemed interesting. Also, it is often the case that you gain more experience working in a smaller size company as you will usually have more tasks and more responsibility. Towards the end of my second year, I applied to startups in London and Bristol. It was interesting to discover how diverse the candidates assessment methods are among different companies.

One of the options was Epimorphics. I have met Martin, the CEO, at an University Project Fair and emailed him about a potential summer internship position. After a chat with Martin, I decided that the openness of the role was exactly what I was looking for. It seemed like a great opportunity to learn new technologies and get to apply them straight away. I had an on-site interview with Ian, my future manager, and later that day I received my offer. I started my internship in June and completed September, ready to start back on my course.

In the early stages of my summer internship, I learned about the technologies that Epimorphics uses and some that they implemented. Reading about RDF Schema, experimenting with SPARQL and how to use the APIs designed by the company, were my main objectives for the first few weeks. This was crucial to my future work, especially understanding how the APIs work, since I had to use it later to get the data for the applications that I have been developing. In the first weeks, I tried to get to know everyone in the company. I had a chat with each member and they were really happy to tell me what their role in the company is and what advice they have for a young developer. This was extremely useful as the team is very experienced, so I got valuable insights from the conversations. They answered my general questions about the company and the team, but also questions involving technical details.

Following the introductory period, I started researching into AngularJS, while looking into the code of one of the company’s web applications: Bathing Water Quality. My main goal was to understand the architecture that the application was using, while trying to decide if AngularJS could be a good fit. Ian, my supervisor, was truly helpful during this project as he assisted me with any questions I had about the application. He is one of the main front-end developers for the website, so working with him made the process much faster. Ian was supportive and trusted me with decisions on the high-level design, as well as the implementation particularities. We had weekly reviews of the features that I implemented, discussing whether or not AngularJS was the right tool to do the job.

The last period of the internship was the most exciting. Ian and Stuart came with a proposal to build an application for a real client. This was a demonstrator that could be presented to the client in order to show how a data set could be efficiently visualised and explored. The demo was going to be heavy based on map manipulation and interaction. I spent a couple of weeks experimenting with different ways of displaying data on maps. I learned how to manipulate Leafletjs – a JavaScript library for working with maps – and how to integrate it with AngularJS. Some of this technologies were still experimental, so working with them was interesting and challenging at the same time. One particular challenge was to understand the industry standards for geographical representation systems. Fortunately, Stuart had experience in working with the systems and explained me all the necessary concepts.

In the last month, we begun the development cycle for the demonstrator.

I’m now back at University and busy on what will be a challenging third-year.  I’ve learnt a huge amount over the summer and not just on the technical aspects and I’m already applying many of the technical and work experiences that I have developed over the summer.