Badoo Tech


Kanal geosi va tili: Rossiya, Ruscha


Команда разработки Badoo
💜 О нас — https://tech.badoo.com/ru/about/
✏️ Наши статьи — https://habr.com/ru/company/badoo/
😀 Стикеры — https://t.me/addstickers/badoo_tech_stickers

Связанные каналы

Kanal geosi va tili
Rossiya, Ruscha
Statistika
Postlar filtri


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

Когда: 16 февраля.
Формат: Оффлайн (Москва) + Онлайн
Подробности и регистрация: https://www.osp.ru/lp/dataquality2022
Присоединяйтесь 😉


Автоматическая многоязычная модерация сообщений для миллионов пользователей

Рассказываем про Rude Message Detector: наш многоязычный детектор грубых сообщений, работающий на основе машинного обучения 🤖

О технических особенностях решения и сложностях, с которыми мы столкнулись в ходе реализации — в блоге на Хабр:


Масштабируем Jetpack Compose Navigation

Год назад Google выпустил библиотеку Compose Navigation для Android Jetpack. Наш коллега из лондонского офиса Lachlan McKee решил использовать ее для собственного проекта, но столкнулся с неожиданной проблемой: в документации к библиотеке не предусмотрена возможность масштабировать навигацию для большого количества маршрутов.

Lachlan решил исправить ситуацию — и предложил свой паттерн использования Jetpack Compose Navigation, который не противоречит подходу Google. Все подробности он описал в статье, делимся переводом 😎


Итоги 2021 для PHP-коммьюнити 🏆

Стартовал опрос среди PHP-разработчиков! Выбираем главные события, персоны и релизы этого года, присоединяйтесь:
https://phpsurvey.typeform.com/to/E0TRbRsy


Хотите узнать всё о UI-фреймворке Compose Multiplatform?
Присоединяйтесь завтра в 17:30 к докладу Multiplatform UI: Compose outside Android на конференции Mobius 💥

Николай Иготти из JetBrains расскажет о текущем состоянии и перспективах фреймворка. В качестве приглашенного эксперта в обсуждении примет участие Антон Шилов, Senior Android Developer Badoo.

Подключайтесь 😉
https://mobius-moscow.ru/schedule/


25 ноября в 19:00 присоединяйтесь к стриму про PHP 8.1 🔥

В онлайн-формате обсудим апдейты релиза и послушаем, как у кого прошел переезд на восьмерку.

🔸 О переходе на PHP 8.0 расскажут:
- Иван Корноухов (Badoo)
- Валентин Назаров (Skyeng)
- Максим Фомичев (ManyChat)
- Александр Данковцев (Авито).

🔸 Про апдейты PHP 8.1 расскажет Валентин Удальцов.

В конце стрима всех ждет квиз с призами 😉

➡️ Узнать подробности и поставить напоминание о встрече: https://phpcommunity.ru/php-8-1


Когда поиск ответственных превращается в расследование 🕵️‍♂️

В Badoo больше 200 бэкенд-разработчиков. Если у кого-то появляется вопрос о конкретном сервисе или функциональности, приходится искать «хранителя знаний» — человека или команду, которая занимается поддержкой этой части кода. Чтобы этот поиск не затягивался на целый день, мы разделили систему Badoo на компоненты — по зонам ответственности команд.

У каждого компонента есть:
🔹 уникальный идентификатор;
🔹 email;
🔹 название команды, которая отвечает за данный компонент;
🔹 название проекта, к которому относится компонент, в Jira;
🔹 краткое описание;
🔹список ответственных.

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

Подробнее о том, как у нас устроена поддержка таких компонентов и взаимодействие с внутренними системами, читайте в статье Евгения Тупикова:
https://habr.com/ru/company/badoo/blog/562000/


В московскую команду разработки внутренних сервисов открыта вакансия PHP-разработчика 💥

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

