Станьте
разработчиком
в Авито

Присоединяйтесь к команде и работайте над развитием сервиса, которым пользуется больше трети жителей страны. У нас сильная команда, нестандартные задачи, выстроенные процессы и большие планы.          
Разработка Разработка
Разработчик — не просто исполнитель
Вы будете участвовать в развитии сервиса: обсуждать продуктовые решения с командой, предлагать идеи и внедрять их. Для нас качество идеи или аргумента важнее роли и статуса человека, который их продвигает.
Сложный массовый продукт
Каждый месяц больше 50 миллионов людей пользуются Авито. Мы имеем дело с десятками тысяч запросов к бэкенду в секунду, миллионами активных объявлений и миллиардами картинок в хранилище. В минуту мы обрабатываем в среднем 25 тысяч поисковых запросов. Развивать такой сервис — ежедневный челлендж.
Сильное комьюнити
У нас работают больше 1 000 инженеров, готовых общаться и обмениваться опытом. Мы объединяемся в функциональные сообщества, проводим митапы и хакатоны, регулярно выступаем на конференциях и пишем статьи. А ещё мы любим опенсорс.
Комфортные условия
Уютный офис в Москве или полностью удалённая работа, ДМС, бюджет на обучение и посещение конференций, прозрачная система оценки и премирования, техника Apple или Dell и многое другое — обо всём расскажем на собеседовании.

Над чем мы работаем

Back, Front, Mobile, QA, InfoSec, Data Science, DevOps, DBA, Infrastructure, DWH.

Направления

Платформенное

Создаём инструменты, которыми пользуются другие инженерные команды Авито, разрабатывать системы мониторинга и тестирования.

Горизонтальное

Разрабатываем фичи, которые использует вся аудитория Авито: от крупнейших застройщиков до заводчиков собак.

Вертикальное

Совершенствуем продукт для конкретных рынков: транспорта, недвижимости, найма и услуг.

Стек

Примеры задач

Разрабатываем системы автоматической модерации с поиском по изображению, модели машинного обучения.
Строим микросервисную архитектуру приложений по концепции platform as a service.
Внедряем инструменты, которые ускоряют производительность сайта и мобильных приложений.
Выносим в опенсорс инфраструктуру Авито для Android: Gradle плагины, эмуляторы и библиотеки для тестов.
Запускаем A/B-тесты из единой платформы для хранения экспериментов.
Создаём единую библиотеку компонентов для упрощённой разработки интерфейсов.
Развёртываем кластеры Kubernetes на несколько дата-центров.

Как мы растём

Мы работаем и развиваемся, проходя через заранее известные уровни. Каждый знает, каким путём следует и чему предстоит научиться дальше. Можно расти как инженер или как менеджер.
Как мы растём
Подробнее об уровнях: инженеры менеджеры QA

О чём рассказываем миру

Видео Avito Tech Managers meetup #1 Видео Avito Platform engineering meetup #2 Видео Avito iOS meetup #10 Видео Avito Backend United meetup #7: Долма Видео Avito Security Meetup Обучение 2 курс: Паттерны и практики написания кода Обучение 1 курс: Паттерны и практики написания кода Обучение Серия видео avito.code Видео Время честно поискать секреты в кодобазе Видео Паттерны параллельных вычислений в Golang | avito.code Статьи «Возьмите инициативу на себя»: готовимся к System Design Interview Статьи Go's Garbage Collection: как работает и почему это важно знать Статьи Миграция приложения на Jetpack Compose Статьи Ошибка.log(): как логируются ошибки в мобильном приложении Авито Видео Внутренние комьюнити мобильных разработчиков: особенности, различия, влияние Видео Independency: сбрасываем оковы CocoaPods Статьи Ультимативный гайд по HTTP. Структура запроса и ответа Видео MoscowJS #52 Видео Экспертное собеседование Android System Design Видео Переход с Python на Go. Личный опыт, сложности, советы Видео Dependency Injection | Курс «Паттерны и практики написания кода» Статьи Как построить надёжную шину данных на Apache Kafka Видео Профилирование фронтенда в проде Видео AA Jetpack Compose #5: UI Testing. Practice.
Смотреть всё

Чего ждать на собеседовании

01
Беседа с рекрутером
Во время телефонного звонка обсудим ваш опыт и пожелания по вакансии. Вы сможете задать вопросы о команде и работе в Авито.
02
Скоринговое интервью
Короткая беседа с техническим специалистом. Он задаст несколько вопросов, чтобы оценить знание теории и опыт.
03
Техническое интервью
Проверим ваши навыки в написании кода, знание языка программирования и понимание разработки: будут практические задачи
и вопросы.
04
Финальное интервью
Расскажем, чем занимается команда, с какими задачами вам предстоит работать и как у нас устроены процессы. Оценим мотивацию, ценности и софт-скиллы.
Предложение о работе
Если пройдёте все этапы собеседования и мы понравимся друг другу, вы получите оффер.
Подробный ответ
Если поймём, что не готовы сделать вам оффер, вернёмся с разбором. Напишем, чего не хватило, а что вышло хорошо.

