Us CS undergrads,
We’re a nasty bunch.
Drooling over stickers and swags,
Rolling out code in a time crunch.
We seek internships that provide
experience and comfort
Impactful projects that feed our inner nerd.
At GoJek, all this magic will come true
Experience it first-hand and you’ll never have monday blues!

I was selected as a GoJek intern on 11 August, 2018 as part of my campus internship drive at IIIT Allahabad. GoJek’s candidate selection process had a stark difference from every other company that came to the campus:

  1. Shortlist candidates on the basis of open source contributions and/or major projects built apart from coursework.
  2. A code-pairing round: We were paired with a mentor from GoJek and given a highschool level application to build in a span of 2 hours.
  3. Technical interview
  4. HR interview

When you’re weighing your options for a summer internship, it’s easy to gravitate toward a big-name company. But there’s a lot to be gained by working for a startup, especially when you’re first making your entrance into the workforce. My internship started in the summer of 2019 on May 27th. I worked on two different projects pertaining to two different tech stacks in a span of two months. That’s how crazy my learning curve was!

startup

Two minds are better than one!

In GoJek, we heavily depend on pair-programming. Throughout my internship, I have paired various times with my fellow interns which has only resulted in much faster and robust results. My first project was to add features to a slackbot, called GoBot. This bot was aimed at increasing the developer efficiency of Gojek by automating the on-boarding process of a new GoJek joinee. We added functionalities such as:

  1. Invite users to team-specific channels.
  2. Give knightswatch access for various services to individuals based on their team and role.

gobot

We also planned to integrate PagerDuty and New Relic with GoBot but unfortunately couldn’t due to authorization and access issues. This project, hence was completed in about 3.5 weeks. I got to learn about Golang (language in which the bot is written), unit testing, network servers, curl requests, and REST APIs.

After this, we started work on our second project Go-Triage. GoJek’s recruitement process consists of two stages:

  1. Code triaging: A basic hygiene check validating that the submission is in accordance with GoJek standard.
  2. Code review: GoJek developers review the code and shortlist candidates for interview.

The triaging process has been fairly manual up till now. Recruiters check for various parameters in a submission and forward it to the developers if all checks pass. Otherwise they contact the candidate via email to correct their solution and submit again. Hence, we built a portal to automate the triaging process!

  1. Select a compressed file(.zip or .tar) to submit.
  2. Select the language of your submission.
  3. Click on upload, sit back, and relax!

Our code inspects and runs the submission in the given language, and finally produces a triage report stating what all checks have passed and failed. Therefore, a to-and-fro process which once took about 2-3 weeks to complete, now finishes in a matter of 3 mouse clicks! Since we built this project from scratch, it gave us maximum flexibility to experiment with possibilities. There were 4 iterations to this project:

  1. V1: Build a CLI tool to automate the triage process.
  2. V2: Pull language-specific dockers that will create a container environment for each submission to run in.

cli

  1. V3: Build a frontend dashboard that will help the recruiters use our V2 CLI tool with ease. That way, they will just have to send the summary table back to the candidates.

frontend

  1. V4: Deploy the portal on a public IP so that candidates can use it themselves and get instant feedback. This meant better UI, authorization to prevent malicious submissions, and not jeopardise GoJek’s entire system 🙂

new

I learnt about Ruby (main language for our backend), test-driven development, Dockers, Nodejs, and Bootstrap. The technical curve for both the project was high. Along the way, we also learnt valuable lessons such as not to get too “bound” to your code. You’ll probably write more efficient code in the second iteration anyway. There was heavy usage of version control (which I love), and as our tech lead said once:

These projects have low risk and high impact!

Needless to say, I’m very proud of our end product. 😍

Culturally-fit @ GoJek

GoJek really likes to take care of their employees (even interns). We were spoilt heavily for these 2 months and we just couldn’t say no! My to-and-fro flights, accommodation and food were all paid and taken care of for the entire duration of my internship by GoJek. We were also given a Macbook Pro upon arrival.

As an intern for a large company, your exposure is often limited to the small portion that you’re working on directly. With hundreds of interns and thousands of employees, there’s no way to effectively expose yourself to all aspects of the business. But in GoJek, it’s almost impossible not to. Our projects required us to go beyond our 3-member team so frequently, the amount of exposure and awareness we received was precious.

  1. The Go-Food team was our go-to for any doubts regarding integration, code structures, dockers, etc.
  2. We sat with the recruiters to understand our problem statement for Go-Triage better.
  3. We were aquainted with team Magneto who were working on another recruitment based problem and discussed their approach.
  4. We collaborated with the Design team for our frontend.
  5. Finally, we had long sessions with the Security team to make our project robust and remove vulnerabilities.

Design Team

Hence, somewhere in between regular cafeteria journeys, team outings, movie nights, awesome lunches, foosball tournaments, stickers, swags, flexible working hours, great office vibes, daily standups, numerous induction sessions, all-hands sessions, demos, open source collaborations …… (ah, the list is wayy too long!) WE FELL IN LOVE WITH THIS PLACE! ❤️

It was definitely one of my best and most productive summer, and I’m extremely excited to join them next year!

P.S.: Do look at me hard at work. :) I won 10-0. drawing