В сентябре на Хабр Карьере завершилась неделя мобильной разработки. Карьерная неделя — это что-то вроде дня открытых дверей, который длится всю неделю. В гонке за специалистами участвовали четыре компании: Мегафон, Домклик, Билайн и Авито

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

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

Кто отвечал на вопросы

Тимур Юсипов

Руководитель разработки юнита Performance, Avito

Петр Кучеров

Ведущий разработчик, билайн

Александр Лесников

Head of mobile, Домклик

Александр Соболь

Руководитель Android-разработки, Мегафон


Трудоустройство

Как мобильному разработчику грамотно составить свое резюме? На что вы обычно обращаете внимание в резюме кандидата? 

Тимур: Опыт работы в top IT-компаниях, образование, опыт работы на backend / соседней мобильной платформе, как часто «прыгает». 

Петр: На опыт, стек технологий, реальный уровень знаний, умение решать  практические задачи.

Александр Лесников: Стаж работы, стэк применяемых технологий, с чем работал, какие достижения, где учился программировать, если джун или стажер.

Александр Соболь: Указать опыт работы, проекты в которых участвовал, роли которые выполнял. Можно дополнить стеком технологий, который хорошо знаешь. Именно хорошо знаешь, а не попробовал/прочитал мануал. На собеседовании обязательно глубоко копнут.

Есть ли у вас прозрачная система грейдов для сотрудников? А если есть, то какая? 

Тимур: Есть на avito github. Если коротко, то мы смотрим не только на экспертность и инженерные навыки, но и на самостоятельность, способность вести большие проекты, инициативность, самонаведение, бизнес-экспертизу, обучение других сотрудников и прочие soft skills. 

Петр: Система грейдов недавно прошла пилот для веб-фронтов, сейчас внедряется для системных аналитиков и до конца года должна быть раскатана на все остальные роли.

Александр Лесников: Да, есть. Каждый сотрудник понимает возможности роста как вертикально, так и горизонтально — в смежные направления.

Александр Соболь: Мы находимся в процессе формирования карты горизонтального и вертикального роста сотрудников внутри подразделения, а также связанной с ней системы обучения необходимым для каждой позиции компетенциям. 

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

Стоит ли мобильному разработчику развиваться дополнительно в другие сферы: backend, ML, web или соседние мобильные платформы?

Тимур: В целом это приветствуется, но рабочие задачи в основном не будут способствовать освоению соседних зон, если только на то нет бизнес-необходимости. 

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

Петр: Стоит иметь понимание как минимум. Развитие в эти сферы в любом случае будет плюсом и повысит привлекательность на рынке труда.

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

Александр Соболь: Вот чтобы прямо углубленно изучать, думаю не стоит, без практики навык быстро забудется. А вот чтобы говорить на одном языке с девопсами и бэкендерами — стоит изучить основы клиент-серверного взаимодействия и попробовать развернуть свой кластер kubernetes (или что у вас в компании используется), запустить на нем простое приложение и попробовать самому поадминить его. Я думаю, этот минимум будет полезен любому разработчику.

Берете ли вы к себе иностранных сотрудников? Проживающих на территории РФ и нет? Насколько потенциальные кандидаты соответствуют Вашим ожиданиям, что бы вы хотели у них увидеть (мотивация, скиллы и прочее) и возможно ли создание обучающих возможностей, чтобы кандидаты стали более квалифицированы для вас?

Тимур: Насколько я знаю, с трудоустройством иностранцев есть трудности, если быть чисто белой компанией. Может быть, поэтому, а может быть, потому, что сильные иностранцы сами не очень к нам хотят, такие примеры среди мобильной разработки я в Авито не припомню, а вот у top management’а ситуация обратная.

Петр: Хотели бы всё увидеть: и мотивацию, и hard skills, и soft.

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

Александр Лесников: У нас работают иностранные сотрудники, к ним требования такие же, как и к остальным кандидатам, единственное условие — сотрудник должен работать с территории РФ.

Александр Соболь: К сожалению, нет.

Как часто рассматривают part-time как основной вариант работы? Бывает ли что-то кроме 5 на 8?

Тимур: Бывает 6 на 12. Part-time, я думаю, возможен ограниченное время, если вы заканчиваете учебу или типа того, но целевая картинка — классическая пятидневка. 

Александр Лесников: Не рассматриваем. У нас только full time.

Александр Соболь: Не рассматриваем.

Какие самые востребованные знания/библиотеки/SDK в Unity C#, в мобильной разработке?

Тимур: Я думаю, все понимают, что нужно изучать хайповые библиотеки для декларативного описания интерфейса (Compose, SwiftUI), но далеко не во всех компаниях уже готовы их внедрять. В общем и целом мобильный стэк +- одинаковый у всех, если говорить про крупную разработку. А вот для стартапов есть разные решения для кроссплатформы или hot reload’а, но по моему опыту, когда этот стартап покупается какой-то крупной компанией, всё приходится переписывать на нативщину. 

