Вспоминаем, каким был наш релизный поезд раньше и как круто мы его доработали сейчас. Мы разработали сервис релизов, запустили бета-тесты, придумали, как релизить без участия людей и автоматизировали загрузку сборок в магазины приложений. Про это всё рассказываем в статье.
Система Quality Score: как оценивать внешнее качество продукта
Рассказываем, как создали понятную систему оценки качества для команд разработки Авито. Мы отобрали самые релевантные метрики, протестировали их, а затем показали коллегам, как ими пользоваться. Звучит просто, но на самом деле это был долгий и кропотливый процесс. Что получилось в итоге, читайте в статье.
Как мониторить здоровье вашей Gradle-сборки
Как себя чувствуют ваши Gradle-сборки? Рассказываем, как проверить их состояние и как «подлечить», чтобы CI работал чётко.
Apache Spark и PySpark для аналитика. Учимся читать и понимать план запроса в SparkUI
Продолжаем выводить ваши знания о PySpark на новый уровень :) В этот раз расскажем, что такое план запроса, как его смотреть, и что делать, чтобы уточнить узкие места в расчётах.
Запуск потенциально опасного кода в изолированном окружении. Как мы сохраняем безопасность на macOS
Мы запустили облачный тест-раннер Emcee. Теперь другие компании могут тестировать приложения, не разворачивая у себя локальную версию раннера. Правда, запуск стороннего кода на наших серверах — это небезопасно. Но мы решили этот вопрос — рассказываем, как это было.
Построение платформенного продукта в Авито
Мы в Авито разработали свою внутреннюю платформу для разработчиков. Несмотря на то, что создание платформенного продукта — довольно затратная история, в итоге мы видим сплошные плюсы. Она растит скорость и качество разработки, делает системы стабильнее, помогает инженерам сосредоточиться на бизнес-задачах, а не на рутине.
Наш опыт построения платформы мы постарались заложить во внешнее решение Plato, которое опирается на проверенные open-source решения.
О преимуществах платформы, процессах её разработки и сложностях в реализации — в этой статье.
Как мы выдержали x20 рост нагрузки на сервис Авито Автозагрузка
Рассказываем, как мы пережили внезапный кратный рост нагрузки на наш сервис для автоматической загрузки объявлений. Нам пришлось искать проблемные места в архитектуре и менять её практически полностью. Весь наш путь — в этой статье.
Используем JS Self-Profiling API для профилирования фронтенда на клиентах
Поговорим с нашим фронтенд-инженером Ильёй Алоновым про преимущества и недостатки JS Self-Profiling, посмотрим, как им пользоваться, и узнаем, какие есть подводные камни и как их обойти. Если интересуетесь перформансом веб-приложений — не проходите мимо :)
«Всё происходит само собой, когда тебе не всё равно»: как из игрока в покер стать руководителем тимлидов
Сергей Баранов рассказывает, как стал юнит-лидом в Авито, о сложностях и успехах в работе, и почему менеджерам на самом деле не нужны суперкрутые инженеры.
Инструменты тимлида: как управлять техническим бэклогом
Статья поможет начинающим тимлидам организовать управление техническим бэклогом так, чтобы не раздувать его до огромных размеров, создавать меньше технического долга и успевать фокусироваться на других важных задачах. А опытным тимлидам — систематизировать свои знания.
Семантики доставки событий в распределенных системах
Павел Агалецкий, ведущий разработчик в юните Platform as a Service в Авито, рассказал про семантики или гарантии доставки сообщений, и почему с ними не всегда просто разобраться.
Миграция приложения на Jetpack Compose
Jetpack Compose — крутой набор инструментов, который упрощает работу над интерфейсами для Android. С ним не нужно писать так много кода, как в обычных XML-разметках. А ещё в нём много полезных для разработчика фич — в этой статье расскажем о них подробно. И, конечно, выясним, как перенести UI и архитектуру приложений на Jetpack Compose и забыть View на 10 000 строк, как страшный сон.
Go's Garbage Collection: как работает и почему это важно знать
В статье посмотрим на Go Garbage Collector — механизм автоматического освобождения невостребованной памяти приложения в Go. Разберём его устройство и принципы работы.
«Возьмите инициативу на себя»: готовимся к System Design Interview
Рассказываем, для чего в Авито проводят интервью по System Design, чего от него ожидать и что нужно знать, чтобы его успешно пройти.
Feature-Sliced Design – альтернативный подход к организации кода приложений
Feature-Sliced Design — это архитектурная методология, активно набирающая популярность в последнее время. И не зря: организация разработки по её правилам позволяет упростить процессы, сделать их быстрее и гибче. Больше не нужно будет переживать из-за совместной работы в одном домене и конфликтов кода, долго искать ответ на вопрос «А куда же впилить новую фичу, тут и так намешано…»
О том, как устроена Feature-sliced Design, чем она отличается от «классической» организации кода, плюсах и минусах от её внедрения — в этой статье.
Домашка на лето: что почитать разработчику
У нашего разработчика Михаила Ефремова есть хобби — читать книги и делать подборки особенно полезных. В этой статье он расскажет, как собрал книжную полку с лучшими, на его взгляд, книгами для разработчиков и поделится мнением о них. Миша подобрал книги по алгоритмам, архитектуре, базам данных, Linux/UNIX, Golang, Python.
Сравниваем скорость и оверхеды библиотек Deep Copy для Go
Егор Гартман, бэкендер Авито, рассказал, как протестировал несколько библиотек Deep Copy, а потом сделал свою — быстрее и эффективнее.
Как измерить надёжность вашего приложения
Рассказали, как мы в команде SLA учились измерять надёжность сначала отдельных микросервисов в архитектуре Авито, а затем всей системы в целом. Подробно опишем, что входит в понятие надёжности сервиса, что такое бюджет ошибок и как его считать. А в конце поделимся способами измерения надёжности, которые помогли нам сформулировать понятную и удобную в подсчётах метрику для бизнеса.
Как реализовать ролевую систему доступа через Open Policy Agent. Опыт PaaS Авито
Антон Губарев, инженер в команде Platform as a Service (PaaS) Авито, рассказал, как они с командой внедряли политики авторизации с помощью Open Policy Agent (OPA), и с какими проблемами столкнулись на пути.
Пишем хорошие компоненты, которые захочется переиспользовать, а плохие — не пишем
Обсудили с Антоном Крыловым, фронтенд-разработчиком Авито, как нужно и не нужно писать компоненты. Поговорили про характеристики компонентов и коснулись Dependency Injection и DSL-like подхода в React.
Информация
- Сайт
- avito.tech
- Дата регистрации
- Дата основания
- 2007
- Численность
- 5 001–10 000 человек
- Местоположение
- Россия