- Insights This article was written by a TIA community member. Insights pieces undergo the same rigorous editorial process that newsroom-produced articles have.
How Gojek’s early team managed 1 million drivers with 12 engineers
In Norse mythology, Yggdrasil is a gigantic mythical tree that connects the nine worlds of the Norse cosmology. It’s a holy tree whose branches touch the heavens. The gods hold court beneath it, debating the fates of other gods, men, and monsters. It’s the tree of life and the center of everything.
At Gojek, the Allocations Team is the eternal green ash tree. The company’s multiple products rely on this team to assign drivers and ensure completion of orders. The team cuts across products and services responsible for more than 1 million registered drivers on the platform. Back then, there were only 12 engineers in the team.
This is their story.
Problems galore
In 2010, Gojek started as a call center. Customers would call a number, then someone from the call center would “allocate” a driver after looking at a list of drivers in an Excel sheet.
Nadiem Makarim, Gojek’s CEO, was the first person to test the Gojek app. As soon as a dummy order was created and Makarim got the first notification, the app was open for business.
At its peak in 2014, the company had 200 drivers. The three-person engineering team then had a stopgap model for matchmaking drivers and customers. The codebase eventually had to be reworked to match scale, so the new matchmaking codebase was built in two days and could handle about 700 drivers. But everything was manual, and something had to be done to automate the whole process.
In the beginning of 2015, a version of the app was launched to keep pace with increasing demand. The company’s other products – Go-Ride, Go-Food, and Go-Send – went live. Customers would “bid” for a driver, then drivers would get a notification and accept the order.
This was the birth of the “bid engine,” a classic matchmaker between supply and demand (in this case, driver and customer). It would form the genesis on which Gojek was going to be built.
But there was a problem: siloed boxes.
There was a total of three products with the same underlying infrastructure, but without interconnectedness. That was a problem that shouldn’t exist when success depends on deeper linkage across teams. The problem was serious, as all three teams were working on the same infrastructure.
Moreover, Gojek simply wasn’t prepared to handle the kind of adoption and growth it began to witness as soon as the app was launched. The algorithm started to crumble. The engineering was pretty straightforward with 10 to 15 lines of code, solving problems for a small set of data. As the drivers increased, downtimes became a routine affair. There were way too many bottlenecks.
Gojek was failing – and fast.
Soon enough, the company had one of India’s best consulting firms, Code Monk, in its arsenal. The task for the engineering team then was to work on the bidding engine and ensure that there’d be no more downtimes.
It’s about the ones and zeros
The old codebase was written in Java. It’s a programming language that belonged to the internet age, but not for a startup in 2015 that was exploding in demand and imploding with a lack of resources and engineering wherewithal.
Why were we using Java? Because of the Golden Hammer anti-pattern: “I know Java, so Java is the best.”
The new normal
Seeing 10x growth, but 100% failure
The big rewrite
Shaping a mindset
Stay updated on the go with our mobile app.
Get latest insights with smoother, more personalized experience through TIA mobile app.