Этапы отбора
в Авито Tech

Рассказываем какие особенности существуют при отборе разработчиков для различных платформ и направлений, делимся рекомендациями и полезными материалами.
01

Скрининг

Вопросы по основным компонентам Android, Activity, языку программирования, синхронизации, сети и UI, а ещё небольшая задача.

02

Программирование

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

03

Платформа

Задачи и теоретические вопросы на их базе: нужно написать код, почитать примеры чужого кода и обсудить их.
Вопросы будут о языке программирования и специфике Android-разработки: SDK, включая часть support library / jetpack, и вспомогательные пакеты WorkManager, Services, UI, Dagger.

04

Проектирование

Нужно решить кейс — спроектировать высокодоступный дизайн сложной системы. Интервьюер играет роль заказчика, объяснит задачу и будет оценивать, как вы рассуждаете. Эту секцию мы предлагаем пройти только кандидатам, претендующим на уровень E5 и выше.
Мы ожидаем, что вы нарисуете архитектурную схему решения. Можно использовать в качестве нотации диаграмму классов UML либо в свободном формате. Начнём с простого варианта, а если останется время, обсудим расширение, усложнение требований и адаптацию решения под них.

05

Финальное интервью

Знакомство с руководителем, рассказ о команде и задачах, вопросы об опыте и достижениях. На встрече будет рекрутер, он оценит soft skills и culture fit.

Как повысить шансы на успех

На интервью по проектированию мы будем демонстрировать экран с Draw.io / Miro / Whimsical / Excalidraw. Зарегистрируйтесь заранее и освойтесь с инструментом до собеседования. Изучите модель C4, чтобы разговаривать на одном языке с интервьюером.

Решите несколько задач уровня easy и medium c hackerrank.com или leetcode.com и освежите знания по основным структурам данных, чтобы подготовиться к задачам по программированию.

Материалы, которые помогут подготовиться

Android for developers Сайт Kotlin docs Сайт The Java Tutorials Сайт
Effective Java, Джошуа Блох Книга
Kotlin in Action, Светлана Исакова и Дмитрий Жемеров Книга
Java Concurrency in Practice, Брайан Гётц Книга
Цикл статей по разработке приложений для Android Сайт
Блог Романа Елизарова — руководителя разработки языка Kotlin Сайт
01

Скрининг

Вопросы по алгоритмам и структурам данных, архитектуре и платформе iOS, а ещё небольшая задача.

02

Программирование

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

03

Платформа

Две задачи и теоретические вопросы на их базе. Проверим знания Swift, iOS и понимание разработки в рамках экосистемы. Обсудим многопоточность, управление памятью и диспетчеризацию.

04

Проектирование

Нужно решить кейс — спроектировать высокодоступный дизайн сложной системы. Интервьюер играет роль заказчика, объяснит задачу и будет оценивать, как вы рассуждаете. Эту секцию мы предлагаем пройти только кандидатам, претендующим на уровень E5 и выше.
Мы ожидаем, что вы нарисуете архитектурную схему решения. Можно использовать в качестве нотации диаграмму классов UML либо в свободном формате. Начнём с простого варианта, а если останется время, обсудим расширение, усложнение требований и адаптацию решения под них.

05

Финальное интервью

Знакомство с руководителем, рассказ о команде и задачах, вопросы об опыте и достижениях. На встрече будет рекрутер, он оценит soft skills и culture fit.

Как повысить шансы на успех

На интервью по проектированию мы будем демонстрировать экран с Draw.io / Miro / Whimsical / Excalidraw. Зарегистрируйтесь заранее и освойтесь с инструментом до собеседования. Изучите модель C4, чтобы разговаривать на одном языке с интервьюером.

Решите несколько задач уровня easy и medium c hackerrank.com или leetcode.com и освежите знания по основным структурам данных, чтобы подготовиться к задачам по программированию.

Материалы, которые помогут подготовиться

Алгоритмы. Теория и практическое применение, Род Стивенс Книга
Алгоритмы. Построение и анализ, Штайн Клиффорд, Ривест Рональд Л Книга
Высоконагруженные приложения, Клеппман Мартин Книга
System Design. Подготовка к сложному интервью, Сюй Алекс Книга
Cracking the Coding Interview: 189 Programming Questions and Solutions, Gayle Laakmann McDowell Книга
A Simple Framework For Mobile System Design Interviews CтатьяGithub Рекомендованные книги от Максима Радюкова — руководителя разработки кластера Services CтатьяMedium
01

