company_banner
  • Lead Dev New York: обзор докладов и отзыв о конференции



      Привет, Хабр!

      Я Николай Крапивный, руководитель отдела server-side-разработки в Badoo.

      Недавно мы дружной командой ездили на конференцию Lead Dev в Нью-Йорк, посвящённую управлению разработкой. Среди спикеров были представители Google, IBM, Slack и других компаний. По сложившейся у нас в отделе хорошей традиции хочу поделиться впечатлениями, мыслями, обзором докладов и некоторыми материалами, которые привёз с конференции.

      Год назад я уже был на конференции Lead Dev в Лондоне, и она меня не очень впечатлила. Набор докладов показался мне далеко не самым сильным — было много «воды» и выступлений ни о чём. В этом году расписание выглядело гораздо внушительнее, включая доклад от Michael Lopp, VP Engineering Slack и автора книги Managing Humans, о которой наш коллега Дима Марущенко yojick отзывался исключительно восторженно. В общем, расписание интриговало, и за неимением большого количества конференций по техлидской тематике было решено дать Lead Dev ещё один шанс и заодно, что греха таить, воспользоваться возможностью посетить Нью-Йорк. В качестве спойлера скажу, что в этом году мне понравилось существенно больше (поэтому я и решил написать этот отчёт).
      Читать дальше →
      • +42
      • 3,6k
      • 1
    • Выстраиваем эффективное взаимодействие инженерной и продуктовой команд


        @innubis

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

        Мы в Badoo относительно небольшими силами (в моей команде 30 человек) ежемесячно деплоим порядка сотни новых востребованных фич, при этом не теряя в качестве кода, планирования и поддержки. Каким образом нам удаётся оставаться «на коне» и как у нас построено взаимодействие инженерной команды с продуктовой, я расскажу в этой статье.

        Уверен, что наш опыт будет интересен и другим компаниям. И надеюсь, что подход, который мы выработали путём проб и постоянных улучшений, кому-то реально поможет (а в идеале — сэкономит время и силы при выстраивании процессов и даст нужный результат).
        Читать дальше →
      • Codeisok, или История code review в Badoo



          Привет, читатель! Меня зовут Илья Агеев, я работаю в Badoo уже почти семь лет. Текущая моя должность называется Engineering Director Quality Assurance (директор по контролю качества), и по факту я занимаюсь много чем в компании: контроль качества, релиз-инжиниринг, процессы и методология разработки и даже немного информационная безопасность. Одна из сфер, которая входит в зону моей ответственности, — ревью кода. Об истории и результате нашего процесса (которым стал опенсорсный codeisok) я сегодня и расскажу.

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

          Летом 2011 года, когда я только пришёл в компанию, для хранения версий кода использовалась SVN. Бывалые рассказывали, что до этого все работали в CVS и что была одна попытка перейти на Mercurial, но она провалилась. Почему — никто не помнит. Я подозреваю, что дело в том, что, когда решили попробовать Mercurial, особой надобности в переходе на другую VCS не было. Всё и так всех устраивало: работает, и ладно. А модный инструмент ради моды никому не нужен.
          Читать дальше →
        • 19 мая приглашаем на Badoo Techleads Meetup #3



            Привет, Хабр!

            19 мая приглашаем на третий Badoo Techleads Meetup для лидов, руководителей отделов и СТО.

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

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

            Адрес: Цветной бульвар, 2 (м.Трубная)
            Начало докладов в 11:30
            Трансляция будет на нашем YouTube-канале и в группах VK и FB. Записи опубликуем там же и на Хабре.

            Программа


            Читать дальше →
          • Заряжаем суперсилой Appium тесты на Android

            • Перевод


            Привет, Хабр!

            Меня зовут Николай Абалов. Я работаю в лондонском офисе Badoo в команде Mobile QA Automation. Мой коллега Раждип Варма рассказал о том, как сделать Appium-тесты быстрее и надёжнее. Ниже перевод его статьи.

            В последние годы Appium стал одним из самых популярных инструментов автоматизации в мобильной разработке. Однако наряду с преимуществами у него есть некоторые ограничения, в частности связанные с тем, что тестовый код полностью отделяется от кода приложения. В этой статье Раждип рассказывает, как вы можете наделить свой код суперсилой и решить самые неприятные проблемы автоматизации end-to-end-тестов для Android.
            Читать дальше →
            • +30
            • 4,5k
            • 4
          • Видео с первого Badoo PHP Meetup 7.04.2018



              Привет, Хабр!

              7 апреля мы впервые собрали PHP-сообщество в офисе Badoo. Спасибо всем, кто пришел пообщаться, и тем, кто был с нами онлайн!

              Похоже, пэхэпэшники изголодались по митапам. Встреча получилась ну очень душевной — разговоры за жизнь и PHP из afterpaty переместились в afterchat, который до сих пор активен (несмотря ни на что).

              Но вернемся к нашим докладам. Под катом — записи выступлений, слайды, комментарии гостей и фотоотчет.
              Читать дальше →
              • +48
              • 8,3k
              • 3
            • Побеждаем Android Camera2 API с помощью RxJava2 (часть 2)

                image

                Это вторая часть статьи, в которой я показываю, как использование RxJava2 помогает строить логику поверх асинхронного API. В качестве такого интерфейса я выбрал Android Camera2 API (и не пожалел!). Этот API не только асинхронен, но и таит в себе неочевидные особенности реализации, которые нигде толком не описаны. Так что статья нанесет читателю двойную пользу.

                Для кого этот пост? Я рассчитываю, что читатель — умудрённый опытом, но всё ещё любознательный Android-разработчик. Очень желательны базовые знания о реактивном программировании (хорошее введение — здесь) и понимание Marble Diagrams. Пост будет полезен тем, кто хочет проникнуться реактивным подходом, а также тем, кто планирует использовать Camera2 API в своих проектах.  

                Исходники проекта можно найти на GitHub.

                Чтение первой части обязательно!
                Читать дальше →
                • +46
                • 9,8k
                • 5
              • Знакомство с гео-библиотекой S2 от Google и примеры использования

                  Привет, Хабр!

                  Меня зовут Марко, я работаю в Badoo в команде «Платформа». Не так давно на GopherCon Russia 2018 я рассказывал, как работать с координатами. Для тех, кто не любит смотреть видео (и всех интересующихся, конечно), публикую текстовый вариант своего доклада.



                  Введение


                  Сейчас у большинства людей в мире есть смартфон с постоянным доступом в Интернет. Если говорить в цифрах, то в 2018 году смартфон будет у почти 5 млрд людей, и 60% из них пользуются мобильным Интернетом.

                  Это огромные числа. Компаниям получать координаты пользователей стало легко и просто. Эти лёгкость и доступность породили (и продолжают порождать) огромное количество сервисов, основанных на координатах.

                  Всем нам известны компании типа Uber, игры, покорившие мир, такие как Ingress и Pokemon Go. Да что уж там, в любом банковском приложении есть возможность увидеть банкоматы или скидки поблизости.

                  Мы в Badoo также очень активно используем координаты, чтобы предоставлять своим пользователям лучший, актуальный и интересный для них сервис. Но о каком именно использовании идёт речь? Давайте посмотрим на примеры сервисов, которые у нас есть.
                  Читать дальше →
                • Проблемы при работе с кэшем и способы их решения

                    Привет, Хабр!

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

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


                    Wild horses stampeding. Оригинал картинки.

                    Я расскажу о проблемах разделения кэшируемых данных между серверами, параллельных обновлениях данных, «холодном старте» и работе системы со сбоями. Также я опишу возможные способы решения этих проблем и приведу ссылки на материалы, где эти темы освещены более подробно. Я не буду рассказывать, что такое кэш в принципе и касаться деталей реализации конкретных систем.

                    При работе я исхожу из того, что рассматриваемая система состоит из приложения, базы данных и кэша для данных. Вместо базы данных может использоваться любой другой источник (например, какой-то микросервис или внешний API).
                    Читать дальше →
                  • Приглашаем на Badoo PHP Meetup 7 апреля



                      UPD. Места уже расхватали, но будет трансляция. Приглашения участникам скоро вышлем!

                      Привет, Хабр! Похоже, астрологи объявили неделю PHP митапов в апреле :)

                      7 апреля мы проведем первый Badoo PHP Meetup в московском офисе компании!

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

                      Адрес: Цветной бульвар, 2 (м.Трубная)
                      Начало докладов в 12:00
                      Регистрация здесь
                      Трансляция будет на нашем YouTube-канале и в группах VK и FB. Записи опубликуем там же и на Хабре.

                      Читать дальше →
                      • +58
                      • 6,7k
                      • 7
                    • Что ещё мы проверяем при помощи Selenium, кроме логики интерфейса

                        Привет, Хабр!

                        Меня зовут Виталий Котов, я работаю в отделе тестирования Badoo. Большую часть времени я работаю с Selenium. Этот замечательный инструмент мы используем для решения разнообразных задач: от тестирования функционала до упрощения работы с логами ошибок и проверки взаимодействия с API.

                        О том, какие задачи нам помогает решать Selenium, и пойдёт речь в этой статье. Поехали! :)


                        Читать дальше →
                      • Go 1.10 Release Party @ Badoo: как это было. Видео, фото, отзывы



                          Привет, Хабр!

                          24 февраля мы устроили Go 1.10 Release Party @ Badoo по случаю свежего релиза. Спасибо всем, кто был с нами! Если вы пропустили встречу сообщества, под катом — видео выступлений, слайды, немного отзывов и фотоотчет.
                          Читать дальше →
                        • Обзор лучших европейских и не только QA-конференций этого года


                            Привет, Хабр! Меня зовут Влад Романенко. Я работаю инженером по тестированию в Badoo, в команде iOS.

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

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

                            В моём списке уже около 20 конференций. Среди них Международный день ГИС в Белорусском государственном университете, Конференция для пользователей и разработчиков ГИС с открытым исходным кодом в Москве и множество конференций по тестированию (например, эта и эта).

                            Я заметил, что многие тестировщики и QA-инженеры почему-то избегают конференций. И напрасно. С одной стороны, есть вы со своими вопросами к сообществу, с другой — есть сообщество, которому интересен ваш опыт. И почему бы эти две стороны не объединить? Именно поэтому я решил поделиться своим мнением относительно предстоящих мероприятий и вдохновить вас на их посещение.
                            Читать дальше →
                            • +36
                            • 7,6k
                            • 6
                          • Разворачиваем автоматизацию за пару часов: PHPUnit, Selenium, Composer

                            • Tutorial
                            Привет, Хабр! Меня зовут Виталий Котов, я работаю в Badoo, в отделе QA. Большую часть времени занимаюсь автоматизацией тестирования. Недавно я столкнулся с задачей максимально быстро развернуть Selenium-тесты для одного из наших проектов. Условие было простое: код должен лежать в отдельном репозитории и не использовать наработки предыдущих автотестов. Ах, да, и нужно было обойтись без CI. При этом тесты должны были запускаться сразу после изменения кода проекта. Отчёт должен был приходить на почту.

                            Собственно, опытом такого развёртывания я и решил поделиться. Получился своего рода гайд «Как запустить тесты за пару часов».

                            Поехали!


                            Читать дальше →
                          • Go 1.10 Release Party @ Badoo 24 февраля



                              Привет, Хабр! Я Алина, редактор блога компании Badoo.

                              Вы, конечно, уже слышали, что релиз Go 1.10 на подходе, и гоферы устраивают пир на весь мир отмечают это событие весь февраль и во всем мире. И мы туда же.

                              Вместе с сообществом Golang Москва приглашаем на Go 1.10 Release Party @ Badoo! Узнаем, что Go грядущий нам готовит, поделимся практиками использования и, конечно, отметим релиз.

                              Когда: 24 февраля, суббота
                              Где: в московском офисе Badoo
                              Начало докладов в 12:00
                              Регистрация здесь
                              Видеозаписи выложим на наш YouTube-канал
                              Читать дальше →
                            • Обновление строк на лету в мобильных приложениях: часть 2



                                Привет, Хабр!

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

                                Исторически сложилось, что все основные мобильные платформы «из коробки» обладают превосходной поддержкой локализации сообщений. В iOS, Android и Windows Phone приложение можно локализовать без всяких трудностей. Все средства для этого уже встроены в IDE: просто укажите нужный язык в списке поддерживаемых локализаций, введите текст на этом языке — и всё остальное за вас сделает IDE. Работает как часы. Но у этого подхода всё же есть недостатки.

                                Нашли в тексте ошибку? Хотите что-то перефразировать? Вам нравится экспериментировать с разными обращениями к разным целевым группам? Во всех случаях ответ один: придётся пересобирать приложение, снова выкладывать его в магазин, проходить проверку, получать одобрение, публиковать новую версию со всеми изменениями и ждать, чтобы пользователи обновили приложение на своих устройствах. Даже если все процедуры пройдут без заминок, это займёт дни или недели. А если пользователи не захотят обновляться? Или того хуже — не смогут этого сделать по техническим причинам вроде неподдерживаемой ОС? Тогда нежелательный текст в вашем приложении проживет гораздо дольше, чем хотелось бы.

                                Это довольно неудобно. К счастью, нам удалось решить эту проблему на разных платформах (с учётом особенностей каждой из них). И мы рады поделиться своим решением.
                                Читать дальше →
                                • +27
                                • 4,1k
                                • 2
                              • Путеводитель по инструментам автотестирования мобильных приложений



                                  …несмотря на то, что он кое в чём неполон, содержит много сомнительного или,
                                  во всяком случае, вопиюще неточного, он имеет два важных преимущества:
                                  во-первых, он немного дешевле, [...], а во-вторых, на его обложке большими
                                  и приятными для глаз буквами написаны два слова «Без паники!»
                                  — The Hitchhiker's Guide to the Galaxy

                                  Привет, Хабр!

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

                                  Перед запуском нового курса я задумался, о каких инструментах стоит рассказать ученикам. Прошерстил Рунет и англоязычный Интернет в поисках сравнительных статей, но, как ни странно, не нашёл подходящего источника информации. И тогда я решил создать его сам.

                                  Я преследовал три цели:

                                  1. Классифицировать инструменты в стеке автотестирования, чтобы стали понятны их иерархия и сочетаемость.
                                  2. Показать, какие инструменты популярны сегодня на рынке.
                                  3. Рассказать про самые популярные инструменты каждого типа и сравнить их по нескольким параметрам.

                                  Результатом моих трудов стал этот путеводитель по наиболее популярным и простым в освоении инструментам автотестирования мобильных приложений.

                                  Пользуйтесь!

                                  • Выбираете инструмент — посмотрите сравнение.
                                  • Хотите узнать, как устроена автоматизация на мобильных устройствах — загляните в классификацию.
                                  • Хотите добиться повышения зарплаты — освойте популярный инструмент.
                                  Читать дальше →
                                  • +31
                                  • 20,4k
                                  • 1
                                • Где найти и как выбрать тимлида



                                    Предыстория


                                    Привет! Меня зовут Виталий Шароватов, я уже 16 лет работаю в IT. Сейчас я руковожу направлением фронтенд в Badoo. В него входят две команды, которые занимаются разработкой и поддержкой десктопной версии сайта badoo.com, мобильной версии m.badoo.com и многими другими проектами. Да, десктопную и мобильную версии у нас делают отдельные команды. :)

                                    Два с половиной года назад я пришел в Badoo разработчиком, со временем вырос до тимлида, а потом, когда было решено перевозить команду Desktop Web в Лондон, стал руководителем направления.

                                    Прошлой осенью на Codemotion Milan я делал доклад о росте из разработчика в тимлида (и писал на Хабр статью об этом) и о том, с какими неожиданными моментами мне пришлось столкнуться, а теперь расскажу, как при переходе из лида в руководителя направления я справился с подбором и «выращиванием» тимлида в одной из команд (Mobile Web).
                                    Читать дальше →
                                  • Обновление строк на лету в мобильных приложениях: часть 1



                                      Введение


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

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

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

                                      О локализации веб-приложений мы уже писали здесь.
                                      Читать дальше →
                                      • +52
                                      • 11,6k
                                      • 7
                                    • Разбор PHP-задач Badoo и новый тест. Как получить оффер в Лондон в феврале



                                        Привет, Хабр!

                                        В июле мы проводили рекрутинговое мероприятие для PHP-разработчиков, по результатам которого пять человек получили оффер в наш лондонский офис. Мы продолжаем быстро расти: Android- и iOS-команды с того времени стали на 11 человек больше, поэтому мы снова запускаем конкурс для PHP-разработчиков.

                                        Правила те же: покажи высокий результат в тесте, успешно пройди интервью 10 или 11 февраля в Москве — получи оффер в лондонский офис Badoo.

                                        Все расходы по приезду на интервью в Москву компания берёт на себя, равно как и всё связанное с дальнейшим переездом в Лондон: рабочие визы членам семьи, 10 000 фунтов стерлингов (≈ 770 000 рублей) на переезд, совершенствование английского, поиск жилья.

                                        Чтобы выполнять тестовое задание было интереснее, по многочисленным просьбам (1, 2, 3) под катом мы разберём задачи с предыдущего мероприятия, рассмотрим их правильные решения, и я объясню, почему мы выбрали именно их, а также приведу некоторые примеры, статистику и варианты решений от кандидатов.

                                        UPD: мероприятие завершено. По итогам к нам присоединились 7 человек.

                                        Читать дальше →

                                      Самое читаемое