My First Internship | Backend Engineering at Garena

Jones Napoleon
HMIF ITB Tech
Published in
5 min readSep 4, 2020

A three-month journey of self-exploration and immense collaboration.

Garena logo

For Computer Science students at Bandung Institute of Technology (ITB), there is an unspoken competition in the fields of academics and career alike.

The competitiveness in the career itself started even in our freshman years. Summer internships are bound to begin around May or June. But as early as January in the same year, there usually are students with their already-secured Internship position. This race of industrial experience is what encourages me to be eager and more zealous in pursuing my career as well.

Transforming the silver lining

It was March this year when a bunch of my friends secured their internship position at major tech companies. Meanwhile, I have just finished my initial lite ITB NIM Finder and then starting to renew my résumé. After applying for some, I realized it was too late — most applications were closed, plus pandemics. I then thought I would have spent my holidays binge-watching more Korean dramas.

Fortunately, not long after, I stumbled upon news saying Garena is hiring interns, open for Frontend, Backend, and Data Engineer. Learning from the previous lesson, I immediately went through their career pages and applied for one — I opted for Backend. Fingers crossed!🤞

Break a leg

In under a week, I received a call to confirm my online interview schedule — no online test. I prepared much for behavioral questions but none of which were inquired. The interview began with questioning my overall experience in Backend followed by some 30-minute coding problems.

The coding questions for Backend mainly revolved around Algorithms, Data Structures, SQL, and Git; the explanation of the solutions was expected as well. Under an hour after me submitting my solutions, I received a call from the People team indicating my internship acceptance. I was over the moon that day, compensating the rest of it with Crash Landing on You.

The calm before the storm?

No! The storm before another one⛈️

Just after I secured the position and thought to focus on college assignments (tugas besar), we (all five Backend and Frontend interns) were gathered for pre-intern assignments.

The task for the frontend was to rebuild the UI of one of Garena’s previous projects, while that of the backend was to build six API endpoints (two were authentications, and one was a Redis-utilized search system) — both tasks were to be submitted in a week.

We, interns, were also assigned our own Virtual Machine corresponding with its static IP. Thus, to keep the server running during development, we just need to connect the SSH with Garena’s VPN, and Garenians could then easily access our VM.

New epoch

The first day was for us to present our pre-internship quests. Nothing went wrong, we just had different folder structures. Then, I was solely assigned with two warmup tasks (part of Garena’s previous projects); without, followed by with Garena’s boilerplate. It took almost 10 days for those.

Virtual dinner at Garena

In between, Web Development teams had a virtual dinner, sponsored by the company!

Work doesn’t feel like work!

By the way, the main tech stack for Backend development is Django, and Frontend is React — the top two of my most comfortable stacks.

They also used GitLab for version control, Directus for CDN/media management, ActiveCollab for project management/allocation, and Airtable for project metadata.

Delving into the real industry

Two weeks after adjusting to its programming convention, I was delegated to a team named Binus Team, mainly because of its dominant Binus engineers. We implemented scrum in our meetings at 10, with me mostly attending right after waking up. 😪

At Garena, interns were responsible for real-production projects and were seen as fellow associates in terms of responsibility. It’s just that we had mentors. We should make sure our code works, deployment succeeds, also respond to QA when issued, and be initiative in any circumstances.

The first real project I was in charge of was called the AOV PSSGradeyout event, the second was the AOV Mganga Supersale, and the third was the AOV Change Your Fate. Each of those required collaborations from many departments (Web, Data, Ops, and QA), with a new Hangout group being added for each new project. It usually took 14 days of preparation for one project yet only stayed on production for no more than four days. LOL. But that is the cost of a production company; at least the services went seamlessly and impacted millions.

In between those projects, there were plenty of internal events, like the Freefire Challenge for all Garenians and Web Dev Day where each associate delivered their interesting web ideas for future development — both were extra benefits for interns!

Going through some backend projects, I noted that besides Databases skills (SQL Query, DDL, and ORM), two fundamental CS elements (Operating system and Computer network) played a great role as well, moreover in the sense of configuring SSH and deployments. But thanks enough, it was easily configured beforehand by the Ops team.

Fast forward after those events, there were only ten days left before my internship comes to an end. As I have been kept vacant for a couple of days, I decided to take further responsibility for something huge, something final-worthy. Eventually, before my departure, I was entrusted with the User Interface of another Arena of Valor event, called AOV Limited Summon. Thankful am I shifting path to Frontend last-days as I get to learn new things like Directus and FTP.

Final touch

All in all, although it was not easy for me to adjust to Garena’s stacks and conventions, there were always mentors to guide me along for each project; I thank you.

Those memorable internship experiences were and are of absolute fun and amazing for me. I can’t imagine how beautiful the offline experience would be if even the kinship can be felt online.

--

--