My Graduation Internship as a Software Engineer

Title:

Description:

My Graduation Internship as a Software Engineer

This blog post covers the experiences of my Bachelors graduation internship. During this internship I worked as a Software Engineer. I researched, designed and developed the data analytics architecture and infrastructure of the EmoKit at Mentech Innovation.

First of all, some context. I studied Electrical Engineering at Fontys University of Applied Sciences in Eindhoven. I was always passionate about Software Engineering so I did a lot of projects with programming in C and Java, including my previous internship. Searching for a graduation internship, I found that one of my old class mates, Reon Smits started a company and he invited me for an interview. During the interview we found that we have the same values and Mentech Innovation had a very interesting opportunity for me, so I took it.

Why Mentech Innovation?

Mentech Innovation became my first choice to do my graduation because it is the company’s mission is to make the world a better place. Mentech Innovation does this by helping one of the most vulnerable groups in our society, mentally disabled people. These people need a voice to help caregivers give them the support they need. The company aims to give these people a voice by helping them express their emotions with technology. This technology consists of a number of sensors which detect biometrics signals. These signals should give insight into the emotions of a person. Through analysis of this data and a visualisation tool, caregivers can see the emotional status of their clients. This will help the caregivers to understand patients better which will result in more happiness.

Work Environment

When I started at Mentech Innovation, we started with 4 full-time employees in a small room in the Glasgebouw on Strijp-S. Strijp-S is a high-tech start-up environment. The place looks cool with all the old Philips factories and modern architecture. There are many nice places here to get some food such as lunch or ice-cream. Everything we needed was provided, a football table, a coffee machine, desks and laptops. As soon our team expanded, to now 15 people, we moved to an office 3 times as big. During the move I helped painting and furnishing the new office, it was fun! As little extra, we also got a new football table (which we use every break).

Research and Development

At the start of this project I knew close to nothing about the data analytics environment. So to start, I had to spend approximately a month to get into the real-time data analytics world. There I learned how data analytics evolved and what the current state of data analytics systems is by reading many publications and blog posts. It happened that real-time data analytics is a trending topic in the industry right now as companies want to provide faster results from analytics. This means that there are many available publications on ideas, prototypes and production ready systems for real-time data analytics.

In literature I found that there are many challenges to consider in the development of a real-time analytics platform such as:

  • Correlations between streams of data
  • Out-of-order data processing,
  • Back pressure
  • Fault-tolerance
  • Consistency
  • Latency
  • Historical data processing

These challenges alarmed me that it is not feasible to develop such a system myself. As I am a big supporter of open source and open innovation, I chose to investigate into an open source solution for our problem. During my research I evaluated literature of platforms like the dataflow model (Apache Beam), Apache Flink, Apache Storm and Apache Samza. I found that Apache Flink fits our needs the best. Apache Flink was however not enough. To enable fault-tolerance and back-pressure support in our system we combined it with Apache Kafka. Around Apache Flink and Kafka, we built an infrastructure which can connect many sensor devices to the analytics platform. The results of these analytics are then published on a website.

I developed the system which connects many other parts, so I learned to work with people from different backgrounds such as application design, industrial design and medical software engineering. Also, I acted as a coach for one of my colleagues who was new to working with the technologies we use at Mentech Innovation. This was a fun and educational experience.

In my side activities I have set up a continuous integration environment with git, Jenkins and artifactory to enable a workflow for software developers. I am planning to extend this to a full continuous delivery infrastructure in the future.

In the end, I was able to finish a prototype of the data analytics system which were used to provide demonstrations to clients. My graduation was graded a 9 by Mentech Innovation and my university. Now I have my Bachelors degree in Electrical Engineering, I will start as an employee at Mentech Innovation.

 

Category
Internship
Author
Bart Monhemius
Reading time
5 minutes

Copyright © 2018-2019, Mentech Innovation