AvitoTech
22.6K subscribers
1.87K photos
101 videos
1.67K links
Рассказываем, что у Авито под капотом, делимся инженерной экспертизой и зовём на митапы.

По всем вопросам: @direct_avitotech

Сайт: https://avito.tech
Хабр: habr.com/ru/company/avito
Гитхаб: github.com/avito-tech

Регистрация в РКН: https://clc.to/FOxC1A
Download Telegram
Автоматический мониторинг фатальных ошибок мобильных приложений

Теперь можем не заходить в консоль Firebase, чтобы следить там за крашами. Всё собираем автоматически.

Вот как это получилось → http://bit.ly/3khM0Pz
Инфраструктура для мобильной разработки

Евгений Кривобоков стал гостем нового выпуска подкаста The Art Of Programming (@taoplive). Вместе с Антоном Черноусовым обсуждали инфраструктуру для мобильной разработки, влияние Kotlin на Android-разработку, CI/CD сценарии и управление артефактами.

Интересный выпуск получился → https://youtu.be/RIEoH6yZtak
This media is not supported in your browser
VIEW IN TELEGRAM
Nupokati: наш сервис релизов мобильных приложений

Было: набор скриптов и TeamCity-билдов.
Стало: полноценный сервис мобильных релизов, позволяющий управлять всем процессом выпуска приложений через удобный интерфейс.

Коротко об изменениях — в гифке. Подробности — в статьях.

На русском → http://bit.ly/35WFZ7i
И на английском →http://bit.ly/2Ek7ewY
Mac mini с жидким металлом

Провели эксперимент и улучшили производительность нового Mac mini.

В статье на Медиуме Влад Алексеев, lead iOS engineer, рассказывает и показывает, как мы это сделали: http://bit.ly/3ckRkz3
Приключения одного бага или как починить pgx чужими руками

Ситуация: заметили в метриках pgbouncer’a, что по мере роста нагрузки растёт число активных соединений и достигает ограничения в 10 штук — тут всё логично. Но дальше с ростом нагрузки cl_active неожиданно падает, а число cl_waiting быстро растёт почти до 60. Как сервис умудрился создать 60 соединений, если размер его пула — 10, было непонятно.

Проблема: была в pgx/v4, через который наш сервис связывал с pgbouncer’ом.

Что в итоге: провели расследование, тщательно изучили pgbouncer и в итоге убедили Джека Кристенсена, автора pgx, выпустить фикс, который снимает блокер для всех, кто использует pgx под нагрузкой.

Рассказываем в статье, что к чему: http://bit.ly/3cpmHbB
This media is not supported in your browser
VIEW IN TELEGRAM
Еще пару часов, максимум, поработать и можно улетать отдыхать в выходные. Можно ещё добавить себе или поделиться с вашим Android-разработчиком стикерпаком, который мы сделали вместе с @android_broadcast
«Нормально делай и нормально будет»: Даниил Попов о современной андроид-разработке, пользе твиттера и уходе из Авито

Даниил ещё недавно работал андроид-инженером в нашей команде Speed и делал мобильную инфраструктуру. Журналу «Код» он рассказал о своем карьерном пути и одном из важных принципов в разработке: http://bit.ly/36fWpI2
Media is too big
VIEW IN TELEGRAM
Коротко о том, как мы автоматизировали сбор информации из Firebase о крашах в мобильных приложениях

Подробная история, зачем это понадобилась и какая от этого польза — в нашем блоге на Хабре: http://bit.ly/3cK4NAz
Что там с HTTP/3?

Саша Зубов, техлид нашей команды архитектуры фронтенда, рассказал историю протокола HTTP, сравнил преимущества и недостатки разных версий и поделился, как новую версию HTTP можно попробовать на своем проекте.

Базовый доклад, если хотите начать разбираться в предверии скорого (надеемся) выхода окончательных спецификаций нового протокола.

Посмотрите на нашем ютуб-канале → https://bit.ly/33AQZ8A
Организация кодовой базы и тестирования в монорепозитории

Илья Никитин, frontend engineer, делится историей хранения нашей кодовой базы: как перешли с Twig на React, как у нас появились npm-пакеты и отдельные репозитории для них, а потом всё переехало в монорепозиторий.

