Собеседование в Ozon Tech: этапы, вопросы и как подготовиться

Ozon — один из крупнейших e-commerce игроков в России и самый быстрорастущий маркетплейс. Tech-подразделение компании насчитывает тысячи инженеров, работающих над логистикой, финтехом (Ozon Bank), рекламой и платформой для селлеров.
В этом гайде — всё о найме в Ozon Tech: от отклика до оффера.
Почему Ozon интересен разработчикам
Масштаб задач:
- 500M+ заказов в год
- Собственная логистическая сеть (склады, доставка)
- Финтех-направление (Ozon Bank, Ozon Card)
- Рекламная платформа
- B2B-сервисы для продавцов
Технологии:
- Go как основной язык backend
- Kubernetes в продакшене
- Собственные ML-решения для рекомендаций и ценообразования
- Микросервисная архитектура (500+ сервисов)
Структура найма
Процесс в Ozon Tech стандартизирован и включает 4-5 этапов:
- Скрининг с рекрутером (15-30 минут)
- Техническое интервью (1-1.5 часа)
- Алгоритмическая секция (45-60 минут)
- System Design (для Middle+ позиций)
- Финальное интервью / знакомство с командой
Срок: 2-3 недели от первого контакта до оффера.
Этап 1: Скрининг
Звонок с HR для оценки базового соответствия.
Типичные вопросы:
- Расскажите о себе и текущем проекте
- Почему рассматриваете Ozon?
- Какой стек используете?
- Какое направление интересно? (логистика, финтех, платформа)
- Ожидания по зарплате и формату работы
Что важно:
Ozon активно развивает офисы в Москве, Санкт-Петербурге и других городах. Удалёнка возможна, но многие команды работают в гибридном формате.
Этап 2: Техническое интервью
Основная проверка хард-скиллов. Формат — видеозвонок с одним-двумя разработчиками из команды.
Backend (Go — основной язык)
Вопросы по Go:
- Как устроен планировщик горутин (GMP model)?
- Что такое race condition? Как обнаружить и исправить?
- Каналы: буферизированные vs небуферизированные, когда что?
- Как работает select с default case?
- Что такое context, как правильно использовать?
- Как устроены слайсы, что происходит при append?
- Интерфейсы в Go: неявная реализация, пустой интерфейс
- Как работает defer? Порядок выполнения нескольких defer
- Паттерн errgroup — зачем и как использовать?
- Graceful shutdown — как реализовать?
Вопросы по базам данных:
- PostgreSQL vs MySQL — ключевые различия
- Индексы: B-tree, Hash, GIN, GiST — когда какой?
- Как работает VACUUM в PostgreSQL?
- Что такое deadlock, как избежать?
- Транзакции: уровни изоляции, примеры проблем
- Репликация: master-slave, master-master
- Партиционирование vs шардирование
Вопросы по инфраструктуре:
- Kubernetes: Pod, Deployment, Service — в чём разница?
- Как работает service discovery в k8s?
- Что такое liveness и readiness probes?
- Docker: layers, кеширование, multi-stage builds
- Как устроен CI/CD в вашем текущем проекте?
Вопросы по архитектуре:
- Микросервисы vs монолит — когда что выбрать?
- Паттерны коммуникации: sync vs async
- Что такое saga pattern?
- Event sourcing и CQRS — зачем нужны?
- Как обеспечить идемпотентность API?
Frontend
JavaScript/TypeScript:
- Event loop: call stack, task queue, microtask queue
- Замыкания — как работают, примеры использования
- Прототипное наследование
- Promise: состояния, методы, как написать свой Promise.all
- async/await под капотом
- Map vs Object, Set vs Array — когда что?
- WeakMap — зачем нужен?
React:
- Virtual DOM — как работает reconciliation?
- Hooks: useState, useEffect, useCallback, useMemo — детали реализации
- Почему нельзя вызывать хуки в условиях?
- Context API vs Redux — когда что использовать?
- Как работает React.memo?
- Suspense и lazy loading
- Как профилировать React-приложение?
Производительность:
- Critical rendering path
- Reflow vs repaint
- Как оптимизировать большие списки? (виртуализация)
- Web Workers — когда использовать?
- Service Workers и PWA
Mobile (Android/iOS)
Android:
- Activity и Fragment lifecycle
- ViewModel: как выживает при пересоздании Activity?
- Coroutines: scope, context, dispatchers
- Flow vs LiveData
- Dependency Injection: Dagger/Hilt
- Как работает RecyclerView под капотом?
iOS:
- ARC: strong, weak, unowned — когда что?
- DispatchQueue: serial vs concurrent
- Combine framework
- SwiftUI: @State, @Binding, @ObservedObject
- Core Data vs Realm
Этап 3: Алгоритмическая секция
Ozon даёт 1-2 задачи уровня Easy-Medium. Время — 45-60 минут.
Ключевые темы:
- Массивы и строки
- Хеш-таблицы
- Two pointers, sliding window
- Стек и очередь
- Бинарный поиск
- Базовые графы (BFS/DFS)
- Простое DP
Примеры задач:
Задача 1: Склад и товары
Дан массив товаров с весами и вместимость тележки.
Найти максимальное количество товаров, которое можно увезти за одну поездку.
(Вариация задачи о рюкзаке)
Задача 2: Оптимизация доставки
Даны координаты точек доставки. Найти минимальное расстояние,
чтобы посетить все точки и вернуться на склад.
(Упрощённый TSP для небольшого n)
Задача 3: Ценовые диапазоны
Дан массив цен товаров. Для каждого товара найти количество товаров
с ценой в диапазоне [price - k, price + k].
Задача 4: Слияние интервалов
Даны интервалы времени доставки. Объединить пересекающиеся интервалы.
Как решать:
- Проговорите понимание задачи
- Обсудите примеры и edge cases
- Предложите brute-force решение и его сложность
- Оптимизируйте
- Напишите код
- Протестируйте на примерах
Этап 4: System Design
Для позиций Middle+ добавляется проектирование систем.
Популярные задачи в Ozon:
- Спроектировать систему управления складом
- Сервис отслеживания доставки (трекинг)
- Система рекомендаций товаров
- Корзина и checkout
- Сервис уведомлений (push, email, SMS)
- Платёжная система
- Инвентаризация в реальном времени
Пример: Система трекинга доставки
Функциональные требования:
- Курьер обновляет статус заказа
- Клиент видит текущий статус и местоположение
- Push-уведомления при изменении статуса
- История всех статусов
Нефункциональные требования:
- 10M активных заказов одновременно
- Задержка обновления < 5 секунд
- 99.9% availability
Компоненты:
- Location Service (приём GPS-координат от курьеров)
- Order Status Service (хранение и обновление статусов)
- Notification Service (push/sms/email)
- API Gateway
- Message Queue (Kafka) для асинхронной обработки
- Redis для кеширования активных заказов
- TimescaleDB для хранения истории локаций
Что обсудить:
- Как часто курьер отправляет координаты?
- Как оптимизировать запись большого количества локаций?
- Как обеспечить exactly-once доставку уведомлений?
- Что делать при потере связи у курьера?
Этап 5: Финальное интервью
Встреча с нанимающим менеджером и/или командой.
Фокус:
- Культурный fit
- Soft skills
- Мотивация
- Ваши вопросы
Что спрашивают:
- Расскажите о самом сложном проекте
- Как вы справляетесь с конфликтами в команде?
- Как принимаете решения при неопределённости?
- Что для вас важно в работе?
Вопросы, которые стоит задать:
- Какая команда и над каким продуктом буду работать?
- Как устроен релизный цикл?
- Какие главные технические челленджи сейчас?
- Как выглядит рост внутри компании?
Особенности Ozon Tech
1. E-commerce специфика Много задач связано с логистикой, складами, ценообразованием. Если есть опыт в e-commerce — это большой плюс.
2. Высокая нагрузка Чёрная пятница, распродажи — пиковые нагрузки в 10-100 раз выше обычных. Вопросы про масштабирование будут обязательно.
3. Go как стандарт Большинство backend-сервисов на Go. Даже если идёте на Python/Java позицию, базовое понимание Go приветствуется.
4. Быстрый рост Ozon растёт агрессивно. Много возможностей для карьерного роста, но и темп работы высокий.
5. Зарплаты Конкурентные с рынком. Бонусы, RSU (акции), ДМС, компенсация питания.
Типичные ошибки
- Не знать специфику бизнеса Ozon (изучите продукты перед интервью)
- Игнорировать масштаб (все ответы должны учитывать высокую нагрузку)
- Не задавать уточняющих вопросов на System Design
- Писать код молча, без объяснения логики
- Не подготовить вопросы про команду
План подготовки на 2 недели
Неделя 1:
- Дни 1-2: Go (горутины, каналы, паттерны)
- Дни 3-4: Базы данных (индексы, транзакции, репликация)
- Дни 5-7: Kubernetes, Docker, микросервисы
Неделя 2:
- Дни 1-3: LeetCode (15-20 задач Easy-Medium)
- Дни 4-5: System Design (склад, доставка, уведомления)
- Дни 6-7: Мок-интервью, изучение продуктов Ozon
Как не потерять оффер из-за стресса
Вы подготовились, знаете ответы, но на интервью — ступор. Знакомо?
ENIGMA AI помогает в реальном времени:
- Транскрибирует вопросы интервьюера
- Показывает подсказки по концепциям
- Помогает вспомнить синтаксис и паттерны
- Невидим при screen share
Ресурсы
Go:
- “Concurrency in Go” by Katherine Cox-Buday
- Go blog (официальный)
- Канал GopherCon на YouTube
System Design:
- System Design Primer (GitHub)
- Designing Data-Intensive Applications
- Блог Ozon Tech на Хабре
Алгоритмы:
- LeetCode (Easy-Medium)
- Grokking the Coding Interview
Отзывы:
- Glassdoor
- Хабр Карьера
- Telegram-чаты по трудоустройству
Ozon — это масштаб, скорость и интересные инженерные задачи. Подготовьтесь как следует, и оффер не заставит себя ждать.
Похожие статьи

Собеседование в VK: этапы, вопросы и как подготовиться

Собеседование в Авито: этапы, вопросы и как подготовиться

Собеседование в Альфа-Банк IT: этапы, вопросы и как подготовиться
