AvitoTech
22.5K subscribers
1.86K 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
📱 Подготовили отчёт с седьмого iOS-митапа, который проходил в нашем офисе.

В посте на Хабре — несколько вариантов карьеры iOS-разработчика, реализация remote cache для iOS, тёмная тема мобильного приложения и опыт внедрения feature toggle.

Там же выложили ссылки на презентации спикеров, отзывы и видеозаписи → http://bit.ly/2LbcUv4
Вячеслав Бобик, бэкенд-разработчик в Авито, расскажет на MongoDB Meetup про ACID-транзакции

Первый митап крупнейшего русскоязычного сообщества по MongoDB состоится сегодня в 19:00.

Места ещё есть и можно зарегистрироваться → http://bit.ly/30vIQOz
У нас в Авито есть собственная система для управления тест-кейсами.

В чём её отличия от других тестохранилок:
🎋 ветки — это такой легкий Git на MySQL;
🅰 API для управления тест-кейсами и проверки статуса автотестов;
🌴 бесконечное дерево фич.
К тому же, система оптимизирована для кросс-функциональных команд.

В англоязычной статье на Медиуме Вадим Шашин рассказывает о том, как она устроена → http://bit.ly/2XRn3mv
This media is not supported in your browser
VIEW IN TELEGRAM
Что такое Zero Bug Policy и зачем эту политику стоит внедрять у себя?

Короткий ответ — в нашем видео. Подробнее о Zero Bug Policy — в нашем блоге на Хабре: bit.ly/z0bpc
Как использовать стендбай в PostgreSQL

Константин Евтеев рассказывает в нашем англоязычном блоге на Медиуме о различных вариантах использования и конфигурации standby сервера.

В статье:

1️⃣ горизонтальное масштабирование с помощью репликации;
2️⃣ как использовать реплику для чтения и избежать stale reads;
3️⃣ возможные проблемы и решения при использовании стендбая с большим количеством запросов, применение DDL, отправка большого количества WAL-файлов в архив и восстановление из архива;
4️⃣ использование пула стендбаев и переключения запросов между ними;
5️⃣ восстановление после аварий с приведением в согласованное состояние мастера, стендбаев и архива.

Почитайте, если интересуетесь темой: http://bit.ly/2JO2sGW
1 августа в офисе Авито пройдёт седьмая встреча Общества Анонимных Тестировщиков

В программе: доклады про самодельную TMS, мониторинг систем мониторинга, качество поиска в интернет-магазине и нативных тестах в iOS.

Явки, пароли и ссылки — в нашем блоге на Хабре: http://bit.ly/32EfQ9a
3 августа вместе с сообществом «Тренировки ML» проведем открытый митап по машинному обучению в нашем офисе

С докладами выступят участники последних соревнований на Kaggle, International Data Analysis Olympiad и Signate — расскажут, какие техники и методы использовали в решениях они сами, а какие помогли их конкурентам.

Программа и регистрация: http://bit.ly/2M8cUf2
Как собрать простейшую биологическую лабораторию у себя дома?

Прежде всего, нужны хорошие инструкции, аккуратные руки и внимательность. А остальное — можно найти на Авито. Подробнее об этом рассказали вместе с N+1.

http://bit.ly/2MfIPKC
Митап с окрошкой и инцидентами

10 августа в нашем офисе пройдет четвертый митап в серии Backend United, который получил название «Окрошка».

В программе — доклады про инструменты для улучшения incident response, работу с продакшн взрывами, ценность технического долга, автоматизированный сбор сведений при значительных инцидента. А во время перерыва запланировали поедание окрошки.

Если вам всё это интересно, то регистрируйтесь на встречу на таймпаде. Подробнее о докладах можно прочитать на Хабре.
8 советов, как работать с Postgres в Go

1. Используйте github.com/jackc/pgx как драйвер для работы с Postgres.

2. Ограничивайте сверху размер пула соединений.

3. Кешируйте OIDs или используйте pgx.ConnPool, если работаете с pgx версии.

4. Собирайте метрики по пулу соединений, используя DB.Stats() или ConnPool.Stat().

5. Логируйте происходящее в драйвере.

6. Используйте режим Simple Query, чтобы избежать проблем с подготовкой запросов в транзакционном режиме PgBouncer.

7. Обновляйте PgBouncer до актуальной версии.

8. Будьте аккуратны с отменой запросов со стороны приложения.

Сохраняйте себе в качестве чеклиста. Но перед этим можно прочитать статью Артемия Рябинкова про нюансы и особенности работы с Postgres в Go. Вышла сегодня в нашем блоге на Хабре → http://bit.ly/2ysbvYD
Через 30 минут начнётся трансляция Общества анонимных тестировщиков

В программе доклады про самописную TMS, мониторинг систем мониторинга, качество поиска в интернет-магазине.

Можно будет задавать вопросы, на которые спикеры будут отвечать в прямом эфире. Подключайтесь: https://youtu.be/aMvUM2xDOZQ

Ну или отправьте ссылку коллегам, которые интересуются QA.
Сегодня вместе с сообществом «Тренировки ML» проводим встречу в нашем офисе

С докладами выступят участники последних соревнований на Kaggle, International Data Analysis Olympiad и Signate — расскажут, какие техники и методы использовали в решениях они сами, а какие помогли их конкурентам.

