Привет! Я Максим Мялкин, управляющий партнер и руководитель мобильной разработки в KTS.

Сегодня я хочу поделиться историей моего знакомого и бывшего студента Сергея Ракова. Его карьера сложилась довольно необычным образом: от инженера-конструктора в Богородицке он прошел путь до Android-разработчика в Катаре.

Недавно мы провели с ним интервью и обсудили, тяжело ли ему далась смена профессии, чем занимается его компания и почему для разработки мобильного приложения они выбрали KMP.

Также коснулись темы культурных особенностей. Да, заголовок — не кликбейт, в Катаре по-прежнему существуют телесные наказания. Историю о них мы расскажем в конце; забегая вперед, знакомые Сергея поплатились таким образом за пьяное вождение (осуждаем).

Оглавление

О своем бэкграунде

Я Сергей Раков, занимаюсь разработкой мобильных приложений. Отучился шесть лет в Бауманке по специальности “Робототехника и автоматизация производства”. Программирование у нас было, но немного: на младших курсах осваивали C, на старших — познакомились с Python. То есть к выпускному какие-то базовые вещи я знал, но неглубоко.

Какое-то время я программировал промышленные контроллеры, потом работал конструктором — так прошли четыре года после универа. В какой-то момент я захотел освоить Java, чтобы расти дальше в автоматизации: в течение года в свободное от работы время я проходил базовый курс на Stepik, а когда закончил его — заметил, что руки чешутся применить новые знания на практике.

После этого я стал смотреть в сторону Android-разработки: все-таки это проще, потому что на одной Java под эту платформу можно было и UI отрисовать, и сервер настроить. Сначала я сам сделал небольшое приложение, потом наткнулся на курс Metaclass по Android-разработке и записался на него.

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

В это же самое время мой знакомый вышел на роль CTO в катарскую IT-компанию: его пригласили туда как раз для того, чтобы нанять штатных девелоперов и наладить процессы разработки. Пообщавшись со мной, он пригласил меня на собеседование, по итогам которого сделал оффер. Кстати, знания с курса Metaclass очень пригодились и на собесе, и в работе — за это KTS большое спасибо.

О компании

Компания называется Snoonu, основное направление — доставка еды, но с 2022 года мы охватываем и другие сферы рынка, а наше приложение стало супераппом. Помимо еды из ресторанов, Snoonu привозит товары из магазинов и аптек, доставляет посылки между пользователями, развивает свой маркетплейс, агрегирует продажу билетов на мероприятия и связывает прачечные с клиентами.

Около 7 лет назад катарский предприниматель Хамад Мубарак Аль-Хаджри вместе со своими партнерами открыл Snoonu как стартап по доставке еды. С тех пор компания выросла до уровня местного гиганта, который охватывает заметную часть B2C-рынка.

Фото Наиля Гильфанова, https://www.instagram.com/ngilfanov *
Фото Наиля Гильфанова, https://www.instagram.com/ngilfanov *

Сам я работаю в направлении “афиши”: с помощью этой услуги пользователи могут купить билеты на спортивные мероприятия, фестивали, конференции и другие события, а в ближайшем будущем мы планируем добавить интеграции с крупными партнерами.

Команда Snoonu далеко не однородная: в самой компании работают сотрудники более чем 90 национальностей. Но программисты, тестировщики и дизайнеры в моей команде в основном из России и стран СНГ, поэтому на “технических” встречах мы общаемся друг с другом по-русски, а общение между юнитами ведется на английском. Большинство моих коллег-разработчиков — казахи, кроме них в команде есть узбеки, таджики и армяне. В других юнитах еще работают ребята из Беларуси и Кыргызстана.

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

Фото из личного архива. Fairmont Doha — роскошный пятизвездочный отель.
Фото из личного архива. Fairmont Doha — роскошный пятизвездочный отель.

