The Diary of a Gojek Summer Intern

By Niharika Shrivastava

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 August 11, 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.

Here’s a breakdown:

  1. Candidates shortlisted on the basis of open source contributions and/or major projects built apart from coursework.
  2. Code-pairing round: We were paired with a mentor from Gojek and given a high school level application to build in a span of two hours.
  3. Technical interview
  4. HR interview

When you’re weighing your options for a summer internship, it’s easy to gravitate toward familiar names. 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. In a span of two months, I worked on two different projects pertaining to two different tech stacks. That’s how crazy my learning curve was!

Two minds are better than one!

At Gojek, there is a lot of emphasis on pair-programming. Throughout my internship, I have paired various times with my fellow interns, which resulted in fast and robust results.

My first project was to add features to a slack bot, called GoBot. This bot aimed to increase developer efficiency by automating the onboarding process of a new Gojek member. 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.

We also planned to integrate a few more components with GoBot but unfortunately couldn’t due to authorisation and access issues. This project was completed in about three-and-a-half weeks.

We worked with Go (the language in which the bot is written), unit testing, network servers, curl requests, and REST APIs.

After this, work started on our second project — GoTriage, the objective of which is to streamline Gojek’s recruitment process. Said process consists of two stages:

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

The triaging process has been fairly manual up until now. Recruiters check for various parameters in submissions and forward it to the developers if all checks pass. Otherwise, they contact the candidate via email to correct their solution and submit again.

Another core Gojek principle is a culture of automating repetitive tasks. So we built a portal to automate the triaging process!

Here’s how it works:

  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 four iterations to this project:

  1. V1: Build a CLI tool to automate the triage process.
  2. V2: Create language-specific docker images that will create a container environment for each submission to run in.
The result after V1 and V2

3. V3: Build a frontend for our tool in the form of a 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.

A working demo of initial frontend

4. V4: Deploy the portal on a public IP so that candidates can use it themselves and get instant feedback. This meant better UI and authorisation to prevent malicious submissions, without jeopardising Gojek’s entire system 🙂

A WIP

For this project, we worked with Ruby (main language for our backend), test-driven development, Dockers, Nodejs, and Bootstrap.

The technical curve for both projects was high. Along the way, we also learnt valuable lessons — chief among which was to not 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. 😍

Cultural fit @ Gojek

Gojek really likes to take care of their employees (even interns). All our needs throughout the duration of the internship were looked after and we were spoiled a fair bit for two months.

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 priceless.

  1. The GoFood 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 GoTriage better.
  3. We were acquainted with team Magneto that was working on another recruitment-based problem and discussed their approach.
  4. We collaborated with the Design team for our frontend.
  5. We had long sessions with the Security team to make our project robust and remove vulnerabilities.
  6. Finally, we contacted the Kernel team to host our portal on a public IP address.
The Design team working on rebranding of the Gojek logo

Thus, somewhere between regular cafeteria journeys, team outings, movie nights, awesome food, foosball tournaments, stickers and other swag, flexible working hours, great office vibes, daily standups, numerous induction sessions, all-hands sessions, demos, open-source collaborations …… (ah, the list is way too long!) WE FELL IN LOVE WITH THIS PLACE! 💚

P.S.: Do look at me hard at work🙂 We won 10–0.

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

Want weekly updates about our stories? Sign up for our newsletter!