Internship as Back-end Engineer at Eduka System

Jovan Karuna
HMIF ITB Tech
Published in
7 min readSep 1, 2020

In this medium I’m going to share my experience of doing an internship at Eduka System :)

Just so you know, this is my first time having an internship.

First of all Eduka System is a startup based in Bandung that engaged on improving education in Indonesia using technology. Eduka System provides a platform for students to be able to practice questions from various exams and subjects. To know more about this great company you could find it in LinkedIn or follow them at Instagram.

So that is a quick introduction about Eduka System and here is my journey

Beginning of My Journey

On my 4th semester in ITB, I was looking for an internship for my summer holiday since many of my seniors told their junior to try doing an internship and gain some experiences, I also thought that it was better to gain new experience than just enjoying my holiday. I think that around the early May of 2020, my friend told me about an internship at Eduka. Well, I also knew Eduka from a friend who had intern at Eduka last year in 2019. After thinking about it for a while, I encouraged myself and applied the role of back-end engineer internship at Eduka System. How did I apply? Technically, I just sent an email to Eduka’s email, within the email I attached my CV and also I told them how I knew about the internship and which role I was applying for.

Selection Test

After applying as a back-end engineer at Eduka System, I waited until the mid of May before getting the selection test. The selection test in Eduka was a little bit different than most company since it was not a coding/algorithm test. The test I got was about making an API for grading and ranking users that had finished an exam. Well, this test was more like a project because I was given 5 days to complete the test. The requirement for the project was to use Go language or NodeJS. While making this project, I learned so many things about Go language (since I used Go for this project) and also about back-end. After completing the project, I put the project in my Github and sent an email to Eduka that consists of the project as a zip file and the link to the Github.

Interview

Around the end of May, I got an email that said I passed the selection test and there would be an interview for the next phase. This excited me a lot, but I also needed to prepare for the interview. For the interview, I prepared it by demonstrating my project for myself and tried to think where was the flaw in my project which could lead into a question. When it was the day of the interview, I was really nervous as I was joining the Google Meet. In the meet there were 4 people (including me), 2 people as the engineers and one person as the HR. In the interview, I needed to demonstrate my project (selection test) and then I needed to answer all the question about it. After that, the question was more about myself and my life.

After finishing the interview, I thought that I won’t get the internship since there are some question that I couldn’t answer perfectly. Fortunately, on the next day, I got an email that congratulated me and said that I got the internship.

Internship Journey

My internship started from 1st June of 2020 until the 21st August of 2020. The working time started from 9 AM until 6 PM. Also for the past 3 months of internship I was doing the internship online from home (WFH).

Onboarding Phase

The onboarding phase went for a week. So, on the first week of the internship it was more about knowing the environment in Eduka, knowing other interns (front-end, back-end, and product manager), learn about Docker, clean code, and about Eduka’s product. On the process of learning, the interns were also told to make a presentation about clean code and Docker, we were given an Udemy account to learn for making the presentation. The mentors also gave us some insights about clean code and Docker after we present it. They also taught us more about the Eduka’s product and which product the interns were going to work on. On the last day of onboarding, the back-end interns were given a task to try a service and do a presentation about the service, and then our mentor was going to teach us more about the services.

After Onboarding

The interns were also invited to Slack, which is an app to communicate in Eduka. There were many channels to communicate there, such as random, general, and a channel for back-end engineers. In Slack there was a standbot that will message you everyday at 9 PM, it would ask us about what we did today, what we were going to do tomorrow, and then it would ask if we had a blocker when doing a task (blocker is something that prevents you from doing the task). Well, at least that was the things the standbot asked me as a back-end engineer.

Ah! For this internship I also had a mentor who guided me as a back-end engineer for the past 3 months which is kak Kelvin Kristian, Head of Engineering in Eduka System. I learned so much from him and always been thankful for that. For every workday (Monday to Friday), I always attended a daily standup meeting with the back-end team using Google Meet. Most of the time our daily standup started at 10 AM for about 10–15 minutes, but if there were some obstacles then the standup’s start time would be changed later in the day. In the standup the topic was pretty much the same as the message from slack’s standbot, which were “what I have done the day before” and “what I’m going to do today”.

Now, I’m going to tell what tasks I’d been given in my internship. The first task I was given is to implement a ranking system for tournament in ranker worker service. To sum it up, I was making an API that was needed for the service and then testing the API. If the API was doing just fine, then I made the documentation for Swagger and API gateway (GitLab). I also made some unit test using go test and go mock, since the service used Go language. For this first task, it took about 3 weeks to finish the task, since it was my first time to learn a service that connects to many other services. It was pretty hard considering it was my first time doing a project of back-end other than the selection test which was a small project, but after the first task it was easier to implement in the other services.

After finishing the ranking system in ranker worker service, I was given the task to implement the ranking system for tournament in other service, which were ranker service and ranker search service. The implementation is easier for the ranker service since it also used Go language but for ranker search service, it took more time because I needed to learn more about NodeJS. While implementing the ranking system, I learned so many things especially about using a new tech stack I had never use, such as RabbitMQ, MongoDB, and Elasticsearch.

The other task I was given is to restructure the code in ranker service into a similar structure used in ranker worker service. For my last task, I was told to make a documentation for event service, content service, exam service, account service in Confluence. To do that I needed to run the services, learn from the documentation at swagger, and try the API.

Last Day

After 3 months (12 weeks) of internship, the last day of the internship had come, which was the 21st August of 2020. On the last day, all of the interns had to do a presentation about all the things we had done and get for the past 3 months of internship at Eduka System. It was great because from that presentation, I could share the works I was doing during my internship and also received some feedback and questions to figure out the answer. Other interns also shared the things they had done and get, so we could learn from each other. All the process was fun and exciting. Well, that is how I ended my internship journey at Eduka System.

This concludes my internship journey at Eduka System. The past 3 months was amazing for me, there are many things I never could get if I just enjoyed my holiday and never applied to Eduka, but aside from that I also have some regrets. What I regret the most, is that I couldn’t come and join other people in Eduka to work at the office and had to do an online internship because of the pandemic. Nevertheless, all of the process in doing the internship at Eduka is a great experience in my life and this experience will never be forgotten.

Thank you Eduka System and all the people in Eduka for giving me this wonderful experience, I hope Eduka System will become bigger and successful in the future and also can help to improve the education in Indonesia.

--

--