Прямо сейчас я работаю удаленно из Москвы, и устраивался я изначально на полную удаленку. Но в один момент компания пригласила меня поработать из офиса в Катаре, и я согласился съездить туда на полгода. Съездил, не пожалел, и совсем недавно вернулся домой.

Фото Наиля Гильфанова, https://www.instagram.com/ngilfanov *
Фото Наиля Гильфанова, https://www.instagram.com/ngilfanov *

О технологиях

Как пришли к KMP

Первые три-четыре года разработка мобильного приложения Snoonu была на аутсорсе, и само приложение было написано на Swift и Kotlin под разные ОС. Чуть больше трех лет назад было решено создавать свой юнит разработки (в том числе мобильной), чтобы снизить зависимость от подрядчиков и повысить капитализацию. А два года назад, весной 2023, мы попробовали внедрить KMP в качестве эксперимента.

Этим экспериментом мы хотели упростить жизнь разработчикам. Поскольку раньше разработкой приложения под iOS и Android занимались разные аутсорс-команды, они по-разному реализовывали одну и ту же бизнес-логику. Мы хотели привести все к единообразию. КМP решает эту проблему автоматом, потому что под две платформы пишется один и тот же код.

Фото Наиля Гильфанова, https://www.instagram.com/ngilfanov *
Фото Наиля Гильфанова, https://www.instagram.com/ngilfanov *

Почему не Flutter

Для перехода на Flutter пришлось бы переобучать или перенанимать команду целиком, а KMP — нативная для Android-разработчиков технология, и им не нужно отдельно ее изучать.

Мне, например, хватило получаса, чтобы разобраться. Я созвонился с более опытным коллегой, который показал мне, как работать с запросами, и дальше я уже был готов самостоятельно писать на KMP. Единственное — пришлось еще какое-то время потратить на освоение фреймворка Koin, но в остальном сложностей не было никаких. По нашему опыту, Kotlin-разработчик может разобраться с KMP в пределах одного дня.

А вот тем, кто умеет работать только со Swift, переход действительно дается тяжелее.

Я сам обучал одного из своих коллег iOS-еров работать с Android Studio, знакомил с нюансами и так далее — только на это ушло пару дней. Потом мы прошли через четыре итерации код-ревью на KMP, каждую из которых я оставлял ему комменты. И где-то на пятый или шестой код-ревью он смог отдать код на KMP, который не требовал никаких доработок.

Фото из личного архива. Old Doha Port — это порт с круизным терминалом, марина для яхт, роскошные отели, жилые апартаменты, бутики, рестораны и развлечения на набережной у моря.
Фото из личного архива. Old Doha Port — это порт с круизным терминалом, марина для яхт, роскошные отели, жилые апартаменты, бутики, рестораны и развлечения на набережной у моря.

Что сделано на KMP

Полтора года назад запустили в прод первую крупную фичу, реализованную на KMP — мультикорзину для заказа из нескольких магазинов маркетплейса ресторанов одновременно. Мультикорзину делали больше месяца, из которого две недели iOS-разработчик был в отпуске. Нам даже не пришлось искать ему замену: пока он отдыхал, Android-разработчик делал общую бизнес-логику для обеих платформ.

А сейчас KMP стал основной технологией, на которой мы пишем бизнес-логику приложения. Даже те, кто пришли в команду только со знанием Swift, теперь знакомы с KMP и могут писать на нем. И это при том, что iOS-версия приложения остается для нас приоритетной, так как iOS в Катаре распространена сильнее (соотношение примерно 70/30 в ее пользу).

Итоги внедрения

С переездом на KMP мы явно выросли в производительности, потому что над разработкой одной фичи теперь может работать меньше людей. Количество сделанных фичей выросло на 25%, да и самих фичовых команд стало больше. И эти более маленькие команды выпускают фичи так же быстро, как это раньше делали команды покрупнее.