Вообще сейчас становится всё более популярным backend driven ui — когда вы с бэкенда управляете не только контентом, но и стилем его отображения, поведением приложения и тд. Это нужно, чтобы шипить изменения в приложения мгновенно (как на фронтенде) и не ждать ревью в магазине приложений. Однако industry standard решения, насколько мне известно, сейчас не существует, и все используют внутренние наработки. Кое-что опенсорсится, но скорее для хайпа.

Петр: В Swift — UIKit, RxSwift, SwiftUI, Combine и т.д.

Александр Лесников: Самое главное —понимать основы языка, на котором предстоит работать и знать стандартные SD, которые предоставлены из коробки.

Александр Соболь: Фундаментальные. Фреймворки часто меняются, пару лет назад в android был Rx, сейчас —корутины и Flow, эти знания устаревают. Все эти фреймворки построены на технологиях, разработанных десятки лет назад, кардинально нового ничего не появляется. Если освоить базу, не составит труда перейти с фреймворка «А» на фреймворк «Б». Да и из гайдов сможешь почерпнуть гораздо больше.

Удаленка/релокация

Как ваша компания относится к полностью удаленной работе?

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

Петр: В билайне удалённая работа появилась еще в 2016 году. У нас в команде работают люди из разных городов. В целом, всё зависит от отдела и руководителя, но у нас, например, может быть 100% удалёнка.

Александр Лесников: Удаленно работаем только с территории РФ.

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

Планирует ли ваша команда из удаленки/гибрида возвращаться снова в офис? 

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

Петр: Не планирует.

Александр Лесников: Все работают так, как им комфортно.

Процессы

Как проходит онбординг нового сотрудника в вашей команде?

Тимур: Вы приходите, вам назначают ментора, дают первичные задачи, озвучивают цели на испытательный срок и дают здоровенный такой чеклист с кучей полезных материалов и обучений.

Александр Лесников: Есть отдельная страничка, на которой описано, как первый раз собрать проект и запустить, а также вся основная информация, которая требуется для работы в нашей команде. Также каждому сотруднику-новичку прикрепляется Бадди, помогающий освоиться в компании.

По вашему мнению, каково соотношение интересных задач к рутине в вашем отделе?

Тимур: Потный вопрос. Смотря что такое интересная задача. У каждого это понимание разнится. Кто-то хочет писать кодяку круглыми сутками. Кто-то кайфует от свободы выбора и продумывания, чем он будет заниматься в следующем квартале. Кому-то хочется рулить другими инженерами и отвечать не только за себя, но и за итоговый результат поставки фичи. Кто-то любит общаться с инженерами и учить их чему-то новому. В любом случае, всё всегда приедается. Кто-то любит сложные задачи, когда нужно принять важное и сложное решение, не имея в руках достаточной информации, линии аргументации и кого-то, кто может посоветовать правильный ответ. Пальцем в небо я бы сказал, что рутины примерно 30%, хотя доказать это не смогу. 

Александр Лесников: Рутины не так много, так как постоянно новые задачи.

О старте карьеры и найме джунов

Как попасть к вам на стажировку?

Тимур: Следить за новостями в нашем паблике в ВК и подать заявку, когда будет открыт набор. 

Петр: Оставить заявку на сайте.

Александр Лесников: Пройти собеседование на стажера. 

Александр Соболь: На данный момент все команды укомплектованы, следите за обновлениями на сайте.

Какими минимальными навыками (хардовыми и софтовыми) должен обладать начинающий iOS-разработчик, чтобы иметь возможность попасть в Вашу команду?

Тимур: Крепкий по хардам и бодрый, активный мидл. Любим тех, кто не просто исполнитель, но и драйвер, вдохновитель — это если говорить про команду платформенной разработки. 

Петр: SOLID, UIKIt, Архитектурные паттерны, проводить Code Review. Умение воспринимать критику, слушать наставления, учиться по Code Review.

Александр Лесников: Стажеру главное — понимать основы свифта/котлина и ios/andriod SDK, дальше всё смотрится индивидуально.

Рынок насыщен вакансиями middle и senior разработчиков. Но как зайти на рынок вакансий джуну? Особенно тем, кто не имеет профильного образования и обучался самостоятельно. 

Тимур: В платформу джуном устроиться практически нереально. Придется прокачиваться. 

Петр: Заниматься домашними проектами, набирать опыт, смотреть обучающие материалы, ходить на собеседования.

Александр Лесников: Учиться и искать предложения, они всегда есть.

Можно ли попасть на стажировку-работу, имея небольшой учебный проект на Kotlin и приличную мотивацию на продолжение постижения мобильной разработки?

Тимур: На стажировку можно! Обычно на стажировку приходят студенты. 80% стажеров остается после стажировки. 

Петр: Можно.

Александр Лесников: Да.

Может ли человек с не IT-образованием попасть на работу по специальности Flutter разработчик?

