Лид: зачем готовиться к Авито отдельно
Авито — не только доска объявлений. Для инженера это один из самых плотных технических работодателей в стране: сотни миллионов объявлений, десятки миллионов людей в месяц и задачи, которые редко встречаются в среднем продукте — поиск, ранжирование, антифрод.
Ниже — как обычно выглядит воронка: HR, стек, алгоритмы, для Senior+ ещё System Design, затем финал с командой. Цифры и сроки — оценка редакции по открытым практикам рынка, не страница карьеры Авито. Этапы могут сдвинуться, оффер никто не гарантирует.
Пока читаете, дыры в Go и графах удобно поймать в экспресс-квизе, а речь на алгоритмах — на моке с напарником. Отдельного симулятора «как в конкретной команде Авито» на платформе нет.
Почему Авито
Авито Тех — несколько тысяч инженеров. Масштаб ближе к крупному маркетплейсу, чем к «ещё одной доске»: объявления, поиск, профили, вертикали, антифрод. Цифры ниже — ориентир редакции, не официальный отчёт компании.
| Параметр | Ориентир |
|---|---|
| Объявлений на платформе | 100M+ |
| Уникальных пользователей в месяц | 50M+ |
| Основной язык backend | Go |
| Legacy | PHP — постепенно уходит |
| Инфраструктура | Kubernetes, Kafka, ClickHouse |
| ML | Свои платформы для ранжирования и модерации |
Что обычно отмечают про культуру
- Инженерная дисциплина. Code review обязателен, документация ценится, техдолг обсуждают вслух, а не прячут в тикетах «потом».
- Автономные команды. Стек и подход выбирает команда. Это свобода и ответственность: «так принято в компании» срабатывает реже, чем «так решили мы».
- Go-first. Новый backend почти весь на Go. Без языка на стековом раунде будет тяжело даже сильному PHP/Java-инженеру.
- Поиск и ML. Много задач про информационный поиск, ранжирование, рекомендации. Опыт IR — заметный плюс, не обязательный билет.
- Work-life balance. Редкость для крупного продукта, но в рассказах кандидатов это часть культуры, а не слоган карьерного сайта.
Процесс найма: этапы и сроки
Цикл обычно занимает три-четыре недели. Воронка структурированная: сначала люди и мотивация, потом глубина стека, потом алгоритмы. System Design чаще для Senior+. Финал — знакомство с командой и менеджером, а не «ещё один LeetCode».
1. HR-скрининг
Видеозвонок, 20–30 минут. О себе, продукт, почему Авито, направление, вилка.
2. Техническое интервью
Около полутора часов. Глубокая проверка стека: для backend это Go, базы, поиск, Kafka.
3. Алгоритмы
Час, две задачи. Обычно Medium и прикладные формулировки, не олимпиадный Hard.
4. System Design — Senior+
Час на проектирование: поиск, модерация, рекомендации, антифрод. Мидлу этот раунд часто не ставят.
5. Знакомство с командой
Менеджер и будущие коллеги. Fit, автономия, мотивация. Готовьте вопросы — молчаливый «мне всё ясно» звучит слабо.
Этап 1. HR-скрининг
Формат: видеозвонок, 20–30 минут. Не технический экзамен, но здесь отсекают тех, кто не открывал продукт и не может связать опыт с направлением.
- Расскажите о себе и опыте без десятилетней биографии — 2–3 минуты, затем глубина по запросу.
- Что вы знаете об Авито как пользователь и как инженер: поиск, вертикали, антифрод, не только «большая доска».
- Почему именно сюда — конкретнее, чем «масштаб и бренд».
- Какое направление ближе: Core, вертикали, монетизация, Trust & Safety, Platform.
- Вилка. Назовите диапазон, который вы готовы обсуждать, а не «по рынку».
Поведенческие формулировки удобно собрать заранее — не как речь на камеру, а как короткие истории. На платформе для этого есть разбор STAR-историй.
| Направление | О чём задачи |
|---|---|
| Core | Объявления, поиск, профили |
| Vertical | Авто, недвижимость, работа |
| Monetization | Реклама и продвижение |
| Trust & Safety | Антифрод, модерация |
| Platform | Инфраструктура и внутренние инструменты |
Этап 2. Техническое интервью
Формат: видеозвонок, около полутора часов. Это не «расскажите про REST». Интервьюер идёт вглубь того стека, на который вы претендуете.
Backend
Go — must have. Горутины, каналы, WaitGroup, errgroup. Как устроен планировщик M:N. Зачем context и как его не потерять. Паттерны: worker pool, fan-out/fan-in, pipeline. Особенности GC. Композиция интерфейсов и embedding. Table-driven tests, моки, бенчмарки. pprof и trace — не «слышал», а «когда снимал профиль».
| СУБД | О чём спрашивают |
|---|---|
| PostgreSQL | Индексы, EXPLAIN ANALYZE, партиции, MVCC, уровни изоляции, репликация |
| ClickHouse | Колоночное хранение и когда оно уместно |
| Redis | Типы данных, persistence, cluster |
Поиск — отдельный акцент. Как устроен полнотекстовый поиск, inverted index, зачем помнить TF-IDF и BM25, чем Elasticsearch отличается от PostgreSQL FTS. Если вы шли в Core или вертикаль с выдачей — этот блок не «приятное дополнение».
Распределённые системы и Kafka. CAP на примерах, а не на слайде. Raft/Paxos базово. Eventual consistency: что обещаете пользователю. 2PC и Saga. В Kafka — consumer groups, партиции, offset, at-least-once и exactly-once, порядок сообщений, «отравленные» записи.
Дыру в Go или в основах поиска быстрее увидеть в квизе, чем в ночь перед слотом. На моке уже тренируйте объяснение, не зубрёжку определений.
Frontend
JavaScript: event loop, прототипы, замыкания, промисы и async/await, CommonJS vs ES Modules. React: Fiber, reconciliation, правила хуков и свои хуки, Context / Redux / Zustand, базово Server Components. Производительность: бандл, tree shaking, code splitting, виртуализация списков. TypeScript: generics, Partial/Pick/Omit/Record, discriminated unions, type guards.
Mobile
Android: Jetpack (ViewModel, LiveData, Room, Navigation), корутины и structured concurrency, утечки памяти, Gradle. iOS: SwiftUI vs UIKit, Combine, retain cycles, MVVM / VIPER / TCA. Стек зависит от вакансии — не зубрите оба мира «на всякий случай», если роль одна.
Этап 3. Алгоритмы
Час, две задачи. Секция, на которой отваливается много сильных «прод-инженеров»: код писать умеют, думать вслух — нет.
Ориентир — Medium и практические сценарии, не олимпиада. Корректность нужна, но коммуникация весит не меньше: уточнения, сложность, крайние случаи до того, как открыли редактор.
Темы: массивы и строки (два указателя, скользящее окно), хеш-таблицы, бинарный поиск, деревья и графы (BFS/DFS), базовый DP, жадные алгоритмы.
Как звучат формулировки
- Дубли объявлений. Массив (title, description). Найти пары, где в описании совпадает больше 80% слов.
- Цена. Цены за N дней. Лучший день купить и продать позже — максимум прибыли.
- Категории. Дерево рубрик. Собрать объявления категории и всех потомков.
- Ранжирование. Рейтинг и дата. Сортировка по score = rating × decay(days_old).
Алгоритмы в тишине — другая секция
Пока не открылся слот в Авито, один раз проговорите задачу вслух. Квиз покажет дыру в теме, мок — дыру в речи.
Этап 4. System Design
Для Senior+. Час. Типичные постановки: поиск объявлений, модерация, рекомендации, антифрод, мессенджер, аналитика просмотров.
Это не «нарисуйте Elasticsearch». Нужны нагрузка, свежесть, фильтры, что ломается при росте. Формат близок к другим продуктовым компаниям — разбор System Design как на Amazon помогает со структурой ответа, это не клон задачи Авито.
Пример: поиск объявлений
Ориентиры постановки: порядка 100M объявлений, около 10K запросов в секунду, релевантность плюс свежесть, фильтры по цене, городу, категории.
| Компонент | Зачем |
|---|---|
| API Gateway | Лимиты и аутентификация |
| Search Service | Разбор запроса и сбор query к индексу |
| Index | Кластер поиска, шарды по городу или категории |
| Ranker | Модель ранжирования: свежесть, качество, CTR |
| Cache | Популярные запросы, короткий TTL — порядка пяти минут |
| Indexer | Kafka на новые и изменённые объявления, индекс за минуту, не за час |
- Как обновлять индекс при правке объявления?
- Как держать и релевантность, и свежесть?
- Что делать с опечатками?
- Куда упрётесь при росте QPS и каталога?
Этап 5. Финал с командой
Знакомство с командой и менеджером. Смотрят культурный fit, soft skills, мотивацию и способность работать без постоянного надзора.
Вас могут спросить про сложное техническое решение, работу с неопределённостью, как даёте и принимаете фидбек, что для вас важно в команде. Ответ «команда и рост» без примера звучит как шаблон. Лучше одна история по STAR.
Ваши вопросы: какие сейчас технические челленджи, как устроены процессы, онбординг, как выглядит рост. Пустой «вопросов нет» на финале читается хуже, чем на HR.
Типичные ошибки
| Ошибка | Что сделать |
|---|---|
| Не знать продукт | Пользуйтесь Авито как пользователь: поиск, фильтры, избранное, чат |
| Слабый Go | Это основной язык backend. Concurrency спросят глубже, чем «умею писать хендлеры» |
| Молчать на алгоритмах | Думайте вслух. Мок с напарником дешевле, чем сюрприз на боевом слоте |
| Не уточнять на System Design | Спросите QPS, консистентность, SLA. Иначе рисуете систему не из той постановки |
| Недооценить финал | Готовьте поведенческие истории. Финал отсекает не только «не умеет кодить» |
План на две недели
Если слот уже близко, не открывайте новый учебник по распределённым системам целиком. Закройте Go и базы, затем практику алгоритмов, затем один мок.
Неделя 1. Теория
| Дни | Тема |
|---|---|
| 1–2 | Go: concurrency, паттерны, тесты |
| 3–4 | PostgreSQL, Redis, ClickHouse |
| 5–6 | Распределённые системы, Kafka |
| 7 | Elasticsearch и поиск |
Неделя 2. Практика
| Дни | Тема |
|---|---|
| 1–3 | Около 20 задач Medium — с речью, не только с Accepted |
| 4–5 | System Design: поиск и рекомендации — если цель Senior+ |
| 6 | Мок: найти напарника |
| 7 | Пользоваться Авито как клиент: поиск, фильтры, чат, кабинет |
Если до боевого слота меньше семи дней — сначала плейбук последней недели, а не новый Hard. Как вести диалог, когда интервьюер «плавает», — в отдельном разборе.
Частые вопросы
Нажмите на вопрос — ответ откроется ниже.
Новый backend пишут на Go. PHP ещё живёт как legacy. На стековом раунде ждут concurrency и context, а не «я быстро выучу синтаксис». Дыру ловят квиз и мок, не вики.
Обычно Medium и прикладные формулировки: дубли, цена, дерево категорий. Важна речь и крайние случаи. Accepted в тишине — слабая подготовка к этому раунду.
В типичной воронке — Senior+. Мидлу лучше закрыть стек и алгоритмы. Если раунд всё же поставили — держите структуру, как в разборе System Design, не зубрите «эталонную» схему Авито.
Нет. Сначала brute-force вслух, потом оптимизация. На моке это отрабатывается лучше, чем в комментариях к чужому решению.
Нет отдельного симулятора команды. Есть мок с живым инженером и квиз. Оффер не обещаем.
Заключение
Собеседование в Авито — марафон, не спринт. Ценится глубина, речь и то, как вы вписываетесь в автономную команду. Начните с Go, баз и алгоритмов. Компания не торопит оффер, но и редко растягивает цикл на месяцы.
IT Career Gym — тренажёр: мок с напарником, квизы, разборы в блоге. Это подготовка, не трудоустройство в Авито.
Пока слот не открылся
Соберите заявку на мок и закройте одну тему в квизе. Оффер Авито мы не выдаём — речь и стек к раунду подтянуть можно.
Также по теме: Плейбук последней недели · System Design как на Amazon · Когда интервьюер «плавает» · STAR-истории · Парный мок