Все проекты

Кейс

TikTik

Яндекс.Такси для стройки: заказчик вызывает рабочего так же, как машину — видит его на карте, следит за подъездом и платит по факту. Приложения для Android и iOS, подбор исполнителя по расстоянию, живые координаты.

Заказчик
Собственный продукт, Казахстан
Годы
2026 — по сей день
Объем работ
Управление продуктом, разработка (мобильные приложения), хостинг
Стек
Flutter — Android и iOS, Python и FastAPI, PostgreSQL с PostGIS

Задача

Рабочего на объект ищут обзвоном: заказчик перебирает знакомых бригадиров, бригадир перебирает своих, и все это занимает часы. Сколько стоила работа и когда ее начали, потом никто точно не скажет.

Задача — свести заказчика и исполнителя так же быстро, как такси: кто свободен и ближе всех, тот и получает заказ. С той разницей, что происходит это на стройке.

Что сделали

Расчет на плохие условия

Стройка — это слабая связь, севшие телефоны и грязные руки. Три решения приняты именно из-за этого, и каждое из них видно в счете или в надежности.

Вход без мобильного интернета. Подтверждение номера идет не по СМС, а звонком-сбросом: телефон звонит пару секунд и сбрасывается, код — последние цифры номера. Это работает там, где данных нет вовсе, и стоит пару тенге вместо примерно двадцати пяти за СМС.

Подбор без фонового планировщика. Радиус поиска — это функция от возраста заказа, а не результат сработавшего таймера. Заказ, который ищет пять секунд, предлагается в трех километрах; заказ, который ищет минуту, уже не нашел никого рядом и уходит дальше. Ничего не нужно помнить между запросами, поэтому перезапуск сервера ничего не теряет.

Двойное нажатие ничего не ломает. Каждый переход в работе — одно условное обновление в базе, проверяющее статус, из которого заказ выходит. Решает база, а не чтение с последующей записью. На плохой связи два нажатия не запустят счетчик дважды и не выставят счет дважды.