В далеком 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 группы – любителей опенспейсов и адептов уединения. На основе результатов мы ремонтируем все этажи: с одной стороны, объединяем пространства, с другой — ставим кабинки для телефонных разговоров, переговорки с мягкими креслами для командных встреч и для работы над сложными задачами, требующими предельной концентрации в полной тишине.
Рабочие места мобильной команды минималистичны, поэтому каждый может обустроить его на свой вкус — развесить фото или стикеры и притащить из дома гитару и любимые игрушки. Площадь рабочего пространства позволяет фантазировать и экспериментировать с дизайном. Если на столе бардак — это не бардак вовсе, это — эксперимент. У каждого члена команды есть:
Для того, чтобы контролировать эффективность приложений на всех возможных мобильных устройствах мы завели модный шкаф с сокровищами: там хранятся самые популярные устройства iOS и Android, а также парочка устаревших моделей. Это очень умный шкаф: каждое утро он сам заряжает все смартфоны и планшеты, а раз в несколько дней устраивает экстерминатус ультрафиолетом, уничтожая микробов.
Если нужно протестировать приложение или отдельную фичу, можно взять необходимую вундервафлю с полки, а потом вернуть на место.
В hh.ru 8-часовой рабочий день и свободный час, который каждый может проводить как заблагорассудится. Мы гибкие, для нас главное — результат. Чтобы не отставать от трендов и не проигрывать в коммуникации, необходимо успевать на утренний стендап и находиться в офисе с 12:00 до 18:00. В разных командах стендап начинается в разное время, в среднем с 10:30 до 12:30. В крайнем случае всегда можно поработать удаленно по VPN.
Кто умеет хорошо отдыхать, тот и работает отлично. А отдыхаем мы профессионально: проводим корпоративные турниры по настольному теннису, гребле, футболу, собираемся после работы посмотреть фильмы. У нас есть свой спикер-клуб, где каждый может поупражняться в ораторском мастерстве (и для этого совсем не обязательно набирать полный рот камней), потрясная массажная комната, и два раза в неделю проводятся занятия йогой. Ещё мы устраиваем крутые ивенты. Да что уж там, некоторые коллеги даже в отпуск летают вместе!
Вот так мы покоряли Казбек:
Мы находимся в постоянном поиске новых знаний, делимся ими друг с другом и устраиваем внутренние митапы, где любой желающий может осветить какую-либо тему, связанную с работой.
В любой непонятной ситуации отправляем наших разработчиков на конференции — послушать, пообщаться, обменяться опытом. Если есть желание выступить, помогаем с подготовкой, прогонами и презентацией.
А ещё! Каждый год мы проводим Школу программистов — это полугодовое обучение программированию и смежным темам. Там читают лекции наши топовые специалисты, а также проводят практикумы и тренинги по выступлениям для лекторов Школы и докладчиков на конференциях.
Мы активно развиваемся, у нас зарождаются новые мобильные команды, и в связи с этим мы постоянно ищем новых бойцов!
Посмотреть актуальные вакансии можно по ссылке.
Мы рады классным специалистам, правда. Делитесь инфой, рекомендуйте нас и приходите сами.
Сегодня 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.
Как мы отдыхаем?
Кто умеет хорошо отдыхать, тот и работает отлично. А отдыхаем мы профессионально: проводим корпоративные турниры по настольному теннису, гребле, футболу, собираемся после работы посмотреть фильмы. У нас есть свой спикер-клуб, где каждый может поупражняться в ораторском мастерстве (и для этого совсем не обязательно набирать полный рот камней), потрясная массажная комната, и два раза в неделю проводятся занятия йогой. Ещё мы устраиваем крутые ивенты. Да что уж там, некоторые коллеги даже в отпуск летают вместе!
Вот так мы покоряли Казбек:
Как мы учимся?
Мы находимся в постоянном поиске новых знаний, делимся ими друг с другом и устраиваем внутренние митапы, где любой желающий может осветить какую-либо тему, связанную с работой.
В любой непонятной ситуации отправляем наших разработчиков на конференции — послушать, пообщаться, обменяться опытом. Если есть желание выступить, помогаем с подготовкой, прогонами и презентацией.
А ещё! Каждый год мы проводим Школу программистов — это полугодовое обучение программированию и смежным темам. Там читают лекции наши топовые специалисты, а также проводят практикумы и тренинги по выступлениям для лекторов Школы и докладчиков на конференциях.
Часть команды, часть корабля
Мы активно развиваемся, у нас зарождаются новые мобильные команды, и в связи с этим мы постоянно ищем новых бойцов!
Посмотреть актуальные вакансии можно по ссылке.
Мы рады классным специалистам, правда. Делитесь инфой, рекомендуйте нас и приходите сами.