При этом, есть гарантия того, что всё будет работать корректно благодаря прогону тестов на каждом пул-реквесте. Количество самих пул-реквестов уменьшилось с 8-9 в худшем случае до двух: в монолит и в монорепозиторий. А пул-реквест в монорепозиторий содержит сразу все изменения.

Прочитайте, если интересно → http://bit.ly/2GO8wBi
This media is not supported in your browser
VIEW IN TELEGRAM
Можно ли взломать RFID-замок?

RFID-замки используют для охраны офисов или на домофонах. Мы пытались взломать один такой вместе с N+1, но у нас ничего не получилось. Задействовали два способа: с помощью магнита с жесткого диска и путём перехвата уже декодированных данных с RFID-ключей на контроллере.

Детали можно узнать в статье → http://bit.ly/2FtbxXv
Зачем нужны «облачные» UX-исследователи и как с ними работать

От качественных UX-исследований много пользы при создании продукта. Есть несколько способов, как их проводить много, хотя не все они идеальны. Но когда вам надо проводить прямо очень много таких исследований, как у нас, надо что-то изобретать.

Мы попробовали подход «облачных» UX-исследователей. Получилось очень даже ничего.

На Хабре рассказываем всю историю: от того, как пришли, до реализации и результатов → http://bit.ly/3lQJlxe
Завтра в 10 приглашаем всех на вторую открытую сессию Podlodka QA Crew, которую мы проводим при поддержке наших друзей @AvitoTech ⚓️

Александр Матвеев из Авито проведет воркшоп по практикам оптимизации тестирования. Присоединиться к стриму можно будет по ссылке: https://youtu.be/A3k1A1V8gg8
Почему в разработке всё так сложно?

Люди не из индустрии довольно часто не понимают программистов: что они там такое сложное делают, если видно только две кнопки? Что за непонятные слова говорят? Почему так много получают?

Вместе с парнями из подкаста «Мы обречены» решили с этим разобраться и запустили совместную рубрику, где иногда будем объяснять, почему в разработке всё так сложно. Для начала можно почитать статью об этом на Хабре → http://bit.ly/2TxIvcr

Если любите больше смотреть и слушать, то в перебивке выпуска с Евгением Котом, вместе с нашим инженером Мурадом Бяшимовым парни обсуждают, почему сайты лагают, а игры нет, и отчего разработчики не могут это просто так поправить: http://bit.ly/3jFCxkD
Оптимизация работы с PostgreSQL в Go: от 50 до 5000 RPS

Когда разрабатывали калькулятор цены доставки, нужно было заставить сервис на Go ходить в PostgreSQL достаточно быстро.

Поэтому в итоге мы прокачали сервис от 50 до 5000 RPS и еще получили несколько выводов:
• мультиплексирование соединений в pgbouncer’е под нагрузкой — зло;
• использовать в сервисе пул большего размера, чем в базе данных — вредно;
• надо выработать привычку делать транзакции быстрыми и закрывать результаты БД.

Детали — на Хабре: http://bit.ly/350vNd2
Создание микросервисов на PaaS

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

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

Если посмотрите видео, будет полезно, однозначно: https://youtu.be/KT_FKNRDvco
This media is not supported in your browser
VIEW IN TELEGRAM
Коротко о том, как мы починили баг в pgx чужими руками

Подробная история, как это получилось, в нашей статье на Хабре → http://bit.ly/2InjaQv
This media is not supported in your browser
VIEW IN TELEGRAM
Хранение кодовой базы: как это было и как мы пришли к монорепозиторию

Коротко объясняем на гифке. А подробно — в статье на Хабре. Почитайте, если интересно: http://bit.ly/3nrokd6
PaaS в Авито: как это устроено

Платформа позволяет нам экономить время и ресурсы продуктовых инженеров на разных этапах разработки. А ещё — контролировать «зоопарк» технологий и быстрее выкатывать изменения на всю команду.

Выделили в статье наработки, которые потенциально можно переиспользовать другим компаниям: http://bit.ly/35IsJm8
This media is not supported in your browser
VIEW IN TELEGRAM
Коротко о том, зачем компаниям нужны «облачные» UX-исследователи

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

При разработке сервисов без такого обойтись нельзя: http://bit.ly/35ZQ2Io