"Зараз нас 170, і ми стрімко наближаємось до 200 осіб", — розповідає про склад технічної команди Uklon Віталій Дятленко, CTO та співзасновник компанії, яка в перші дні війни вимушено зосередилась на соціальних проєктах, за чотири дні зібрала "на колінці" MVP проєкту "Волонтер", а зараз активно наймає IT-фахівців для розвитку власного "суперзастосунку".
Интерв'ю з Віталієм Дятленком про те, які технологічні виклики команда розвʼязувала 2022 року, як розробляти "завʼязаний" на інтернеті та GPS застосунок під час блекаутів і чому Uklon додав Python до переліку своїх стеків.
"Ми щотижня коригували наші короткострокові цілі". Про перші місяці війни для команди та бізнесу
- Це наше перше інтервʼю з початку повномасштабної війни з росією. Що одразу впадало в око в ті дні — обставини змусили Uklon передусім зосередитись на соціальній місії: в хаосі та сум’ятті всім потрібно було замовити автівку і дістатись вокзалу або укриття; знайти водія, який перевезе батьків у безпечне місце тощо. Можете пригадати, якими були перші тижні війни для самої команди?
Ми до останнього сподівались, що всі попередження і погрози щодо війни не справдяться. Але план, яким ми рухатимемось у разі російської агресії, був прагматичним: зміна бюджету та планів з реалізації маркетингових проєктів, репріоритезація роботи продуктової команди, підтримка співробітників тощо. До того ж ми здобули великий досвід автономної роботи з дому ще за часів ковіду. Більша частина команди змогла відкинути паніку та шок і продовжувати роботу, за винятком кількох людей, які одразу потрапили в окупацію, проте всіх вдалось вивезти. Але, на жаль, під час порятунку людей в перші дні війни загинув член нашої команди Анатолій Бережний.
Чимало наших фахівців перших два тижні зосередились на розвʼязанні особистих питань, зокрема переміщення у безпечніші регіони. Дехто зробив це дуже швидко і повернувся до роботи буквально за кілька днів.
Насправді з перших днів ми почали отримувати багато запитів не просто про звичайне перевезення з точки "А" в точку "Б", а про цільову допомогу з доставки речей для волонтерів, ТрО, громадян у скрутних обставинах.
Вже 28 лютого ми зібрали "на колінці" MVP нашого проєкту "Волонтер" (ініціатива, у межах якої компанія безплатно підвозила пальне, їжу та медикаменти військовим, лікарням тощо — ред.). Спочатку все відбувалось у режимі чату в Slack: там закріпляли дописи про допомогу, координувались, визначали, хто і куди їде. Згодом ми побачили потребу розвивати продукт, додати його в SuperApp, автоматизувати всі тікети і процеси, пов’язані з задачами проєкту . На сьогодні йдеться про тисячі кілометрів і тисячі поїздок, тонни доставлених продуктів та іншої "гуманітарки". Наразі проєкт більше зосереджений на допомозі внутрішньо переміщеним особам, але він продовжує свою роботу. Ми працюємо з громадськими організаціями та партнерами через фонд Uklon Care, усі волонтерські замовлення покриваємо власним коштом.
Після "Волонтера" ми придивились до потреб клієнтів і побачили, що їм бракує функціонала для поїздок на великі відстані. Попри ціну, людям треба було терміново переїжджати з Києва до Ужгорода чи, скажімо, Львова. Наша платформа це підтримувала, але замовляти такі поїздки було незручно. Тож ми створили проєкт "Евакуація", який давав змогу замовити авто для поїздок на великі відстані між містами. Нині потреби в цьому продукті у тому вигляді, що був на етапі його запуску, немає, тож ми трансформували його у "Міжміст".
- Як ви розв’язували технічні проблеми в перші тижні війни, коли частина фахівців випадає з роботи, а кількість запитів до застосунку не зменшується?
Звичайно, деякі люди випадали з роботи — стрес, емоції, вигоряння, особисті проблеми. Війна сильно б’є по ментальному здоров’ю. Але наші команди здебільшого кросфункціональні, ми одне одного страхуємо. Всі завдання, які ставляться технічному відділу — командні, а не персональні. Отже, коли хтось випадав з роботи, то його завдання підхоплювали колеги.
Тоді не йшлося про винагороду чи посадові обовʼязки — вони бачили в цьому соціальну місію, обовʼязок перед суспільством.
- Як кількісно змінилась ваша команда за 2022 рік?
Вона зросла. Найскладнішими для бізнесу виявилися перші три місяці війни, бо доводилось функціонувати в умовах невизначеності: масові переміщення по країні, нестабільна пасажирська та водійська бази — все це впливало і продовжує впливати на наші плани. На той момент ми щотижня коригували короткострокові цілі. Найголовніше тоді було зберегти команду будь-яким способом.
На початку нам довелось дещо скоротити винагороди, прибрати бонуси на кшталт медичного страхування, курсів англійської тощо. З часом завдяки сумлінній і відданій роботі ЗСУ наші бізнес-процеси почали унормовуватись.
Однією з найперших цілей Uklon після початку вторгнення було якомога швидше повернутись до довоєнних показників і повернути бенефіти, навчання, підвищення кваліфікації, винагороди у повному обсязі для всіх фахівців.
Але кілька скорочень у нас все ж відбулось. Це не було масово — для деяких фахівців, які вже планували з нами прощатись, війна стала каталізатором цього рішення. Але ми намагались нікого не образити — надавали пакет вихідної допомоги з рекомендаціями, щоб полегшити подальше працевлаштування.
У Telegram: Чат водіїв таксі Києва
До кінця року ми повернулись ледь не до довоєнних планів зі зростання бізнесу та обсягів наймання.
- Підсумуймо тему виплат: тобто наразі ви повернулись до виплати компенсацій у повному обсязі для всієї технічної команди і відновили більшість бенефітів?
Так. До повних винагород ми повернулись ще влітку 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 технічних фахівців — і це геть нова менеджерська та інженерна ієрархія. Ми опинимось в новій реальності.