Go-Jek scaled 900 times in the first 18 months after the launch of its mobile app in January 2015, reaching 200,000 drivers. By June 2016, there were over 20 million bookings on Go-Jek – about 667,000 rides per day. After that, the Indonesian #startup turned into a unicorn, raising a funding round of US$550 million. It did all that with a team of less than 80 engineers.
“Even now, across Go-Jek, we may have 200 to 210 engineers, and we’re running [the equivalent of] three unicorns – at least – under one roof,” Sidu Ponnappa, Go-Jek’s head of engineering, tells me.
To give me a sense of proportion, he compares Go-Jek’s volume with other Indian unicorn companies. “We do comparable transport to [Uber’s Indian rival] Ola. We do double the Indian market for food deliveries, as per publicly reported numbers. That means if you take Swiggy and Zomato combined in terms of their published order volumes, we do twice that number. Our payments are of the same order of magnitude as Paytm’s. And we’re supporting all of this with just over 200 engineers across three locations: Jakarta, Singapore, and Bangalore.”
Ponnappa was the founder of Bangalore startup C42 Engineering, which got acquired by Go-Jek. He was meeting me at the Indonesian company’s office in the heart of Bangalore. Most of Go-Jek’s engineers are now based here, even though India is not a market for Go-Jek yet.
The Bangalore tech team powers its ride-hailing product with a string of on-demand services thrown in. “In headcount terms, this is our largest office, but all our teams are distributed. So you’ll find that every single team in Bangalore also has members in Singapore and Jakarta; [and] every single Go-Jek product is executed across these three locations,” Ponnappa explains.
We must be the first company who raised prices so we would have fewer customers [while scaling backend tech].
Go-Jek is Indonesia’s first unicorn. It has raised over US$1.7 billion in total funding so far. The Go-Jek umbrella now covers 18 services – from ride-hailing to massage at home. It lets users find connecting bus rides, book tickets to events, or get their cars serviced and parcels delivered.
But when I asked Ponnappa to pick the Go-Jek product that excites him most, he says Go-Jek is actually just two products: logistics and payments.
“Everything we do is an intersection between the two. If you look at logistics, we have the same fleet delivering multiple services. In fact, that’s the advantage we have,” he says. “The same driver who will deliver your breakfast will also drop you [off at] work and then come back to pick up your keys if you’ve forgotten them.”
Technology is not a means to an end for him; it’s a medium. If you don’t understand the medium, you can’t do good stuff with it. “If you look at it transactionally – like what I care about is this outcome, and I don’t care how you do it – you’re not going to be able to leverage the medium to its fullest and that’s something that Go-Jek just gets right.”
Ponnappa had been building up Go-Jek’s tech muscle even before he officially joined the company. His company C42 Engineering used to help other tech startups and enterprises “iteratively architect, develop, deploy, and scale their core product offerings.”
Go-Jek’s investor Sequoia Capital roped in C42 when the Indonesian company’s small tech team was struggling to keep pace with the rapid growth it experienced in the months after its app was launched.
“We grew so fast that we lost control of how many people downloaded our app. We grossly underestimated our growth rate,” co-founder and CEO of Go-Jek Nadiem Makarim told me in an earlier interview. Drivers and passengers were complaining about frozen bookings, rides that couldn’t be canceled, and “error” in the app. “Error” is Indonesian lingo for buggy and unreliable.
That’s when Ponnappa and a team of tech ninjas from India stepped in.
C42, along with another startup CodeIgnition, were used to lending tech muscle to growing startups. They had experienced scale as tech consultants for companies like Flipkart, Applause, Staples Labs, Quintype, UrbanLadder, and ThoughtWorks – a bunch of fast-growing startups in a high-churn/high-growth phase. C42 was primarily focused on heavy backend engineering, while CodeIgnition worked on tech infrastructure automation.
If you want to hire well, you have to support and grow the community, no strings attached.
C42 and CodeIgnition had merged in late 2014 when they found themselves collaborating frequently for the same clients. They began working with Sequoia Capital in March 2015 to help companies on its portfolio with scaling challenges.
“In April, Sequoia asked us to go to Indonesia to meet the companies they’d invested in. Go-Jek was a non-entity back then. The other companies [in the Sequoia portfolio] were behemoths compared to it. So, Go-Jek was not much a part of the conversation,” Ponnappa recalls. Go-Jek must have been doing 3,000 to 4,000 orders a day around then, he adds.
“Just four months later, Go-Jek was the single biggest thing that was happening in Indonesia.” By September, Go-Jek was clocking over 100,000 orders a day – 15x scaling in just a few months.
Ponnappa remembers those early days with Go-Jek vividly. His co-founder at C42, Niranjan Paranjape – Go-Jek’s CTO currently – was one of the early ones from India to head to Jakarta. They used to see how Go-Jek’s systems would crash with the huge volume of orders coming in. This was around July 2015. “The orders were way over what the systems were originally designed to handle. Every day during rush hour, the systems would go down, things would become problematic,” Ponnappa recalls.
“We must be the first company who raised prices so we would have fewer customers,” he chuckles. “That’s the genesis of rush-hour pricing in Go-Jek. It wasn’t profitability; it wasn’t anything else; it was to keep the load down in the systems back then.”
Paranjape and others would be firefighting all day, trying to keep the system alive amid the constantly increasing load. So they weren’t getting time to fix the system during the day.
Ponnappa remembers Paranjape saying: “I’m going to pull a few all-nighters. Are you up for it?” Paranjape and a colleague worked three nights at a stretch and re-wrote Go-Jek’s allocation system that matches drivers and customers. “That’s the heart of this machine and that’s what really needs to scale. If you’re scaling transport, what you’re really scaling is that allocation system.”
Go-Jek had just switched to Golang or Go, a programming language created at Google in 2009. Paranjape wasn’t familiar with it back then. “Niranjan [Paranjape] re-wrote the allocation system in Golang, a language that he did not know, in three nights flat. And that scaled everything up by 10x immediately.”
In 20 days, Go-Jek went from 20,000 drivers to 80,000 drivers.
“It was interesting times – the routine was proper sleep on the couch, hack at night, keep systems up during the day,” Ponnappa recalls.
Mind you, this was when C42 and CodeIgnition were just consultants to Go-Jek.
“By July 2015, we were doing a lot of the engineering for Go-Jek. By September, 100 percent of CodeIgnition and C42 – around 35 of us – were consulting for Go-Jek. And by October, we were in acquisition talks.”
After Paranjape and the team brought in the first set of optimizations in September 2015, Go-Jek’s scale picked up pace exponentially. When more customers start using the service, you start running short of drivers. Then you need to onboard drivers fast.
Rohan Mongo, Go-Jek’s COO, told the tech team: “Looks like our stability issue is okay. So I’m going to start hiring [drivers].” The team happily gave him the go-ahead.
Monga hired a stadium and started onboarding drivers, giving them the app, jacket, helmet, phone, and the necessary training. In 20 days, Go-Jek went from 20,000 drivers to 80,000 drivers.
“Our systems were running fine with 20,000 drivers and these many customers. Within 20 days the whole thing had gone up 4x. So we were back to square one, desperately trying to scale the systems,” Ponnappa says. “We do a lot of work to make the system stable and then our insanely amazing ops team goes out, kills it, and we’re again busy trying to firefight and keep things stable.”
We go through 3,000 resumes to hire a single developer.
It’s been tough, but what makes all of it work is the company’s lean engineering mindset. “We never throw people at problems. Instead, we always throw talent at problems.” For example, Go-Jek has a six-member team handling its app for drivers.
He says Go-Jek’s approach to scale is different from that of most Indian companies. In India, he feels, the general reaction if things are not going fast enough is to hire more people. That is in stark contrast to the approach of hugely successful companies like WhatsApp or Instagram. WhatsApp, for example, had a 35-people team tackling 400 million users when it was acquired by Facebook for US$19 billion. Instagram added a million users within hours of launching its Android app and in 10 days, grew to 40 million users across its iOS and Android apps. It only had six engineers then.
“We have that rigor in philosophy. You will find that nothing in this company [Go-Jek] goes manual. Every single piece is automated; there are no manual steps anywhere. Only the final stage which pushes a product to the customer will involve some human checks. So we have enormous focus on the engineering quality,” Ponnappa says.
“We go through 3,000 resumes to hire a single developer,” he adds.
He shares the example of how Go-Car, Go-Jek’s entry into cab-hailing, was launched. This service was rolled out in April 2016 to take on the deep-pocketed Grab from Malaysia and Uber from the US.
“We built and launched Go-Car in under four weeks, from scratch,” Ponnappa tells me.
The launch also happened 24 hours earlier than planned because of an accident. “Operations was not ready, PR was not ready, engineering was not ready. And somebody clicked the wrong button in Play Store by mistake and launched the product 24 hours early. Once you clicked that button, you can’t take back the app, so we simply launched it. Nothing went wrong,” he says. “Go-Car grew 10x in the next four weeks.”
Acquiring the C42-CodeIgnition combo was a master stroke for Go-Jek CEO Nadiem Makarim. Their 35-member team joined Go-Jek post-acquisition. “In many ways, these guys (the founders of C42 and CodeIgnition) taught me how to run a tech startup better,” Makarim told me while explaining the buyout decision.
“We were doing a few things wrong because for all of us, this is the first time we’re doing anything like this. These guys showed me how to manage and structure a tech organization; how to review the performance of developers and coders; how to create team-based dynamics; how to scale with processes; how to recruit effectively; how to communicate; and how to structure a technology organization. All of these things, I had very little knowledge of,” he said.
While Go-Jek is brutal when it comes to dealing with scale, not everyone in its tech team has computer engineering backgrounds. For instance, Paranjape is a mechanical engineer, while Go-Jek’s Group CTO Ajay Gore holds a bachelor of commerce degree.
At Go-Jek, writing software is not a low-level task; it’s at the very core of what we do. Leaders who code are better judges of technical skill in people.
Go-Jek does not care about your degree, your marks, and so on, Ponnappa says. The only thing that matters is your coding skills.
Every applicant to the tech team is asked to solve a college-level coding problem. “You’ll be shocked at what percentage of Indian applicants fail to clear that,” Ponnappa says.
“Everyone writes code,” is a guiding principle within the company. “We believe that software principals/architects/engineers can only do the right thing when they work on code themselves; that’s the only way to decide what’s working and what’s not. We don’t believe that software requires a 50,000 foot overview with people exclusively working on the blueprint. At Go-Jek, writing software is not a low-level task; it’s at the very core of what we do. Leaders who code are better judges of technical skill in people,” Gore explains.
Go-Jek sponsors and organizes a whole spectrum of events for the tech community. Every other weekend, it holds meetups at its India office, which Ponnappa says is “wide open to any technology meetup group that needs a space to gather. No questions asked.” Communities across the board – Clojure meetups, Android user groups, Ruby enthusiasts, groups around languages frameworks, tools, and so on – have been taking up the offer.
Gore, Ponnappa, and Paranjape are trustees of a non-profit that has been running tech community events for seven years now. They run three tech conferences in India and sponsor open-source contributors who can’t afford to travel to international conferences where they’ve been invited as speakers.
What we’ve realized over the years is, if you want to hire well, you have to support and grow the community – no strings attached,” Ponnappa says.