Скрининг

Вопросы по алгоритмам и структурам данных, языку программирования, HTTP, SQL, Git, Unix.

02

Платформа

Задачи и теоретические вопросы на их базе: нужно написать код, почитать примеры чужого кода и обсудить их.
Проверим знания в языке программирования и понимание разработки в рамках экосистемы. Например если вы пишете на Go, мы поговорим про каналы, интерфейсы и горутины.

03

Программирование

Задачи в онлайн-редакторе кода с подсветкой синтаксиса. Код можно писать на псевдоязыке или языке программирования, который подходит для позиции. Можно использовать библиотечные функции и структуры.
Нужно придумать решение, закодить его, оценить алгоритмическую сложность с точки зрения О-нотации и ответить на вопросы по структурам данных.

04

Проектирование

Нужно решить кейс — спроектировать высокодоступный дизайн сложной системы. Интервьюер играет роль заказчика, объяснит задачу и будет оценивать, как вы рассуждаете. Эту секцию мы предлагаем пройти только кандидатам, претендующим на уровень E5 и выше.
Мы ожидаем, что вы нарисуете архитектурную схему решения. Можно использовать в качестве нотации диаграмму классов UML либо в свободном формате. Начнём с простого варианта, а если останется время, обсудим расширение, усложнение требований и адаптацию решения под них.

05

Финальное интервью

Знакомство с руководителем, рассказ о команде и задачах, вопросы об опыте и достижениях. На встрече будет рекрутер, он оценит soft skills и culture fit.

Как повысить шансы на успех

На интервью по проектированию мы будем демонстрировать экран с Draw.io / Miro / Whimsical / Excalidraw. Зарегистрируйтесь заранее и освойтесь с инструментом до собеседования. Изучите модель C4, чтобы разговаривать на одном языке с интервьюером.

Решите несколько задач уровня easy и medium c hackerrank.com или leetcode.com и освежите знания по основным структурам данных, чтобы подготовиться к задачам по программированию.

Материалы, которые помогут подготовиться

Алгоритмы. Теория и практическое применение, Род Стивенс Книга
Алгоритмы. Построение и анализ, Штайн Клиффорд, Ривест Рональд Л Книга
Высоконагруженные приложения, Клеппман Мартин Книга
System Design. Подготовка к сложному интервью, Сюй Алекс Книга
Cracking the Coding Interview: 189 Programming Questions and Solutions, Gayle Laakmann McDowell Книга
A Simple Framework For Mobile System Design Interviews CтатьяGithub Рекомендованные книги от Максима Радюкова — руководителя разработки кластера Services CтатьяMedium Стань Go-разработчиком КурсGolangcourse Продвинутая работа с ошибками в Go КурсStepik Введение в программирование на Go, Калеб Докси КнигаGolang
Язык программирования G, Донован Алан А. А., Керниган Брайан У. Книга
Go на практике, Мэтт Батчер, Мэтт Фарина Книга
Golang для профи, Цукалос Михалис Книга
01

Скрининг

Вопросы по основам WEB, JS, CSS, Git и задачи на лайвкодинг.

02

Программирование

Задачи в онлайн-редакторе кода с подсветкой синтаксиса. Код можно писать на псевдоязыке или языке программирования, который подходит для позиции. Можно использовать библиотечные функции и структуры.
Нужно придумать решение, закодить его, оценить алгоритмическую сложность с точки зрения О-нотации и ответить на вопросы по структурам данных.

03

Платформа

Задачи и теоретические вопросы на их базе: нужно написать код, почитать примеры чужого кода и обсудить их.

04

Проектирование

Нужно решить кейс — спроектировать высокодоступный дизайн сложной системы. Интервьюер играет роль заказчика, объяснит задачу и будет оценивать, как вы рассуждаете. Эту секцию мы предлагаем пройти только кандидатам, претендующим на уровень E5 и выше.
Мы ожидаем, что вы нарисуете архитектурную схему решения. Можно использовать в качестве нотации диаграмму классов UML либо в свободном формате. Начнём с простого варианта, а если останется время, обсудим расширение, усложнение требований и адаптацию решения под них.

05

Финальное интервью

Знакомство с руководителем, рассказ о команде и задачах, вопросы об опыте и достижениях. На встрече будет рекрутер, он оценит soft skills и culture fit.

Как повысить шансы на успех