С вас — знание сильных и слабых сторон PHP, опыт проектирования реляционных баз данных (MySQL), знание верстки. Плюсом будет знание Java/Kotlin.

С нас — конкурентная зарплата, современная техника на выбор, развитая бонусная система (полугодовые, менеджерские и «thank you» бонусы), ДМС со стоматологией, страхование жизни, обеды в офисе и это ещё не всё!

Узнать больше и откликнуться на вакансию можно по ссылке: https://tech.badoo.com/ru/vacancies/879/


27 октября вместе с коллегами из SuperJob, Skillbox и Почтатех будем говорить о тестировании 🛠

🔹Где: QA митап SuperJob
🔹Формат: онлайн
🔹Старт: 18:30

От команды Badoo выступят Дима Макаренко, Mobile QA, и Надя Дегтярева, Senior QA-инженер.
Ребята расскажут про системный подход к стабилизации тестов для мобильных приложений.

Участие в митапе бесплатно, регистрация открыта — присоединяйтесь 😉


То проходит, то падает: рассказываем на Heisenbug, как избавиться от flaky-тестов 😎

В Badoo каждый день запускается более 135 000 E2E-тестов. Мы хотим быть уверенными в их стабильности — иначе потеряем время на исправлении ошибок и подорвём доверие к тестам у разработчиков.

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

Встретимся 5 октября в 16:30 на Heisenbug!
https://heisenbug-moscow.ru/talks/qopanqphk8c8y4zocwwpo/


Heisenbug — канал конференции dan repost
Flaky-тесты и борьба с ними — интересная тема. А когда речь идет об автоматизированном E2E-тестировании мобильного проекта, то тем более!

С докладом на эту тему на Heisenbug 2021 Moscow выступят Дмитрий Макаренко и Надежда Дегтярева из Badoo. Они поделятся системным подходом к анализу нестабильных тестов и борьбе с ними. Команда Дмитрия и Надежды каждый день запускает 135 000 E2E-тестов на своих проектах, поэтому они знают толк в том, о чем будут говорить.

Подробности и билеты: https://vk.cc/c5lnBM


Через неделю рассказываем на Heisenbug, как бороться с flaky-тестами. Присоединяйтесь к трансляции 5 октября в 16:30!


Рефакторинг функций расширения в Kotlin: использование объекта-компаньона

Со временем функции расширения могут начать приносить больше проблем, чем пользы ☠️ Как отрефакторить такие функции в Kotlin, рассказал наш Android Developer Юрий Влад


Продолжаем рассказывать про наши opensource-проекты. На очереди SoftMocks — аналог RunKit, реализованный на чистом PHP.

SoftMocks — это библиотека, которая на лету заменяет исходный PHP-файл на переписанный код. Она позволяет создавать «заглушки»: подменять реализацию функций, пользовательских методов и констант. И все это на чистом PHP, без использования сторонних расширений.

Библиотека регулярно нас выручает:
▪️ Мы перестали зависеть от RunKit, uopz и подобных внешних проектов.
▪️ Спокойно переходим на новую версию PHP, просто добавляя поддержку нового синтаксиса.
▪️ Умеем «встраиваться» в любое место в коде, сохраняя логику приложения. Это помогает работать с легаси, писать тесты и так далее.

GitHub проекта


​​Удаленка — верный способ прокачать эмпатию и интуицию тимлида. Ведь заподозрить у сотрудников профессиональное выгорание через чат или экран Zoom гораздо сложнее, чем в офисе.

Наш мудрый коллега Илья Агеев собрал советы для тех, кто хочет вести профилактику выгорания в удаленной команде:

