by Rising Stars Daniel Poulsen, Lasse Birk and Artem Ivanov
During our internship at efio, we worked with event-driven microservices using AWS serverless services following agile and incremental processes.
Hello there, our team of rising stars was given a nickname, the Engineering Ensemble. We are three students from Copenhagen Business Academy: Daniel Poulsen, Lasse Birk, and Artem Ivanov, currently in our last semester of computer science studies.
As part of the fifth semester at Copenhagen Business Academy, we are required to complete a three-month internship at a company operating within IT development. The idea is to get insights into how development projects are run in a professional business.
For us, the main focus of the internship was to get started with cloud computing and event-driven design as opposed to the traditional monolith system we have worked with so far. To get practical knowledge of Amazon Web Services, learn to use some of the tools in real life and develop a small app, that will help efio in their sales process as well with GDPR compliance.
More about the app
The purpose of the app is to enrich efio’s current CRM system data with master data from the Danish Central Business Register (CVR). Not only updating the existing data but also finding similar and potential customers from the CVR system. This is achieved by using event-driven and microservice architecture AWS Lambda (serverless compute) and SQS (serverless queue) and ElasticSearch. By deploying the app through a CI/CD pipeline running on AWS CodeBuild, CodePipeline, and Terraform, we can easily deploy the application to a well-defined state.
Before our internship at efio, we had no prior experience working with either AWS or Cloud Computing. Due to this, we spend the first week practically back in school, learning about different technologies and taking courses online. Getting an AWS Technical Accreditation was the first step for us, as the app would run and be built using Amazon’s services.
A Cloud Guru was our main knowledge source for ElasticSearch, AWS Infrastructure services like VPC (Network) and EC2 (VPS), and Infrastructure-as-Code using Terraform. efio was very kind to sponsor courses on the platform. Further efio CEO, Joachim Rørbøl and Site Reliability Engineer, Simon Jensen have taught and mentored us during the entire internship.
After completing the AWS courses and having some understanding of the services, we got to put our knowledge to the test. We created our own AWS environment through Terraform so that we could easily spin up a full platform in the cloud. Also, we decided on using a complete serverless-based platform rather than EC2/VPS-based.
With daily Standup meetings and evaluations, we made quick progress in collecting the knowledge that was needed to develop the app efio expected from us.
At school, we had learned about concepts such as agile development and scrum but had no actual hands-on experience. For our development project at efio, Joachim Rørbøl and Simon Jensen acted as the product owner and scrum master, guided us along the right path.
We incorporated: sprint planning, daily standup, product demo sessions, and retrospective meetings into our work:
We worked with two-week sprints. Starting with planning where the product owner presented user stories and features that they would like to be implemented to the system. We used concepts such as planning poker and user story cards for breaking down stories into tasks. Then our team committed to a certain amount of work that we believed we could achieve for the sprint period. Every day we held a standup that acted as daily check-ins. Here we discussed what we had achieved during the last day, what we plan to do today, and if we see any blockers in the way.
After each sprint, we held a retrospective session. In this session, we focused on what helped us during the sprint, what slowed us down, and what we should be aware of when going forward. Finally, we did a short demo, to show the new functionality in the app.
We learned a lot about what goes on in a real-life Scrum process implemented at efio. One important point is, that efio seemed to have picked out the concepts from the Scrum handbook, that made the most sense for them and skipped the rest. It was a great experience to try out in practice what we had learned in theory.
We are positively surprised how well we were integrated into the team, treated with respect and as equal members of the team, not quite what we had expected as “just interns”. We felt that our opinions were heard, discussed, and valued. We participated in social team events, such as trying out Polo with Copenhagen Polo Club, taking part in Meetups with AWS Copenhagen User Group on running serverless workloads on AWS, and so forth.
During this internship, we learned a lot as a group. Not only how a company like efio operates and but we also gained practical knowledge of cloud computing, which gave us the confidence to discuss the topics related to cloud computing.