На интервью по проектированию мы будем демонстрировать экран с Draw.io / Miro / Whimsical / Excalidraw. Зарегистрируйтесь заранее и освойтесь с инструментом до собеседования. Изучите модель C4, чтобы разговаривать на одном языке с интервьюером.

Решите несколько задач уровня easy и medium c hackerrank.com или leetcode.com и освежите знания по основным структурам данных, чтобы подготовиться к задачам по программированию.

Материалы, которые помогут подготовиться

Алгоритмы. Теория и практическое применение, Род Стивенс Книга
Алгоритмы. Построение и анализ, Штайн Клиффорд, Ривест Рональд Л Книга
Высоконагруженные приложения, Клеппман Мартин Книга
System Design. Подготовка к сложному интервью, Сюй Алекс Книга
Cracking the Coding Interview: 189 Programming Questions and Solutions, Gayle Laakmann McDowell Книга
A Simple Framework For Mobile System Design Interviews CтатьяGithub Рекомендованные книги от Максима Радюкова — руководителя разработки кластера Services CтатьяMedium The Modern JavaScript Tutorial CтатьяJavascript You Don't Know JS Yet, GitHub CтатьяGithub High Performance Browser Networking, Илья Григорик Книга HTTP, MDN Web Docs CтатьяMozilla What is the network layer, Cloudflare CтатьяCloudflare Why site speed matters, Cloudflare CтатьяCloudflare Fast load times, web.dev CтатьяWeb.dev Web Performance Calendar CтатьяPlanet Performance
01

Скрининг

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

02

Теория тестирования

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

03

Автоматизация

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

04

Финальное интервью

Знакомство с руководителем, рассказ о команде и задачах, вопросы об опыте и достижениях. На встрече будет рекрутер, он оценит soft skills и culture fit.

Как повысить шансы на успех

На интервью по проектированию мы будем демонстрировать экран с Draw.io / Miro / Whimsical / Excalidraw. Зарегистрируйтесь заранее и освойтесь с инструментом до собеседования. Изучите модель C4, чтобы разговаривать на одном языке с интервьюером.

Решите несколько задач уровня easy и medium c hackerrank.com или leetcode.com и освежите знания по основным структурам данных, чтобы подготовиться к задачам по программированию.

Материалы, которые помогут подготовиться

Обсудим ваши проекты и достижения. Постарайтесь вспомнить истории о том, как вы проявляли лидерские навыки, влияли на продукт и команду.

01

Платформа

На этой секции проверяем знания в конкретном языке программирования, понимание разработки в  рамках экосистемы своего языка. Можно выбрать: Go, PHP, Python, Java, JavaScript, iOS или  Android.
Секция содержит как практические задачи, так и теоретические вопросы на их базе. Обычно просим решить задачу с написанием кода, почитать примеры чужого кода и ответить на вопросы, что этот код делает.

02

Проектирование

Нужно решить кейс — спроектировать высокодоступный дизайн сложной системы. Интервьюер играет роль заказчика, объяснит задачу и будет оценивать, как вы рассуждаете.
Мы ожидаем, что вы нарисуете архитектурную схему решения. Можно использовать в качестве нотации диаграмму классов UML либо в свободном формате. Начнём с простого варианта, а если останется время, обсудим расширение, усложнение требований и адаптацию решения под них.

03

Оценка опыта

Вопросы о менеджерских навыках, понимании бизнеса и продукта, планировании и целеполагании, работе с заказчиками, командообразовании и развитии людей.

04

Менеджерский кейс

Нам важно услышать, как вы будете рассуждать и принимать решения. Например, мы попросим рассказать, как вы соберёте команду или запустите новый проект в работу.
Рекрутер пришлет описание кейса заранее. Будет здорово прочитать его до интервью и задать уточняющие вопросы. Презентаций и документов готовить не нужно, интервью пройдёт в формате диалога.

Как повысить шансы на успех

Составьте рассказ о себе и релевантных моментах в карьере. Если у вас есть процесс 360 degrees или Performance Review, можно выписать из него ключевые достижения. В рассказе мы рекомендуем использовать методику STAR — Situation, Target, Action, Results.

На интервью по проектированию мы будем демонстрировать экран с Draw.io / Miro / Whimsical / Excalidraw. Зарегистрируйтесь заранее и освойтесь с инструментом до собеседования. Изучите модель C4, чтобы разговаривать на одном языке с интервьюером.

Советуем рассуждать вслух во время интервью — это поможет лучше понять ход ваших мыслей. Но но всегда самостоятельно финализируйте решение, которое принимаете, и убедитесь, что интервьюер вас понял.

Будьте ясны и кратки. Интервьюер не знает о вашем опыте, поэтому важно предоставить достаточно контекста.

Познакомьтесь с плейбуком Авито

Материалы, которые помогут подготовиться