"Сейчас нас 170, и мы стремительно приближаемся к 200", - рассказывает о составе технической команды Uklon Виталий Дятленко, CTO и соучредитель компании, которая в первые дни войны вынужденно сосредоточилась на социальных проектах, за четыре дня собрала "на коленке" MVP проекта "Волонтер", а сейчас активно нанимает IT-специалистов для развития собственного "суперприложения".
Интервью с Виталием Дятленко о том, какие технологические вызовы команда решала в 2022 году, как разрабатывать "завязанное" на интернете и GPS приложение во время блекаутов и почему Uklon добавил Python в перечень своих стеков.
"Мы еженедельно корректировали наши краткосрочные цели". О первых месяцах войны для команды и бизнеса
- Это наше первое интервью с начала полномасштабной войны с Россией. Что сразу бросалось в глаза в те дни — обстоятельства заставили Uklon прежде всего сосредоточиться на социальной миссии: в хаосе и смятении всем нужно было заказать автомобиль и добраться до вокзала или укрытия; найти водителя, который перевезет родителей в безопасное место и т.д. Можете вспомнить, каковы были первые недели войны для самой команды?
Мы до последнего надеялись, что все предупреждения и угрозы войны не оправдаются. Но план, по которому мы будем двигаться в случае российской агрессии, был прагматичным: изменение бюджета и планов по реализации маркетинговых проектов, реприоритизация работы продуктовой команды, поддержка сотрудников и т.д. К тому же, мы получили большой опыт автономной работы из дома еще во времена ковида. Большая часть команды смогла отбросить панику и шок и продолжать работу, за исключением нескольких человек, сразу попавших в оккупацию, однако всех удалось вывезти. Но, к сожалению, во время спасения людей в первые дни войны погиб член нашей команды Анатолий Бережной.
Многие наши специалисты первые две недели сосредоточились на решении личных вопросов, в частности перемещения в более безопасные регионы. Некоторые сделали это очень быстро и вернулись к работе буквально через несколько дней.
На самом деле с первых дней мы начали получать много запросов не просто об обычной перевозке из точки "А" в точку "Б", а о целевой помощи по доставке вещей для волонтеров, ТРО, граждан в сложных обстоятельствах.
Уже 28 февраля мы собрали "на коленке" MVP нашего проекта "Волонтер" (инициатива, в рамках которой компания бесплатно подвозила горючее, еду и медикаменты военным, больницам и т.п. – ред.). Сначала все происходило в режиме чата в Slack: там закрепляли сообщения о помощи, координировались, определяли, кто и куда едет. Впоследствии мы увидели необходимость развивать продукт, добавить его в SuperApp, автоматизировать все тикеты и процессы, связанные с задачами проекта. На сегодняшний день речь идет о тысячах километров и тысячах поездок, тоннах доставленных продуктов и другой "гуманитарке". Пока проект больше сосредоточен на помощи внутренне перемещенным лицам, но он продолжает свою работу. Мы работаем с общественными организациями и партнерами через фонд Uklon Care, все волонтерские заказы покрываем за свой счет.
После "Волонтера" мы присмотрелись к потребностям клиентов и увидели, что им не хватает функционала для поездок на большие расстояния. Несмотря на цену, людям нужно было срочно переезжать из Киева в Ужгород или, скажем, Львов. Наша платформа поддерживала это, но заказывать такие поездки было неудобно. Мы создали проект "Эвакуация", который позволял заказать авто для поездок на большие расстояния между городами. Сейчас потребности в этом продукте в том виде, что был на этапе его запуска, нет, поэтому мы трансформировали его в "Межгород".
- Как вы решали технические проблемы в первые недели войны, когда часть специалистов выпадает из работы, а количество запросов к приложению не уменьшается?
Конечно, некоторые люди выпадали с работы – стресс, эмоции, выгорание, личные проблемы. Война сильно сказывается на ментальном здоровье. Но наши команды в большинстве своем кроссфункциональны, мы друг друга страхуем. Все задачи, которые ставятся техническому отделу – командные, а не персональные. Итак, когда кто-то выпадал с работы, его задачу подхватывали коллеги.
Тогда речь не шла о вознаграждении или должностных обязанностях — они видели в этом социальную миссию, обязанность перед обществом.
- Как количественно изменилась ваша команда за 2022 год?
Она выросла. Самыми сложными для бизнеса оказались первые три месяца войны, потому что приходилось функционировать в условиях неопределенности: массовые перемещения по стране, нестабильная пассажирская и водительская базы – все это влияло и продолжает влиять на наши планы. На тот момент мы еженедельно корректировали краткосрочные цели. Самое главное тогда было сохранить команду любым способом.
В начале нам пришлось несколько сократить вознаграждения, убрать бонусы типа медицинского страхования, курсов английского и т.д. Со временем, благодаря добросовестной и преданной работе ВСУ, наши бизнес-процессы начали нормироваться.
Одной из первых целей Uklon после начала вторжения было как можно скорее вернуться к довоенным показателям и вернуть бенефиты, обучение, повышение квалификации, вознаграждения в полном объеме для всех специалистов.
Но несколько сокращений у нас все же произошло. Это не было массово — для некоторых специалистов, уже планировавших с нами прощаться, война стала катализатором этого решения. Но мы пытались никого не обидеть — предоставляли пакет выходных пособий с рекомендациями, чтобы облегчить дальнейшее трудоустройство.
К концу года мы вернулись чуть ли не в довоенные планы по росту бизнеса и объемам найма.
- Подытожим тему выплат: то есть пока вы вернулись к выплате компенсаций в полном объеме для всей технической команды и восстановили большинство бенефитов?
Да. К полным вознаграждениям мы вернулись еще летом 2022 года.
- А в какую сторону за это время изменилось количество водителей?
Самым страшным месяцем для бизнеса стал март 2022 года. Тогда все наши бизнес-показатели упали в семь раз. Количество водителей уменьшилось кратно — сейчас оно только приближается к довоенным показателям, ведь многие возвращаются в родные города и ищут работу. Мы наблюдаем линейный рост с апреля. А вместе с увеличением количества водителей увеличивается количество заказов. В конце 2022 мы почти вышли на показатели 2021-го. В общем, чувствуем восстановление показателей по всей стране, а также рост в западных регионах Украины, ведь туда вынужденно переместились многие люди.
"Недавно к нашим стекам добавился Python". О технической команде и вызовах через блекауты
- Сколько сейчас технических специалистов в команде Uklon?
170, и мы стремительно приближаемся к 200. Интересно, что к 2016 году команда разработки насчитывала до 10 человек, тогда все происходило так: утром обсудили идею, а после обеда уже задеплоили. Но с появлением глобальных конкурентов увидели, что достаточно много векторов, которые нужно усиливать. Постепенно начали выкристаллизовываться части нашего продукта, изолированные продукты, пассажирские и водительские части, а вместе с этим росла и команда.
- В интервью 2021 года вы говорили, что весь ваш back-end пишется на .NET, а front-end — на Angular, Swift и Kotlin. Расширился ли технологический стек вместе с ростом команды?
Стек основных продуктов тот же, но недавно добавился еще один язык — Python. Сейчас у нас мощная команда экспертов по Data Analysis и Data Science, и это их основной рабочий язык. Вся магия с новым функционалом — priority, pickup points, drop off рекомендации, прогнозы по пробкам, — это работа с большими данными, в основном на Python.
Вместе с ростом команды мы можем решать комплексные задачи, такие как пробки на маршрутах. За 2022 год мы разработали собственную систему обнаружения пробок, которая работает в режиме реального времени и не хуже, чем у "большого брата" [вероятно, речь идет о Google - ред.]. Эта система помогает ускорять подачу заказов, и мы активно используем все данные для переобучения наших нейронных моделей и работы с ценами, коэффициентами.
Есть ряд интересных инженерных и математических задач. В водительском приложении сходятся много сложных алгоритмов, и мы заинтересованы в сбалансированном распределении заказов среди водителей, чтобы максимизировать их почасовые доходы и при этом снизить время ожидания для пассажиров. Важно, чтобы поездка была более короткой, но не слишком дешевой.
- Специалистов какого грейда сейчас ищет Uklon? Нанимаете ли джуниоров? И насколько изменился спрос на специалистов разного уровня во время войны?
В основном мы ищем специалистов уровня Middle+ и Senior. Но недавно заложили в план найма несколько вакансий для джуниоров. С одной стороны, это позволяет "сращивать" инженеров внутри команды, с другой - помогает развиваться старшим специалистам, берущим менторство над новичками. Мы ищем Junior .NET Engineer в команду MapService — думаю, выпускникам вузов математического профиля будет интересно вместе с нами решать сложные алгоритмические задачи не на бумаге, а в реальном приложении.
Также ищем QA-специалистов и DevOps, но более опытных. Обычно новые команды внутри Uklon формируются из наших квалифицированных специалистов, которых мы переводим на высший грейд и усиливаем их людьми снаружи.
Но вообще джуны почти не отзываются на наши вакансии. И я вижу, что качество специалистов на рынке за последний год ухудшилось. Многие не дотягивают по технической квалификации и soft skills, которым мы уделяем большое внимание.
Впрочем, это не мешает нам находить крутых инженеров — разве что рекрутинговой и технической командам приходится прилагать больше усилий.
- Я увидел у вас вакансию Senior-разработчика "1С" — много ли процессов Uklon завязано под этот продукт? И планируете ли со временем отказываться от "1С" в пользу украинского или западного аналога?
Немного. Мы ищем варианты для замены и готовы перейти на новую систему, как только появится возможность безболезненно это сделать. К сожалению, несмотря на все попытки предложить сильный украинский продукт для автоматизации бизнеса, который будет эффективно работать и для малой, и для крупной компании, наверное, на это уходит немного больше времени. Это вынужденная и временная ситуация.
"Наш продукт сильно завязан на интернете и GPS". О вызовах, возникших из-за блекаутов и воздушных тревог
- После массированных обстрелов инфраструктуры 10 октября у украинцев возникли существенные трудности с доступом в интернет: добраться из одной точки в другую стало проблематично, ведь связь "падала" то у пассажиров, то у водителей. Вместе с тем происходили сбои в GPS. Как вы технически справляетесь с похожими вызовами?
Наш продукт сильно завязан на интернете и GPS, и это действительно большая проблема. Мы проанализировали метрики — requests per second (rps), количество трафика, чтобы найти решение для того, чтобы наши приложения работали в условиях ограничений, нехватки интернета или света.
Раньше мы не сильно акцентировали на том, сколько информации выводится на основной экран приложения и насколько она важна, чтобы заказать поездку, сколько трафика и rps уходит от пользователя. Но уже после 10 октября провели ряд исследований с продуктовой точки зрения, подумали над приоритезацией, без чего продукт не может существовать – автокомплиты, пины, карта, расчет стоимости, – и выделили менее приоритетные вещи, которые можно отложить или которые могут работать с ошибкой при условии плохого Интернета.
Техническая команда бэкенда и фронтенда начала агрессивно подходить к сжатию данных, в каких протоколах приводим, сколько адресов в автокомплите и т.д. В то время как нет интернета, мы предлагаем заказывать Uklon через сайт Rider.Lite. Это облегченная вебверсия приложения, ограниченная по функционалу, если сравнивать с нативным приложением, но ее размер измеряется в килобайтах!
Со стороны водителя мы оптимизируем объем данных, которые он передает пассажирам. И все равно остается сложная техническая задача по обеспечению корректного поиска локаций пассажира и водителя — при условии работы РЭБ это сложно делать.
- Изменялись ли формулы расчета стоимости поездки и сопутствующие коэффициенты в 2022 году?
В общем, формирование цены у нас устойчивое: есть базовый фиксированный тариф, а также динамический коэффициент. На динамический коэффициент влияет много факторов – к ним относится все, что нарушает баланс спроса и предложения. За 2022 год появилось множество данных, которые мы агрегировали и обработали. Например, уровень пробок стал частью модели по формированию цены. Но в сегодняшних реалиях на цену влияют и тревоги.
- То есть во время тревог пассажиры чаще заказывают авто, соответственно коэффициент увеличивается?
Да. Это необычный фактор, не просто час пик или перекрытие дорог. Тревоги влияют на желание людей как можно быстрее переместиться в безопасное место: пункт несокрушимости, метро или бомбоубежище. Это создает дисбаланс заказов и свободных водителей. Поэтому думаем о том, как правильно реагировать на резкий рост количества пассажиров из-за воздушных тревог.
Большое техническое достижение за прошлый год мы научились правильно перекрывать определенные дороги для пассажиров и водителей. Раньше у нас были проблемы с Парковой дорогой, где действует ограниченный режим движения; превращенной в пешеходную улицу Сагайдачного в Киеве; площадью Рынок во Львове, где движение разрешено только по пропускам. Сейчас все работает правильно.
В Киеве и некоторых других городах перекрывают мосты, что действительно влияет на балансировку и построение маршрутов. Сейчас думаем, как правильно прокладывать маршруты поездок в такие периоды, чтобы ни для кого не было неожиданностью, что через мост нельзя проехать.
"Мы каждый день сталкиваемся с жестокой реальностью". О показателях бизнеса и планах на 2023 год
- Недавно ваш партнер Сергей Смусь сообщил, что 2023 год для вашей компании пройдет без роста. Вы можете это подтвердить?
Да. Но многие показатели, которые мы получили во время стратегических сессий, свидетельствуют о том, что и проседания бизнеса в 2023 году не будет. У нас очень амбициозные цели, но мы каждый день сталкиваемся с жестокой реальностью. Мы сосредоточены на гибкой, краткосрочной планировке и корректируем текущие темпы движения компании.
- С 1 августа Uklon представил себя как Uklon SuperApp. Анонс выглядел мощно — сток, как в инстаграмме, долгожданный межгород. Но прошло полгода, и мне, как обычному пользователю, не совсем понятно, в каком направлении развивается продукт, чего можно ожидать, кроме сторис и межгорода?
Из-за российской агрессии все несколько затянулось во времени. Замысел SuperApp – развитие дополнительных сервисов на базе нашего основного продукта. Пока это ride-hailing, "Межгород", Driver, "Волонтер", который вы как обычный пользователь видите. Сейчас развиваем новое направление – доставку, им занимается отдельная команда. В delivery-сегменте скоро появится возможность перевозок крупногабаритных грузов, доставка будет работать как в C2C, так и в сегментах B2B.
Благодаря огромным усилиям технической команды за лето, мы переработали интерфейс в клиентском приложении, а также доработали back-end для корректного добавления новых продуктов.
У нас есть стратегические цели по продуктам и партнерствам, которые добавят ценности для пользователя, кроме перевозок из точки "А" в точку "Б". Но не могу их перечесть, ведь сейчас ведем переговоры с партнерами.
- Можете назвать хотя бы общее направление новых продуктов? Собственного банка от Uklon мы пока не ждем?
На самом деле, я бы хотел этого. Если молодые финтех-стартапы готовы сотрудничать и стать частью нас, мы рассмотрим это как один из потенциальных шагов для будущего расширения проекта. Речь идет не об отдельном "банке в смартфоне", а финтех-продукте на базе нашей платформы. Это помогло бы реализовать многие проекты, идеи которых лежат в наших бэклогах.
- Какие главные амбиции на этот год вы как СТО, какие продукты планируете реализовать, чтобы уже в 2024-м компания показала рост?
У нас есть ряд стратегических целей — это, прежде всего, экспансия в другие страны и развитие текущих продуктов. Экспансия является нетривиальной задачей и требует со стороны технической команды адаптации структуры продукта под запросы других рынков.
Кроме того, в наших оптимистичных прогнозах мы закладываем в 2023 году рост количества заказов, а также надеемся на развитие доставки.
В этом году, надеюсь, мы перейдем к завершению нашей новой платформы для работы с Big Data. Мы требуем от специалистов, чтобы все в продукте анализировалось, оценивалось и работало на основе обширных данных. Без аналитики и Data Science невозможно эффективно работать. Это огромный кусок работы.
С другой стороны, перед нами стоит большая работа по организации процессов, ведь мы постоянно расширяем команду, и это добавляет новые менеджерские вызовы. Вскоре Uklon будет насчитывать 200 технических специалистов — и это новая менеджерская и инженерная иерархия. Мы окажемся в новой реальности.