В далеком 2000 году, когда hh.ru был совсем маленьким и ласково назывался “National Job Club”, а доступ к интернету получили всего 3% россиян, у нас, разумеется, не было никакой мобильной разработки. Тогда и смартфоны, в нынешнем их виде, были лишь далекой мечтой. Шли годы, технологии не стояли на месте, HeadHunter рос и развивался. Мы всегда стремились шагать в авангарде и использовать самые свежие методы и решения в процессах разработки.



Сегодня hh.ru — не просто сайт с вакансиями и резюме. Мы создаем и используем топовые технологии, разрабатываем крутые проекты в cфере HR-tech и всеми силами пытаемся упростить жизнь миллионам людей. Для этого нам просто необходимы высокотехнологичные мобильные приложения, и в hh их четыре. Два на Android и два на iOS, отдельно для работодателей и соискателей. Мобильные разработчики — супергерои нашего времени и кавалерия технологий. Эта статья расскажет (и покажет), как живут и работают члены команды hh Mobile.




#трудовыебудни


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

Как мы работаем?


Мы руководствуемся принципами Agile и Kanban: у нас нет жестких дедлайнов, а сама разработка представлена как непрерывный поток. Это позволило ощутимо повысить производительность: к примеру, когда мы использовали scrum, релизы случались раз в месяц, а с переходом на новую модель — еженедельно. Много внимания уделяем автоматизации рутинных процессов, мы не любим лишние телодвижения.

30% времени каждая команда тратит на “Технический налог” — ускорение процессов разработки, удаление старого кода и внедрение новых технологий. У каждого сотрудника есть собственный план развития, таблица скиллов и постоянная поддержка команды. Любой из нас может поделиться впечатлениями, идеями и высказать замечания. Разработка новых фичей обсуждается уже на ранних этапах, и то, какими они будут, решают сами разработчики. Жизненный цикл фичи включает в себя пять этапов: идея, планирование, разработка, демонстрация и фидбэк. В процессе разработки используем Slack, как основное средство коммуникации, Jira помогает контролировать задачи, а для их понятного отображения у нас есть kanban-доски.



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

Над чем мы работаем?


iOS: Для платформы iOS у нас разработано и постоянно совершенствуются два приложения: для соискателей и для работодателей, общие компоненты выделены во фреймворки. 75% кода написано на Swift, 25% на Objective-C. С 2016 года новый функционал пишем только на языке Swift и архитектуре VIPER. В сервисном слое придерживаемся подхода SOA. Следуем принципам SOLID, пишем unit-тесты. Под оба языка есть Code Style, в работе используем статические анализаторы и линтеры. На каждый пул реквест прогоняются тесты и проверки, сборка и выкладка приложений автоматизированы через CI сервер + fastlane. В кооперации с QA пишем UI-тесты, используя XCUITest. Используем кодогенерацию, шаблоны для Xcode.



Android: Для этой платформы также разработаны два приложения. Последние два года разработка ведется на языке Kotlin, на котором написано более 70% кода. Команда разработки Аndroid работает с современным технологическим стеком, который регулярно подвергается принудительным улучшениям. Сейчас под капотом RxJava 2, Toothpick, Moxy, Cicerone. В разработке приложений мы всегда используем многомодульную архитектуру. Модули реализованы по принципам Clean Architecture и SOLID. Мы за удобство, поэтому стараемся максимально автоматизировать процессы, пишем и используем шаблоны, плагины для кодогенерации и применяем в работе Практически все основные сценарии покрыты UI тестами. При их написании мы используем высокоуровневые фреймворки Kakao, Kaspresso и DSL для фикстур (подробнее тут). Тесты запускаются при помощи Marathon на эмуляторах в кластере Kubernetes. Для приложений разработан уникальный стайл-гайд.



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

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

Где мы работаем?


Офис hh.ru находится в Москве, между станциями метро Алексеевская и ВДНХ. Многие в детстве мечтали попасть в открытый космос, и мечты частично исполнились — в нашем офисе 5 этажей зонированных open space. Команда мобильной разработки входит в Технический департамент, занимающий целый этаж.

Разработка разделена на 23 команды, и 4 из них занимаются только мобильными приложениями. В hh Mobile сегодня 25 бойцов, а до конца года мы планируем расширить штат до отметки в 35. У каждой команды есть внутренний заказчик — Product Owner, его задача сделать так, чтобы никто не скучал без проекта. При этом мы готовы реализовать любую идею наших сотрудников, если она окажется интересной.

Не признаем никаких барьеров: команды сидят вместе — так удобнее работать и обсуждать возникающие вопросы.



Большой open space разделен на командные зоны стеллажами и полками с книгами и растениями. При желании можно спрятаться за пальму.



Мы стараемся всегда быть на одной волне. В нашем бунгало доска найдется для каждого.



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



Лампово!



Экология – это важно. Мы за экологию, поэтому поддерживаем и продвигаем полезные инициативы: собираем “Добрые крышечки” (от бутылок), “Добрые вещи”, макулатуру, электроприборы, батарейки и пластик для утилизации, а еще используем стаканчики из переработанной бумаги.



На первом этаже расположен спортзал, потому что спорт, как известно – мир, а мы крайне мирные ребята. На экране загрузки в DOOM сказано: “Непрерывно двигайся, ад пожирает праздных”. Двигаемся мы здесь:



Разрабочее пространство


