paint-brush
Building a Unicorn: My Decade-Long Career With inDriveby@michil
9,010 reads
9,010 reads

Building a Unicorn: My Decade-Long Career With inDrive

by Michil AndrosovNovember 15th, 2023
Read on Terminal Reader
Read this story w/o Javascript

Too Long; Didn't Read

Embark on a fascinating journey through the history of inDrive, the ride-hailing service that emerged from the extreme climate of Yakutsk to become a unicorn company. Michil Androsov, inDrive's CTO, shares insights into the early days of development, the challenges faced in Yakutia's harsh conditions, and the unique pricing model that sets inDrive apart. From the pioneering days of iOS development to the expansion beyond Yakutsk and into other Russian cities, discover the key milestones that shaped inDrive's evolution. Stay tuned for more stories on the technical and non-technical challenges faced by inDrive on its path to success.
featured image - Building a Unicorn: My Decade-Long Career With inDrive
Michil Androsov HackerNoon profile picture


Despite the somewhat pretentious title, the purpose of this article is not to present a success story or give some “hot tips” based on useless platitudes and truisms. I just want to share a few stories about the company I've spent almost my entire professional career with. About how this service came to life in a distant and cold city called Yakutsk, I share my perspective on inDrive from an engineer's point of view.


Hi everyone! My name is Michil Androsov, and I've been with inDrive for 10 years now. I joined the company when there were three people on the development team, and left it as CTO with 500 people under my command. Over the years, the company has grown from a local startup to a unicorn company with hundreds of millions of dollars invested by the world's top funds.


inDrive(former inDriver, short for “Independent Drivers“), is a ride-hailing service from Yakutsk(the capital of Sakha Republic) with one big difference from all the others: the fare for the trip is set by the passengers themselves.


Unlike its competitors, inDrive’s pricing model involves no complicated algorithms based on hundreds of criteria. The entire system is as transparent as it can be, with only two parties involved in the process: the driver and the passenger who negotiate the fares amongst themselves and agree on a price that works for both parties. This is a self-balancing system.


Sakha Republic, also known as Yakutia, is a republic located in the Far East of the Russian Federation. Mostly inhabited by the local indigenous people, the Yakuts, but quite multiculturalized. The republic has a reputation for an extreme and severe climate.


The Yakutsk vibe

Yakutsk in winter. Photo by Maria Vasilieva, YSIA


Here is why the service emerged in Yakutsk, of all places. In my book, two reasons explain this:


  1. Cold climate. With temperatures outside dipping down to 50 degrees Celsius below zero, rather than go for a walk in the park or take a nature hike, people tend to stay at home. They have to find ways to keep themselves entertained and, more often than not, they spend their time in front of a computer. Combined with the top schools that lay a special focus on physics and math, of which there are many in the area, there is a chance that a lot of these kids will become programmers. At least, that's how I explain this to myself.


  2. Isolation from the mainland. Because of this, the Internet was very expensive and slow. The Internet worked with radio relay technology. And you had to pay for every megabyte. A couple of downloaded movies from the internet could cost a worker's salary. So employees of Internet service providers would download something from the Big Internet and put it on the intranet. I remember some of the guys who even engaged in satellite fishing.


It’s due to these two factors that Yakutsk ended up having its own"Internet", and with it the Internet portal Ykt.ru(currently down) - local web portals like yahoo or dmoz, craigslist, napster, image photo board, news, forums all in one. It was a local variety of Alphabet, and all of the few IT specialists in Yakutsk wanted to get a job there. The company that owned the portal was called Sinet(short for Sakha Internet) — a company within which inDrive was soon established.


It's worth pointing out here that in addition to Sinet, there was a large game-development company called Mytona in Yakutsk, and it also acted as a magnet for local IT guys. That company started with two brothers from the small northern village of Khonuu who borrowed some money from their parents to start developing their first indie game. As things stand today, inDrive and Mytona have "moved" out of Russia.


Independent Drivers

As far as cab services were concerned, it was difficult and expensive to get a ride in Yakutsk before inDrive made its appearance on the scene. Things worked the old-fashioned way, and you had to call first and book a vehicle via the dispatcher and then wait a long time for the driver to arrive. To make matters worse, your call might be forgotten and then the wait for the car exceeded all possible limits.


A separate pain point was the New Year holidays(major holiday in the country, two weeks of partying, no one works), when cab services upped their prices multiple times over, thus pushing the passengers over the edge. In the winter of 2012, several smart guys created a Vkontakte group called "Community of Independent Drivers of Yakutsk". In it, you could indicate that you needed to go from point A to point B and leave your phone number. Then a caring driver who just happened to be headed that way might call you to arrange a ride. At the end of the trip, the passenger had to leave money with the driver to cover the cost of gas.


Sure thing, very soon, instead of gas price compensation, people started paying for the ride. Over a short time, the group gained massive popularity and began to gradually cut out traditional cab services.

inDrive. Early days

At that time, Arsen Tomsky, the director of Sinet, saw this group as a promising idea for expanding his business and decided to buy it out. Essentially, that point marks the beginning of inDrive's existence.


The icon of the first version of iOS app.  iOS and Android app had different icons at the time