Подключайтесь к трансляции в 12:00, если интересуетесь машинным обучением 👇🏻

https://youtu.be/TDthQhvMpb0
SPA Meetup #5 — приглашаем на встречу фронтенд-разработчиков

Можно будет послушать доклады про интеграцию Jest с QA-инфраструктурой, DI в качестве способа масштабирования, может ли UIKIt быть максимально гибким и подходящим для всего, росте библиотек компонентов и платформенную команду.

Кто выступит с докладами?
Сергей Мелюков из Авито, Тим Чаптыков из ВКонтакте, Алексей Попков из Яндекса, Константин Лебедев из Mail.Ru и Александр Казаченко из Тинькофф.

Подробнее о докладах — читайте в нашем блоге на Хабре: http://bit.ly/2T8d2g4

Регистрируйтесь на митап — на таймпаде: http://bit.ly/2Kj9yV9
Мониторинг систем мониторинга, нативные тесты на iOS, оценка качества поиска и самодельная TMS — презентации и видео с седьмой встречи Общества анонимных тестировщиков

В блоге на Хабре опубликовали полезные материалы по тестированию и поделились отзывами посетителей митапа.

Посмотрите сами: http://bit.ly/31oy9xv
Media is too big
VIEW IN TELEGRAM
Как создавать микросервисы?

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

Вадим Мадисон рассказал об этом подробнее в нашем блоге на Хабре: http://bit.ly/2ZDqiLS
Лекция продвинутого курса Android Academy Moscow в Авито

Тема второго занятия — «Optimizations», его проведёт Алёна Манюхина, android-разработчик из Яндекса. Приходите 15 августа в 19:00 в наш офис, если интересуетесь темой, даже если пропустили первое занятие. Ещё не поздно.

Регистрация → http://bit.ly/2ThQdql

Подготовиться ко встрече вам помогут полезные материалы, которые подготовили ребята из Android Academy: https://t.me/AndroidAcademyMskNews/13
Поговорим про инциденты?

Четвёртый митап из серии Backend United начнётся в 12:30. Присоединяйтесь к прямой трансляции, если хотите послушать доклады по этой теме.

Вот о чём они будут:

1️⃣ Простые инструменты для улучшения incident response: опыт Tutu — Андрей Борзов, Tutu.ru

2️⃣ Работа с Production взрывами: обнаружение, оценка потерь, управление инцидентами — Дмитрий Химион, Авито

3️⃣ AutoLSR — автоматизированный сбор сведений при значительных инцидентах — Владимир Колобаев, Авито

4️⃣ Мы это сломали сейчас, но починим потом. Техдолг и его ценность — Борис Кайзер, Ozon

Трансляция на нашем ютуб-канале: http://bit.ly/31EJslB

Если размышляете, смотреть митап или нет, и вам сперва нужно получше узнать программу, то почитайте её в нашем блоге на Хабре: bit.ly/2ZkQqLH
Видео: тренировки по машинному обучению

Четыре полезных доклада со встречи ML Trainings, которая проходила 3 августа в нашем офисе.

1️⃣ Илья Ларченко — Kaggle Freesound Audio Tagging 2019 (eng)
2️⃣ Илья Иваницкий — Финальный этап International Data Analysis Olympiad
3️⃣ Николай Сергиевский — Signate Соревнование по распознаванию сигаретных пачек
4️⃣ Алексей Могильников — Kaggle LANL Earthquake Prediction

Плейлист на нашем ютуб-канале → http://bit.ly/2P3aW2S
Как мы реализуем data discovery в микросервисной архитектуре?

Классическая интерпретация data discovery — это то, как работать с данными, разбросанными по разным хранилищам, чтобы приводить к совокупным выводам и делать какие-нибудь правильные выводы. На самом деле это всё маркетинговый bullshit. Эти определения про то, как все данные с микросервисов загрузить в хранилище.

Но вот ситуация: у вас есть монолит (который вы активно пилите), у вас много баз, много сервисов, они постоянно добавляются и эволюционируют. И как вам посмотреть цельную картину сотен сервисов, баз, команд, людей, да так, чтобы ничего не потерялось?

Ответ, предложенный Николаем Головым: граф элементов, граф связей, который мы решили назвать помнящей тканью.

Подробнее об этом — в статье на Хабре: http://bit.ly/2MdY73n
Backend United #4: Окрошка — записи докладов про инциденты

Посмотрите на нашем ютуб-канале видео с четвёртого митапа в серии Backend United. После просмотра видео узнаете, как обнаружить инциденты, настроить автоматизированный сбор сведений о них и как быстро чинить поломки, возникшие во время этих инцидентов.

Плейлист → http://bit.ly/2N3y7XX
Идти в тимлиды или расти как разработчик? Рассказывает Сергей Боиштян, senior engineer в Авито

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

Как понять, что вам выбрать? Мой совет — поймите себя: пройдите тесты, порефлексируйте, поведите дневник, сходите к психологу.

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

Если вы — разработчик и общение с людьми не тяготит, то попробовать лидство надо хотя бы для того, чтобы стать более эффективным».

В итоге Сергей Боиштян, вкусив реалии жизни тимлида, вернулся в ряды инженеров. Подробнее о своём пути он рассказал в интервью на Хабре: http://bit.ly/2Ylhkq9