Рост неизбежен, больше людей = больше возможностей, поэтому мы стараемся подстроить рабочее пространство под каждого, чтобы работать было приятно всем. Мы провели опрос и результаты выделили 2 группы – любителей опенспейсов и адептов уединения. На основе результатов мы ремонтируем все этажи: с одной стороны, объединяем пространства, с другой — ставим кабинки для телефонных разговоров, переговорки с мягкими креслами для командных встреч и для работы над сложными задачами, требующими предельной концентрации в полной тишине.

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

  • MacBook Pro, дополнительные мониторы, дополнительная зарядка для ноутбука



  • потрясные кресла Herman Miller Aeron, послушные и чуткие к изгибам сидящего (совсем как у доктора Хауса!)



  • столы-трансформеры Kinnarps и Soft effect c регулируемой высотой. Легким движением офисный стол превращается в элегантную барную стойку.



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

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



Сколько мы работаем?


В hh.ru 8-часовой рабочий день и свободный час, который каждый может проводить как заблагорассудится. Мы гибкие, для нас главное — результат. Чтобы не отставать от трендов и не проигрывать в коммуникации, необходимо успевать на утренний стендап и находиться в офисе с 12:00 до 18:00. В разных командах стендап начинается в разное время, в среднем с 10:30 до 12:30. В крайнем случае всегда можно поработать удаленно по VPN.



Как мы отдыхаем?


Кто умеет хорошо отдыхать, тот и работает отлично. А отдыхаем мы профессионально: проводим корпоративные турниры по настольному теннису, гребле, футболу, собираемся после работы посмотреть фильмы. У нас есть свой спикер-клуб, где каждый может поупражняться в ораторском мастерстве (и для этого совсем не обязательно набирать полный рот камней), два раза в неделю проводятся занятия йогой и потрясная массажная комната. Ещё мы устраиваем крутые ивенты. Да что уж там, некоторые коллеги даже в отпуск летают вместе!

Вот так мы покоряли Казбек:







Как мы учимся?


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

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

А ещё! Каждый год мы проводим Школу программистов — это полугодовое обучение программированию и смежным темам. Там читают лекции наши топовые специалисты, а также проводят практикумы и тренинги по выступлениям для лекторов Школы и докладчиков на конференциях.

Часть команды, часть корабля


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

Посмотреть актуальные вакансии можно по ссылке.

Мы рады классным специалистам, правда. Делитесь инфой, рекомендуйте нас и приходите сами.

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


  1. HawkeyePierce89
    25.07.2019 16:09

    Как мы учимся?

    У вас есть какие-нибудь программы развития джунов? Курсы, тесты, что-то иное?


    1. Xanderblinov
      26.07.2019 12:02

      Последние 10 лет мы ежегодно проводим Школу программистов . Прямо сейчас в неё идет набор. По Android наши ребята проводят абсолютно бесплатные лекции в Android Academy Msk
      Первая лекция была вчера, следующая 15 августа. Приходите, будем рады Вас видеть!


      1. Xanderblinov
        26.07.2019 12:09
        +1

        У нас в компании на текущий момент работает 38 выпускников Школы программистов и 2 Android Academy Msk. Считаю это отличным результатом


  1. dss_kalika
    25.07.2019 16:15

    Прям захотелось у Вас работать. =)


    1. schnitzer Автор
      26.07.2019 10:11

      Приходите!:)


      1. dss_kalika
        26.07.2019 11:34

        К сожалению, моё резюме отклонили. =(
        Хотя, подозреваю, потому что мой стек достаточно специфичен )


  1. p4p
    25.07.2019 17:09

    Так вот кто эти люди, которые считают, что для поиска нужно обязательно указывать Срану/Город/Регион.


    1. dss_kalika
      25.07.2019 17:25

      А ещё они сделали карту же )


  1. Giltior
    25.07.2019 18:29

    Вот эти замечательные ребята, которые считают, что нормально складывать временные этапы работы, если есть наложение по датам (т.е. если работал 3 года на фирме, из них 2 года фрилансил или на пол ставке на другой фирме, это будет засчитано за 5 лет)


    1. xopen
      26.07.2019 08:56
      +1

      Ты же в две смены пахал, где здесь неправда? Рабочий день 8 часов, а не 24 и твои проблемы.


  1. Pro-invader
    25.07.2019 20:37

    Понравилась олимпийка на спинке кресла с надписью «hh и в продакшен»


  1. Almet
    26.07.2019 09:29

    Очень даже ничего :), зачОтно


  1. Naokiny
    26.07.2019 10:30
    +1

    Многие в детстве мечтали попасть в открытый космос, и мечты частично исполнились — в нашем офисе 5 этажей зонированных open space.

    Такую рекламу опенспейса я еще не видел :D


  1. corwin1
    26.07.2019 16:21

    После прохождения «Школы программистов» в Android команду приглашаете выпускников?


  1. T0tem
    26.07.2019 21:53

    1.

    необходимо успевать на утренний стендап и находиться в офисе с 12:00 до 18:00.
    А если пришел в 8 утра, то нужно всё равно сидеть до 6 вечера?)

    2.
    Интересно почитать детально, про особенность стека Android:
    Почему Moxy, сами его допиливаете, как дружите с androidx его?
    Почему Toothpick, а не Dagger 2 или Koin?
    Пробовали ли Navigation Architecture Component, вместо Cicerone?
    Судя по описанию, у вас MVP. Пробовали MVVM или другие MV* — шаблоны?
    Почему за два года ещё не довели до 99% кода на Kotlin'e, в чём возникла сложность или другие обстоятельства?

    3.
    Розетки под ногами, это забавно -)