Доля кода на KMP у каждой фичи своя. У нашей “афиши” это порядка 15 % кода, но это конкретно наша специфика, процент у других команд может сильно отличаться. Например, бизнес-логику той же мультикорзины писали сразу под кроссплатформу. Там доля кода на KMP около 50 %.

Фото из личного архива. Музей исламского искусства, архитектор Бэй Юймин (он же автор «Большого Лувра» в Париже в виде стеклянной пирамиды).
Фото из личного архива. Музей исламского искусства, архитектор Бэй Юймин (он же автор «Большого Лувра» в Париже в виде стеклянной пирамиды).

А еще есть субъективное наблюдение, но мы его тоже выделяем. Между Android-ерами и iOS-ерами явно выросла сплоченность.

При проектировании KMP-слоя мы больше взаимодействуем внутри команды: и мне приходится постоянно спрашивать что-то у ребят, и они ко мне часто приходят за советом. Раньше нам просто давали фичу на разработку, и каждый занимался своей частью, не сильно пересекаясь с коллегами. А теперь мы больше вместе работаем, именно командой, а не поодиночке.

О культуре Катара

Объем рынка

Сам рынок — около 3 000 000 человек. Из них коренного населения всего 300 000, а остальные — иммигранты и экспаты вроде меня. Местные жители довольно богатые и не стесняются тратить деньги: те самые 300 000 человек генерируют большую часть выручки, так что наш основной таргет — это как раз ‭«парни в халатах».

Фото из личного архива. Район Мшериб (Msheireb). Новый район, постороенный в стиле современной арабской архитектуры.
Фото из личного архива. Район Мшериб (Msheireb). Новый район, постороенный в стиле современной арабской архитектуры.

Рамадан

Поскольку в Рамадан нельзя есть в светлое время суток, рестораны днем тоже не работают (остаются только некоторые доставки вроде Макдональдса, хотя с каждым годом число таких заведений растет). Готовую еду купить почти невозможно, поэтому приходится довольствоваться продуктами из супермаркетов. Эффективно работать на голодный желудок получается не у всех, поэтому весь месяц действует сокращенный рабочий день.

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

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

Фото из личного архива. Imam Muhammad ibn Abd al-Wahhab Mosque — самая большая мечеть Катара, вмещает до 30 000 посетителей.
Фото из личного архива. Imam Muhammad ibn Abd al-Wahhab Mosque — самая большая мечеть Катара, вмещает до 30 000 посетителей.

Температура

В любом помещении, в такси и даже на автобусных остановках кондиционеры поддерживают температуру 17–18 °C. Работать в таких условиях бывает тяжело. В офисе я постоянно надевал теплую кофту и даже задумывался о том, чтобы носить с собой перчатки — мерзли руки.

При этом снаружи, особенно с июня по сентябрь, стоит лютая жара. Если выйти на улицу в очках, они моментально запотевают. Достаточно пройти метров пять под палящим солнцем, чтобы тебе стало тяжело и захотелось вернуться под кондиционер.

В жаркий период меняется и работа нашей доставки: курьеры на мотоциклах не могут выходить на дневные смены, работают только курьеры на автомобилях. Кстати, это правило для мотокурьеров наша компания ввела несколько лет назад по своей инициативе. На следующий год это стало требованием, обязательным для всех.

Фото из личного архива. The Pearl Island («Жемчужина Катара») — искусственный остров в Дохе. Площадь — около 400 га.
Фото из личного архива. The Pearl Island («Жемчужина Катара») — искусственный остров в Дохе. Площадь — около 400 га.

Культурный шок

В Катаре по-прежнему существуют телесные наказания для мусульман, поскольку юридическая система в некоторых аспектах опирается на законы шариата. Распространяется эта мера наказания не только на граждан, но и на приезжих.

Друзья одной из моих коллег на личном опыте узнали, каково это. Парень и девушка возвращались домой на машине, причем оба были выпившие (прим. ред.: ни в коем случае не садитесь пьяными за руль). Их остановил сотрудник полиции и зафиксировал факт алкогольного опьянения. За это оба, включая девушку, которая была на пассажирском сиденьи, получили наказание в виде денежного штрафа и 40 ударов прутом.

