Technology

While the Taxi Is on Its Way: Who Came Up With Playing Games and Talking to Siri in inDrive While You Wait

iOS Engineer

Viktor Gordienko, a Senior iOS Engineer at inDrive who is responsible for developing and rolling out new platform features, talked about what helps the company retain users and save their time.

inDrive is a global mobility and urban services platform that connects passengers and drivers directly, allowing users to set or negotiate fares. Last year, inDrive’s net revenue grew 31%, reaching $601.6 million. The service is now available in more than 1,200 cities across 48 countries. Alongside classic in-city fares and delivery, the company is actively investing in intercity travel. This segment is especially in demand in places where public transport between cities is limited, overcrowded, or less convenient and affordable.

One of the engineers who has spent the past five years developing inDrive’s intercity module is Viktor Gordienko, the company’s Senior iOS Engineer. He designs and builds scalable native applications for Apple platforms using Swift, SwiftUI, and UIKit, following Clean Architecture principles. At the same time, Viktor is involved in product development on multiple levels, from building new features to solving business problems and organizing his team’s work. He is currently rolling out App Intents for Siri, a technology that opens up new ways for users to interact with the app.

Using Viktor Gordienko’s experience as an example, this article looks at what allows inDrive to scale into new markets, how a single letter in a city’s name can crash an app, and why users might want a mini-game while they wait for a driver.

A Taxi You Can Negotiate

According to Viktor Gordienko, every taxi service has to come up with its own signature feature to stand out in a crowded market. The one that has become part of inDrive’s identity, and sets it apart from most other apps, is its free price-setting model.

Unlike classic services, where an algorithm’s fare calculation is presented as final, inDrive uses that same kind of algorithm — factoring in distance, time, and demand — but treats its output as a starting point, not a verdict. The passenger can accept the suggested fare or propose their own price when placing an order. The driver sees the offer and can accept it, decline, or counter with their own price, kicking off a real-time negotiation between two parties. The algorithm informs the conversation, but people make the final call. 

“It gives both the passenger and the driver more freedom. They can agree on a fare that works for both sides instead of being at the mercy of an algorithm. For a lot of people, that’s the reason they chose inDrive,” Gordienko notes. He adds that this flexibility makes things harder on the engineering side. Unlike a standard model where the system calculates a price using a formula, here the system has to handle thousands of negotiations at once, sync offers and responses in real time, account for both parties’ interests, and stay stable under heavy load.

Viktor and his colleagues have had to continually refine the synchronization mechanisms so the system doesn’t buckle during rush hour, and to build monitoring that reacts instantly to the slightest anomaly. Over five years working on the intercity travel module, he has personally taken part in several major refactors aimed at keeping negotiations between drivers and passengers running smoothly even on the busiest days.

A Game Worth Playing

But what happens if a passenger places an order and no driver is found? In Viktor Gordienko’s experience, this is a problem many ride-hailing services face, and inDrive is no exception. It was especially pronounced on routes drivers are reluctant to take, such as remote districts and cities. Users would wait, often in vain, and end up switching to other apps, ones where the driver wouldn’t see the destination until after accepting the order.

“We didn’t want to change the terms. It mattered to us that both drivers and passengers knew the full route information upfront. So I started thinking about how to keep people engaged so they’d be willing to wait longer for a response to their order. That’s when I came up with the idea for a mini-game,” Gordienko says. While a passenger is waiting, after placing an order but before any driver has responded, the app now offers them a game to play. It doesn’t distract from the search itself, but it does help pass the time while drivers make up their minds.

The experiment is already live in certain cities, and early results have confirmed the hypothesis: the mini-game has increased the amount of time users spend on the waiting screen. That extra time means they end up receiving more offers from drivers, and the share of orders that get at least one offer has gone up. That has had a direct effect on a key business metric, too: fewer orders are being created and then canceled because no driver could be found.

Voice Control

Features like the mini-game make the waiting experience more engaging while also giving users more reasons to return to the app — and this reflects a broader trend in the industry: price and pickup speed are no longer real competitive differentiators, since virtually every player can offer them, so the real competition is now playing out in user experience. Companies are striving to make interacting with their services as intuitive and seamless as possible. 

The next phase is the widespread adoption of AI. Where an app’s job used to be simply carrying out a direct request as fast as possible, now it needs to anticipate what the user wants and fold itself naturally into the smartphone’s broader ecosystem.

This is one of the areas Viktor Gordienko is currently working on: rolling out App Intents. “This tool opens up access to the app through the Siri voice assistant. For example, a user no longer needs to unlock their phone, find the inDrive icon, and tap through menus. They can just say, ‘Siri, create an Intercity order in inDrive,’ and the system instantly brings up the right screen,” he explains. He notes that this is just the first step toward full integration with iOS as part of the upcoming Apple Intelligence rollout. A major update to that platform in iOS 27 was already announced at WWDC26, with a public release planned for the fall.

How Language Shapes Code

Rolling out new features is only half the job; they also need to be adapted for each market. inDrive, for instance, already operates across Latin America, where the app needs to account for local geography, long routes, address formats, and how maps work in each region, along with how users there are used to negotiating rides. The team has to account for these local specifics across different markets, not simply translate the app into Spanish or Portuguese. Viktor Gordienko and his team are handling exactly this kind of adaptation for the intercity travel module: testing how existing mechanics behave under new conditions, refining them for the quirks of specific markets, and making sure the changes don’t break scenarios that are already live.

Beyond language nuances, the team also has to account for technical realities on the ground. In regions with slow or unstable internet, the app still needs to feel responsive even while content is loading. To handle that, the team uses skeleton screens and shimmer effects, elements that visualize the structure of a screen and give users visual cues of background activity while the actual content  is loading.

But the trickiest problems come up when language quirks start affecting not just how the app looks, but its underlying logic. A few years ago, Viktor’s team ran into a telling example of this: the team noticed a sharp spike in crashes in Egypt. They couldn’t reproduce the bug under normal conditions; the app ran fine, and the developers didn’t even know which city search was triggering it. After a thorough investigation, Viktor traced the problem to the Arabic name of one specific town.

“When you search for a city, the app highlights the part of the name that matches your search, to make it easier to find what you’re looking for. But with one Egyptian city, the algorithm mishandled certain characters in the Arabic name, and that crashed the app. I fixed the issue by adjusting the highlighting logic to account for the different character count in Arabic,” Gordienko explains.

It All Comes Down to the User’s Time

Behind the sense of simplicity users experience are dozens of engineering decisions they never see. One of them is the rollout of Live Activities and dedicated widgets for the intercity travel module, which Viktor Gordienko is currently working on. This lets users get up-to-date trip information right from the lock screen or home screen without opening the app.

He previously gave a talk specifically about widgets at an iOS meetup, explaining why he sees them as an important part of the modern user experience. In his view, these tools save users time by giving them immediate access to key information in a convenient format.

“Time is the most valuable resource there is. Our app is used by millions of people around the world every day. I find it meaningful to build a product that affects people’s everyday lives. Someone made it to an important meeting thanks to inDrive, or got home safely from another city, or managed to earn a bit more by completing one more trip. That’s what keeps me motivated to keep developing the product: making it more reliable, more convenient, and more useful for people,” Gordienko concludes.

Comments

TechBullion

FinTech News and Information

Copyright © 2026 TechBullion. All Rights Reserved.

To Top

Pin It on Pinterest

Share This