▪️ Чётко формулируйте цели. Сотрудники должны знать, что лежит в краткосрочных, а что — в долгосрочных планах команды и компании.
▪️ Стимулируйте отдых коллег: выгоняйте их в отпуск, уменьшайте количество авралов, переработок и т. д.
▪️ Стимулируйте профессиональное развитие. Инженер, который посетил даже самый простой митап, может принести глоток свежего воздуха в коллектив.
▪️ Давайте обратную связь. Речь не только про формальную встречу один на один, но и про обычное спасибо — часто его не хватает! Общение в неформальной обстановке часто эффективнее митингов «по регламенту».
▪️ Разговаривайте со своими сотрудниками. Но помните, что за словами должны следовать дела. Одно из важнейших качеств лидера — умение нести ответственность за свои слова.

Будьте лидером!


​​Мутационное тестирование — техника, которая поможет оценить качество тестового покрытия.

Принцип её работы прост: для покрытого тестами кода нужно сгенерировать «мутантов» 👾

Мутант — это небольшое изменение кода, которое намеренно вносит в программу ошибку: например, меняет > на >= или удаляет оператор. После того, как в исходном коде созданы такие ошибки-мутанты, мы заново прогоняем тесты.

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

Мутационное тестирование сейчас набирает популярность, но использовать его повсеместно мешают несколько проблем:

▪️Низкая скорость тестирования для больших проектов.
▪️«Бесконечные мутанты» — циклы, которые при определенных мутациях становятся бесконечными. Впрочем, существующие инструменты более-менее успешно справляются с этой проблемой.
▪️«Идентичные мутанты»: иногда мутация не нарушает заложенной логики и тесты её не «ловят». Но это единичные случаи.

Как в Badoo и Bumble обходят эти проблемы и используют мутационное тестирование, мы рассказывали в статье на Хабре.

«Мутационное тестирование поможет сделать ваши юнит-тесты лучше, а отслеживание code coverage — осмысленнее. Для PHP уже есть инструмент, так что если у вас небольшой проект без заморочек, то прямо сегодня берите и пробуйте!» — советует Владимир Янц, Lead PHP developer Badoo.


Охота за аномалиями на графиках

Для анализа работы Badoo и Bumble мы следим за тысячами показателей. Их комбинации и зависимости — это миллионы графиков, за которыми не уследить вручную. Поэтому мы создали инструмент Anomaly Detection, который фиксирует аномалии в поведении метрик и сообщает об этом ответственным за эти метрики сотрудникам.

Anomaly Detection процессит миллионы графиков в сжатые сроки. В этом ему помогают ClickHouse, алгоритмы предсказаний и процесс портирования этих алгоритмов на SQL.

Александр Барановский, Data Engineering Lead, рассказал на конференции Highload++, как создать такой же инструмент самим:

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


Согласованная локализация: версии, транзакции, очереди

Вся подноготная нашей системы переводов — в докладе Алексея Тимина с конференции HighLoad++. Интерфейсы, форматы данных и нюансы их согласования в разных частях системы: показываем, как устроена локализация двух приложений на 50 языках и десятках версий на разных клиентах.

❗️Даже если вы не используете специальных инструментов для локализации проекта, а все тексты хранятся в гуглдоках, этот доклад может оказаться полезным для вас.

Рассказываем, как:
🔸 синхронизировать работу переводческих и инженерных команд;
🔸 версионировать тексты и их переводы;
🔸 обновлять тексты и переводы на клиенте и сервере;
🔸 обеспечить консистентность переводов на сервере и клиентах.

Приятного просмотра!


Плагин kotlin-parcelize для Android позволяет восстановить данные, когда приостановленное приложение убивается системой, а затем снова активируется 📱

В блоге Badoo на Хабр наш Android Developer Аркадий Иванов поделился опытом написания аналогичного плагина для компилятора Kotlin под iOS:
https://habr.com/ru/company/badoo/blog/566380/


Алексей Тимин, ведущий разработчик системы локализации Badoo и Bumble, поучаствовал в подкасте The Loc Show 🎧

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

P.S. Подкаст на английском языке☝️
https://www.smartling.com/podcasts/locshow/Alex-timin-bumble/

20 ta oxirgi post ko‘rsatilgan.

906

obunachilar
Kanal statistikasi