Готовьтесь переключаться между уровнями: коротко ответить на теорию, написать рабочий код, оценить сложность и затем защитить production-решение. Один уровень без остальных редко показывает зрелость backend-инженера.
План
Пройдите этапы по порядку
- 01
Как бы вы реализовали LRU cache?
Комбинируйте map для O(1) доступа и двусвязный список для порядка использования. Обсудите конкурентный доступ, лимит памяти, метрики hit rate и отличие локального кеша от распределённого.
- 02
Что происходит при append к slice?
Разберите len/cap, общий backing array и переаллокацию. Покажите неожиданную мутацию через два subslice и способ безопасно владеть данными на границе API.
- 03
Как спроектировать сервис объявлений?
Уточните создание, поиск, фотографии, модерацию, географию и SLA. Разделите transactional write path, поисковый индекс и media storage, добавьте асинхронную индексацию и модель eventual consistency.
- 04
Как избежать дублей при обработке события?
Используйте устойчивый event id, таблицу обработанных сообщений или идемпотентный upsert в одной транзакции с эффектом. Обсудите TTL дедупликации, reprocessing и наблюдаемость consumer lag.
- 05
Почему SQL-запрос не использует индекс?
Проверьте селективность, статистику, типы, выражение над колонкой, порядок полей составного индекса и стоимость random I/O. Смотрите EXPLAIN ANALYZE, а не делайте вывод по наличию индекса.
- 06
Как рассказать о техническом решении из опыта?
Дайте контекст и нагрузку, назовите альтернативы и критерии, затем решение, rollout и измеримый результат. Будьте готовы обсудить цену миграции, инцидент и то, что не сработало.
Что обычно мешает
Частые ошибки
- Запоминать готовые ответы без live coding.
- Игнорировать ограничения задачи.
- Рисовать микросервисы до определения границ.
- Скрывать личный вклад за словом «мы».
Перед следующим этапом
Чек-лист готовности
- Прошёл пробный 30-минутный скоринг.
- Пишу алгоритмы без библиотечной магии.
- Объясняю Go runtime и concurrency.
- Читаю EXPLAIN ANALYZE.
- Готов к системному дизайну продукта объявлений.
Коротко
Частые вопросы
Сколько этапов у Авито?
Открытый playbook описывает 4–5 встреч, включая короткий технический скоринг, расширенное техническое интервью и последующие встречи. Актуальный маршрут зависит от функции и вакансии.
Есть ли live coding?
Да, в опубликованной схеме для backend, frontend и mobile указана секция программирования с оценкой алгоритмизации и сложности. Конкретный язык соответствует позиции.
Нужно ли готовить System Design?
Для опытных разработчиков — да. Авито отдельно публикует материалы о секции проектирования, включая задачи уровня сервиса нотификаций или архитектуры продукта.
Источники
Источники и редакционная политика
Материалы RecallDeck сопоставлены с официальной документацией и открытыми публикациями компаний, когда первичный источник доступен. Мы не связаны с упомянутыми работодателями, не публикуем конфиденциальные задания и не продаём места в подборках. Формат найма может меняться — уточняйте его у рекрутера.
От чтения к воспроизведению
Отрепетируйте полный цикл интервью.
RecallDeck возвращает сложные темы по расписанию и помогает удерживать в памяти язык, SQL, архитектуру и поведенческие истории.