Звучит дико, но в то же время выглядит очень “цивилизованно”: никто не скручивает тебя, не ведет под руки на лобное место и не бьет на виду у толпы. Механика совершенно иная: нарушителю приходит повестка, по которой он должен явиться в удобное время в указанное отделение полиции для получения телесного наказания.

При этом долго откладывать “судный день” не получится: пока ты не получил палкой по спине 40 раз, ты не имеешь права покинуть страну и даже сменить работу.

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

Влияние культуры и языка на разработку

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

Фото из личного архива. В супермаркетах широкий ассортимент, в том числе белорусская сметана и творог, есть пельмени Мираторг. А вот алкоголь и свинину вы просто так не найдете.
Фото из личного архива. В супермаркетах широкий ассортимент, в том числе белорусская сметана и творог, есть пельмени Мираторг. А вот алкоголь и свинину вы просто так не найдете.

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

Пока нам не удалось найти сбалансированное решение, которое помогло бы избавиться от этой проблемы раз и навсегда. Мы даже думали создать собственный арабский шрифт, но это крайне дорогая и трудозатратная идея.

Думаю, уже довольно объемное погружение в культуру вышло. Если читателям на Хабре будет интересно — зови еще, расскажу больше.

Читайте также:

* Организация Meta и ее продукт Instagram, на который мы ссылаемся в этой статье, признаны экстремистскими на территории РФ.

Комментарии (9)


  1. SquareRootOfZero
    05.06.2025 19:08

    При этом долго откладывать “судный день” не получится: пока ты не получил палкой по спине 40 раз, ты не имеешь права покинуть страну и даже сменить работу.

    Т. е., если ты посконный катарец, которому не нужен берег турецкий, и работу менять не собираешься, а то и вовсе живёшь нетрудовыми доходами - можно забить, ездить бухим и копить положенные тебе удары? И ещё, написано про "телесные наказания для мусульман" - те двое были мусульмане, или это ошибка (и что тогда для немусульман), или имелось ввиду "даже для мусульман (а остальным вообще п-здец)"?


    1. MAX1993M Автор
      05.06.2025 19:08

      1. Думаю, для коренных катарцев своя система «мотивации», но о ней мы честно не знаем. Мы рассказали о механизмах, которые применяют к иностранцам

      2. Те двое были мусульмане, из Кыргызстана. На не-мусульман телесные наказания не распространяются


  1. AndyLem
    05.06.2025 19:08

    Бьют несильно, какие хорошие люди.
    Слов нет


    1. randomsimplenumber
      05.06.2025 19:08

      должен явиться в удобное время в указанное отделение полиции для получения телесного наказания.

      Верёвку палку с собой приносить, или в профкоме выдадут? (ц)


      1. NutsUnderline
        05.06.2025 19:08

        "Надо, Федя... надо". Можно так же вспомнить "Золотого теленка", М.Горького, "Тома Сойера" из более современного "Звездный десант" ну и песню OttoDix для полноты картины.


  1. ki11qwerty
    05.06.2025 19:08

    А я то все откладываю изучение КМР, там делов то оказывается на 30 минут и один звонок) пойду тоже попробую, обновлю коммент как выучу)

    Но в целом интересно, спасибо за статью)


  1. NutsUnderline
    05.06.2025 19:08

    делали больше месяца, из которого две недели iOS-разработчик был в отпуске. Нам даже не пришлось искать ему замену: пока он отдыхал, Android-разработчик делал общую бизнес-логику для обеих платформ.

    Звучит ну очень, записал в мемы


  1. NutsUnderline
    05.06.2025 19:08

    Это все любопытно, но думаю в рамках подобного обзора можно рассказать побольше про инфраструктуру страны с точки зрения it, например про интернет и связь, транспорт и платежные системы.