Тимур: В IT, мне кажется, у половины людей не IT-образование. Так что всё возможно. И, может быть во мне говорит любящий нативщину скептик, но, имхо, лучше развиваться в сторону общепринятых стэков, т.к. так будет проще трудоустроиться на рынке.

Петр: Да, может.

Александр Лесников: Конечно.

Александр Соболь: Может, если сам получил необходимые знания. Чтобы писать хорошие приложения, необходимо знать платформу, под которую пишешь приложения. Поэтому нужно учить и Adnroid, и iOs. 

О технологиях и трендах 

Наблюдается ли такая тенденция, что для новых мобильных проектов бизнес выбирает кросс-платформенные инструменты, а не нативную разработку под несколько платформ?

Тимур: Мне кажется, для mvp и быстрой проверки гипотез кросс-платформа вполне себе ничего. Но когда компании придется решать проблемы масштабирования, ей проще будет идти классическим путем. Хотя кроссплатформа тоже бывает «на постоянку». Взять те же браузеры или карты — ядро там на каких-нибудь плюсах.

Александр Лесников: Мы используем кроссплатформенные решения только для реализации бизнес-логики, отображаем все нативно.

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

Какой стэк технологий будет актуален в ближайшие годы?

Тимур: Я думаю, декларативные, реактивные и прочие новомодные фреймворки скоро перевесят классические, т.к. молодые умы учат уже только свежачок, и компаниям в будущем будет всё труднее искать кадры на старый стек технологий.

Петр: SwiftUI, Combine, новые фрэймворки Apple.

Александр Соболь: Надо следить за техно-гигантами, они задают эти тренды, остальные компании подстраиваются под условия рынка.

Чем принципиально отличается мобильная разработка от веба?

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

Петр: Разные платформы, разные ОС, разные языки.

Александр Лесников: Невозможностью релизить мобильное приложение каждую секунду.

Расскажите, пожалуйста, как вы ощущаете текущую ситуацию на рынке с наймом кандидатов? Стало ли сложнее находить специалистов? Тяжело ли справляться с наплывом джунов? 

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

Александр Лесников: Ничего не поменялось.

Как скоро ваша команда перейдет на swiftUI? 

Тимур: Только начали ресерч. Может быть, через год.

Петр: С этим команда не торопится, так как SwiftUI всё еще сырой, есть ограничение по минимальной iOS, большой багаж наработок по UIKit, в т.ч. дизайн система. Всему свое время.

Александр Лесников: Как только появится такая необходимость.

Технологии развиваются очень быстро, и вот уже SwiftUI + Combine набирает обороты, мне интересно узнать у передовых представителей IT-сферы, рассматривается ли переезд на новые передовые фреймворки и что при этом учитывается? 

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

Петр: Когда-то рассматривается, учитывается — см. выше.

Александр Лесников: Возможности переходить рассматриваются, но перед тем как перейти, смотрим, что нам это даст и насколько проблематично и трудозатратно это будет происходить.

Как часто в production «забивают» на написание Unit-тестов? Ведь покрытие тестами — один из методов сэкономить в перспективе. Поделитесь, пожалуйста, вашим мнением. 

Тимур: Трудно оценить уровень покрытия тестами, но у меня сложилось впечатление, что продуктовые команды довольно старательно пишут UI тесты, чтобы экономить на регрессе, а Unit тесты пишут реже, потому что они не всегда подходят.

Александр Лесников: у нас невозможно в прод отправить изменения, которые не покрыты тестами.

React native — жив или мёртв?

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

Что почитать

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

Александр Соболь
  1. Э. Гамма «Приемы Объектно-ориентированного программирования»;

  2. С. Макконел «Чистый код»;

  3. Э. Танненбаум «Современные операционные системы».

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


  1. vitzloop
    22.10.2022 21:30

    На что вы обычно обращаете внимание в резюме кандидата? 
    Опыт работы в top IT-компаниях, образование, опыт работы на backend / соседней мобильной платформе, как часто «прыгает».

    1) Такой критерий как "опыт работы в топ компании" звучит странно. Часто сталкивался с ситуацией когда крупные компании набирали в штат излишнее количество разработчиков которые в итоге простаивали без задач. И за год у таких разработчиков копилось реального опыта работы на несколько месяцев. И сравним их с разработчиком из местечковой софтверной компании который работал без простоев, самостоятельно выстраивал с нуля и поддерживал работоспособность проекта. Однако в глазах такого работодателя он будет в проигрышном положении, что как по мне не справедливо.
    2) Про образование - давно размусоленная всеми тема. Есть как куча отличных спецов-самоучек без "айтишного" образования, так и куча людей с высшим профильным образованием, которые уступают тем же самым самоучкам в решении реальных бизнес задач.
    3) Опыт работы на backend \ другой мобильной платформы тоже странный критерий. Какое то базовое понимание как устроена разработка на backend конечно же плюс. Но лучше развиваться в одном направлении и стать именно в нём по настоящему прошаренным спецом, чем распыляться на несколько направлений.