In October 2013, I joined the company as the third developer when the startup was in its fifth month of operations. At that time, the app's Android version was already available, and our guys were looking for an iOS developer. Before joining the company, I worked for a year in a small startup studio developing interactive books on iPad for kids, first in our native language. Right at that point, I was thinking of changing jobs.


I had one big advantage going for me - my MacBook, which was a rarity in Yakutsk at the time. I thought this was my chance to try and get a job at Sinet. I had no experience in iOS development, but somehow (most likely due to a lack of suitable candidates) I succeeded in landing a job at my dream company.


My first workspace and my personal Macbook


iOS development was native: I coded in Objective-C. Now the situation hasn't changed much, the only difference being that Swift is now commonly used instead of Objective-C. While Android was coded in Java, the backend was written in PHP. Many of the things laid down back then remain at the core of the inDrive codebase today.


The core iOS development team at that time was just me. In 2015, a second person came on board to join me. Once a third one was hired in 2016, we started growing very fast. There were no cross-platform teams back then— just iOS-, Android-, backend development teams, and QA testers.


It makes me wonder how the inDrive driver accepted ride requests in those days. It was called a call-based arrangement: a passenger places an order, nearby drivers simultaneously see it on their request list, and those who like the offer click on it. The peculiar thing back then was that we just connected a driver and a passenger via the cellular communication network! Sometimes, multiple drivers would call in for the same ride request at the same time. After the call, we would show the passenger a list of all the drivers who had called so they could pick the most suitable one. The whole set-up seemed to operate based on the principle of "the order goes to whoever calls first". Because of this, there were customer support complaints from drivers reporting that they didn’t have enough time to pick up the order.



That screen displays the list of phone numbers of the drivers who called



For a long time, there was a legend that iOS had a much higher chance of securing an order than Android. There was some truth to this, as the interface did indeed run faster on iOS. For a long time, we did not introduce"call-less" order acceptance processes, which were more commonly used by other ride-hailing services, thinking that passengers would have more trust in the driver if they had time to talk to each other on the phone before the ride. Obviously, such a strategy had its limitations, and quite serious ones at that.


Also, the first version of the app had an interesting tab called "Available Drivers". By clicking on it, you could go to the map, find an available driver, call them personally, and arrange a ride. Understandably, back then there were no encrypted connections yet.


In addition, there was a third way to find a driver: after creating a ride request (order), I could find a suitable driver on the map and send them my offer via a personal message. This was called "Personalized Order”.



This is the screen after creating an order. A passenger is waiting for the driver to call. While still here, they can choose a specific driver and send them a "Personalized Order”



Nowadays, the guys sometimes miss the days when everything was as easy, fast, and as fun as possible. I didn't know what repositories were, and after the release of each version, I archived the project folder and saved it on my hard drive (hundreds of archives are still stored there) and Google Drive. In the early years, our project in Xcode was called startPage, whereas our product tasks were written down directly on the whiteboard.


I wasn’t yet familiar with the basic programming patterns and architectures of iOS development. The end result was a stack of Massive View Controllers and storyboards with dozens of screens. This was genuine StackOverflow programming.


iOS developers will understand the pain depicted here. Sorry about the quality, but I could only find this picture


Expanding beyond Yakutsk

Gradually, our startup team began to grow. New people joined, and the first simple processes emerged. In 2014, the company already had 10 staff members. It was at that time that we flew over to Novosibirsk to participate in a conference. It was the three of us, the whole development team. This was another significant milestone in the company's history, as in Sakha Republic you feel isolated from the big wide world outside. Trips like this were a major event for us.


At the end of 2013, we were joined by Sasha Pavlov, the creator of the VKontakte group, which was bought out by Arsen Tomsky. With him on board, we began our first attempts to launch in other cities. One day, Sasha flew to Sakhalin to talk things over with drivers. He printed out some promotional pamphlets and started handing them out in the mall parking lot, but was chased away by security. Eventually, though, we had a successful launch in Sakhalin and it immediately showed excellent growth.


Then we started launching in other northern and eastern Russian cities: Irkutsk, Tomsk, etc. These areas resemble Yakutsk in that they have similar severe climatic conditions, and there are no other major apps there. In those cities, the app started showing growth almost instantly.


We used to sit in our little office and daydream, "Just imagine, one day we will be earning more than Ykt.ru." We had a laugh, but in reality that moment came very quickly.


Our CEO always wanted a bigger story, and not related to Yakutsk. He's an entrepreneur to the core, and he always seeks new challenges. It seemed obvious and logical to us, so no one questioned why we were doing what we were doing.


It was always cool to figure out how much we, some guys from Yakutsk, could compete with the big companies. At that time, our main competitors were Taxi Maxim and Yandex Taxi. We weren’t thinking about Uber yet. But soon we had to give the situation plenty of thought, but I'll tell you more about it in my next posts if you're interested.





P.S. This is my first experience writing an article and I want to write more about the history of inDrive’s evolution, how I became CTO, and what technical and non-technical challenges we faced and had to overcome. So it would be awesome to get your feedback on what could be improved upon here and what you'd be interested in reading about in future posts. Share them in the comments!


P.P.S. The milestones of Sinet’s and inDrive’s evolution are described in more detail in the book by the company's CEO: “inDriver: From Yakutsk to Silicon Valley”.