Эйч
Эйч
  • Эйч Плюс
  • Все менторы
Гайды/Аналитик данных/Собес в Ozon · Аналитик данных

Собес в Ozon · Аналитик данных

Материал Эйч · Опубликовано 14 августа 2026

Обзор

Middle-аналитик в команде рисков B2B: валидация скоринговых моделей, портфельная аналитика и кредитные стратегии в финтех-банке

SQL и оконные функции
Валидация скоринговых моделей
Портфельная и когортная аналитика
Кредитный риск B2B
A/B-тестирование
Python для анализа данных

Фишка: Фокус на влиянии аналитики на финансовый результат: не просто «строить отчёты», а валидировать модели, оптимизировать лимитные стратегии и балансировать рост портфеля с контролем дефолтности. Стек Vertica + ClickHouse + Airflow + Superset — типичный для high-load финтеха.

ЭтапДлительностьЧто проверяют
HR / рекрутер30–45 минМотивация, опыт 2+ года, софт-скиллы, формат работы (офис/удалёнка), зарплатные ожидания, готовность к домену кредитного риска B2B
Технический скрининг60–90 минSQL на сложных запросах (джойны, оконные функции, агрегации), базовая статистика, метрики классификации, лайв-код или разбор готового кода
Глубокое техинтервью / кейс90–120 минВалидация скоринговых моделей (Gini, ROC-AUC, PSI, калибровка), портфельный анализ (когорты, винтажи), дизайн A/B-теста, разбор бизнес-кейса по кредитной стратегии
Финал с тимлидом / hiring manager45–60 минКоммуникация с бизнесом, приоритизация задач, влияние на финансовый результат, культурный fit в продуктовую финтех-культуру Ozon Банка

Стек и темы

Обязательный минимум

  • SQL: JOIN, GROUP BY, WHERE/HAVING, оконные функции, CTE
  • Метрики классификации: precision, recall, F1, ROC-AUC, Gini
  • Валидация моделей: ранжирование, калибровка, стабильность (PSI)
  • Когортный и винтажный анализ портфеля
  • Python: pandas, базовая визуализация, расчёт метрик
  • A/B-тестирование: дизайн, статистическая значимость
  • Кредитный риск: approval rate, take rate, дефолт, резервы
  • Построение дашбордов и мониторинг KPI

Плюсом будет

  • Эконометрика и основы ML-моделирования
  • ClickHouse и колоночные DWH
  • Airflow для автоматизации пайплайнов
  • Финансовые продукты B2B (кредиты, лимиты, деривативы)
  • Superset для многоуровневых дашбордов
  • MAP/MRR для задач ранжирования

SQL и работа с большими данными

Опыт написания SQL-запросов

Опиши типовые задачи: агрегации, джойны, оконные функции, оптимизация. Упомяни Vertica/ClickHouse и работу с большими таблицами.

В чём разница между WHERE и HAVING и зачем использовать HAVING после GROUP BY?

WHERE фильтрует строки до агрегации; HAVING — после GROUP BY по агрегатам. Пример: WHERE status='active' vs HAVING COUNT(*) > 10.

Как устроены таблицы и джойны в SQL?

INNER — пересечение, LEFT — все из левой + совпадения, RIGHT, FULL. Декартово произведение при отсутствии условия ON.

Как работает FULL JOIN?

Возвращает все строки из обеих таблиц; NULL где нет пары. Максимальное число строк среди join-типов при дубликатах.

Какие оконные функции в SQL вы знаете?

ROW_NUMBER, RANK, DENSE_RANK, LAG/LEAD, SUM/COUNT OVER (PARTITION BY ... ORDER BY ...). PARTITION BY не обязателен — без него окно = весь результат.

Является ли PARTITION BY обязательным аргументом в оконных функциях?

Нет. Без PARTITION BY функция применяется ко всему набору строк; с PARTITION BY — внутри групп.

Как реализовать запрос с максимальной датой курса для каждой транзакции с учётом выходных и праздников?

ASOF JOIN или подзапрос с MAX(date) WHERE date <= transaction_date; календарь праздников через LEFT JOIN + фильтр рабочих дней.

Как рассчитать медиану в SQL без функций percentile/median?

ROW_NUMBER + COUNT, взять среднее двух центральных значений при чётном N; или PERCENTILE_CONT если доступен.

Какие конструкции в SQL вы избегаете или используете чаще?

Избегай: SELECT *, NOT IN с NULL, коррелированные подзапросы на больших данных. Предпочитай: CTE, явные JOIN, LIMIT/OFFSET с индексами.

Что такое колоночные базы данных и почему они лучше для аналитики?

ClickHouse/Vertica хранят данные по столбцам — быстрые агрегации и сканы по нескольким полям, сжатие, но медленные точечные UPDATE.

Совет: На техэтапе часто дают лайв SQL: когорты, ранжирование, поиск дубликатов. Практикуй на LeetCode SQL / StrataScratch.

Ловушка: В Vertica/ClickHouse синтаксис оконных функций и дат может отличаться от PostgreSQL — уточняй при решении.

Фишка: Вакансия явно требует сложные запросы к Vertica и ClickHouse — готовь примеры оптимизации (фильтр по partition, избегание SELECT *).

Статистика и вероятность

Как упорядочить математическое ожидание, медиану и моду в распределении зарплат?

Для правоскошенных распределений (зарплаты): мода < медиана < среднее. Редкие высокие значения «тянут» среднее вверх.

Знаком ли с экспоненциальным распределением?

Моделирует время между событиями в потоке; связано с Пуассоном. PDF: λe^(-λx), памятьless. Применение: время до дефолта, интервалы транзакций.

Что такое стандартная ошибка среднего?

SEM = σ/√n — насколько точно среднее оценивает популяцию. Уменьшается с ростом n; используется в t-тестах и CI.

Какую метрику выбрать для регрессии с выбросами: MSE или MAE?

MAE — робастна к выбросам (линейный штраф). MSE — квадратичный штраф, чувствительна к выбросам, дифференцируема.

Совет: В риск-аналитике часто работают с тяжёлыми правыми хвостами — медиана и квантили важнее среднего.

Ловушка: Не путай стандартную ошибку (SEM) со стандартным отклонением (SD).

Метрики и валидация моделей

Какие метрики качества классификации существуют?

Precision, Recall, F1, Accuracy (осторожно при дисбалансе), ROC-AUC, PR-AUC, LogLoss. Выбор зависит от cost of error.

Как считается коэффициент Джини и как он связан с ROC-AUC?

Gini = 2×AUC − 1. Измеряет неравномерность распределения скоров между классами. Gini=1 — идеальная модель, 0 — случайная.

Есть ли третий вариант усреднения метрик при дисбалансе классов?

Micro (глобальный), Macro (среднее по классам), Weighted (по размеру класса). Плюс F1, PR-AUC — альтернативы accuracy.

Какие метрики использовать для оценки новой модели при выкатывании на пилотную группу?

Офлайн: Gini/AUC, KS, PSI. Онлайн: approval rate, take rate, дефолт, NPL, резервы. Сравнение champion vs challenger.

Как считаются метрики MAP и MRR в задачах ранжирования?

MRR = среднее 1/rank первого релевантного. MAP = среднее AP по запросам; AP = среднее precision на позициях с релевантным результатом.

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

Совет: Знай PSI (Population Stability Index) для мониторинга дрейфа распределения скоров: PSI < 0.1 — стабильно, > 0.25 — значимый дрейф.

Ловушка: Высокий AUC не гарантирует хорошую калибровку — для лимитных стратегий важны predicted PD и calibration curve.

Кредитный риск и портфельная аналитика

Как проводить когортный анализ кредитного портфеля?

Группировка по месяцу выдачи (когорта) + винтаж (месяц жизни). Метрики: cumulative default rate, roll rates, early warning.

Как оценить влияние изменения лимитной стратегии на портфель?

Сравни approval rate, take rate, utilization, NPL/PD по сегментам до/после. Когортный анализ + контрольная группа.

Что такое approval rate, take rate и как они связаны с риском?

Approval = одобренные/заявки. Take = взятые/одобренные. Рост approval без контроля риска → рост дефолта; баланс через скоринг.

Как мониторить эффективность стратегий в разрезе сегментов?

Дашборды по сегментам (размер бизнеса, отрасль, регион), винтажные кривые, концентрация риска, stress-сценарии.

Фишка: Роль в команде рисков B2B — баланс роста портфеля и контроля дефолтности через данные.

Совет: Готовь пример, как ты переводил аналитику в конкретную рекомендацию продукту (изменение лимита, стоп-правило, сегментация).

A/B-тестирование

Что такое A/B-тест и почему он полезен?

Рандомизированное сравнение контроля и теста. Позволяет оценить эффект изменения (модель, лимит) с контролем confounders.

Проводил ли A/B-тесты?

Опиши: гипотеза, дизайн (размер выборки, длительность), метрики, статистический тест, интерпретация. Для рисков — guardrail metrics (дефолт).

Как определить, что метрика конверсии выросла именно на 10%, а не на 9% или 3%?

Статистический тест (z-test/chi-square), p-value < α, confidence interval. Учитывай размер выборки и множественные сравнения.

Совет: В кредитном A/B важны guardrail metrics: даже если approval растёт, дефолт не должен ухудшиться.

Ловушка: Peeking — преждевременная остановка теста при первом значимом результате увеличивает false positive rate.

Python для анализа

Как посчитать количество уникальных значений в колонке DataFrame?

df['col'].nunique() или df['col'].value_counts(). Для больших данных — approximate (HyperLogLog) или groupby.

Как создать признаки для модели на основе тренда и кульминации в метриках?

Feature engineering: rolling mean/slope, peak detection, lag features, seasonality decomposition.

Совет: На интервью могут попросить написать расчёт Gini/AUC или когортного анализа в pandas — практикуй sklearn.metrics и groupby.

Задачи

Когортный анализ дефолтов в SQL

Дана таблица loans (loan_id, client_id, issue_date, default_flag — 1 если дефолт в первые 12 месяцев). Напишите SQL-запрос: для каждой когорты (месяц выдачи) посчитать cumulative default rate по винтажам (1–12 месяцев жизни кредита).

WITH base AS (
  SELECT loan_id,
         DATE_TRUNC('month', issue_date) AS cohort,
         DATEDIFF('month', issue_date, default_date) AS vintage_months,
         default_flag
  FROM loans
),
cohort_sizes AS (
  SELECT cohort, COUNT(*) AS cohort_size
  FROM base GROUP BY cohort
),
defaults_by_vintage AS (
  SELECT cohort, vintage_months,
         SUM(default_flag) AS defaults
  FROM base
  WHERE vintage_months BETWEEN 1 AND 12
  GROUP BY cohort, vintage_months
)
SELECT d.cohort, d.vintage_months,
       SUM(d.defaults) / c.cohort_size AS cumulative_default_rate
FROM defaults_by_vintage d
JOIN cohort_sizes c ON d.cohort = c.cohort
GROUP BY d.cohort, d.vintage_months, c.cohort_size
ORDER BY d.cohort, d.vintage_months;

Сложность: O(n) с индексами на issue_date

Ранжирование транзакций по дате курса

Таблицы: transactions (txn_id, txn_date, currency) и exchange_rates (date, currency, rate). Для каждой транзакции найти актуальный курс — последний доступный курс на дату транзакции или ранее (учитывая, что в выходные курсы не обновляются).

SELECT t.txn_id, t.txn_date, t.currency, er.rate
FROM transactions t
LEFT JOIN LATERAL (
  SELECT rate
  FROM exchange_rates er
  WHERE er.currency = t.currency
    AND er.date <= t.txn_date
  ORDER BY er.date DESC
  LIMIT 1
) er ON true;

-- Альтернатива с оконной функцией после ASOF-подобного join

Сложность: O(n log n) при сортировке

Расчёт Gini и ROC-AUC в Python

Дан массив предсказанных вероятностей default (scores) и бинарных фактов (y_true). Реализуйте функцию, возвращающую Gini и ROC-AUC без использования sklearn.

import numpy as np

def gini_and_auc(y_true, scores):
    # Сортируем по убыванию скоров
    order = np.argsort(-scores)
    y_sorted = y_true[order]
    n_pos = y_sorted.sum()
    n_neg = len(y_sorted) - n_pos
    if n_pos == 0 or n_neg == 0:
        return 0.0, 0.5
    cum_pos = np.cumsum(y_sorted)
    auc = (cum_pos.sum() - n_pos * (n_pos + 1) / 2) / (n_pos * n_neg)
    gini = 2 * auc - 1
    return gini, auc

Сложность: O(n log n)

Поведенческое

  • Расскажите о себе и почему выбрали аналитику в финтех/рисках
  • Опишите самый сложный аналитический проект: задача, подход, результат
  • Как вы работаете с заказчиком: выявление бизнес-требований и защита рекомендаций
  • Пример, когда аналитика изменила бизнес-решение или стратегию
  • Как вы аргументированно отстаивали позицию, когда данные противоречили ожиданиям бизнеса
  • Как вы приоритизируете задачи при нескольких параллельных запросах от продукту и рисков
  • Почему Ozon Банк и домен кредитного риска B2B
  • Как вы автоматизировали рутинные расчёты метрик или валидацию моделей

План подготовки

3 дня

  • Пройти 10–15 SQL-задач: JOIN, оконные функции, GROUP BY/HAVING
  • Освежить метрики классификации: precision/recall/F1, ROC-AUC, Gini, связь Gini=2AUC-1
  • Подготовить STAR-истории: сложный проект, работа с бизнесом, влияние на решение
  • Изучить вакансию: валидация моделей, когорты, лимитные стратегии, стек Vertica/ClickHouse

7 дней

  • Глубоко: валидация скоринговых моделей (KS, PSI, calibration curve, stability)
  • Практика когортного и винтажного анализа на SQL и в pandas
  • A/B-тестирование: дизайн, размер выборки, guardrail metrics для рисков
  • Python: расчёт Gini/AUC, когортный анализ в pandas
  • Разобрать 2–3 кейсы: изменение лимитной стратегии, оценка новой модели на пилоте

14 дней

  • Систематизировать кредитный риск B2B: approval/take rate, NPL, резервы, roll rates
  • Практика на ClickHouse/Vertica синтаксисе (отличия от PostgreSQL)
  • Подготовить вопросы к интервьюеру: структура команды, пайплайны Airflow, мониторинг моделей
  • Собрать портфолио-кейсы: дашборды Superset, автоматизация валидации, SQL на больших данных
  • Пройти mock-интервью: SQL live + кейс по портфельной аналитике
БлокГотов, если...
SQLможешь написать когортный анализ, ASOF-подобный join и медиану через оконные функции без подсказок
Метрики моделейможешь объяснить Gini, ROC-AUC, PSI и когда accuracy вводит в заблуждение
Портфельная аналитикаможешь описать когортный/винтажный анализ и связь approval rate с риском
A/B-тестыможешь спроектировать тест новой модели с guardrail metrics по дефолту
Pythonможешь посчитать Gini/AUC и сделать когортный groupby в pandas
Behavioralесть 3 STAR-кейса: сложная задача, конфликт с бизнесом, влияние на решение

В день собеседования

  • Повторить формулы: Gini, AUC, PSI, SEM
  • Держать рядом шпаргалку оконных функций SQL
  • Подготовить 30-сек и 2-мин версии «расскажи о себе»
  • Проверить технику: IDE для SQL, стабильный интернет для лайв-кода
  • Заготовить 3–5 вопросов к команде про процессы валидации и A/B в рисках

Профессия

Аналитик данных

Темы

SQL и оконные функции
Валидация скоринговых моделей
Портфельная и когортная аналитика
Кредитный риск B2B
A/B-тестирование
Python для анализа данных

Компания

OzonOzon

Сопроводим до оффера

Умножим шансы на каждом этапе поиска и поможем получить выгодный оффер

Узнать больше

🍪 Мы используем cookie и Яндекс Метрику, чтобы сайт работал и становился лучше. Подробнее в политике.

Сервис развития карьеры

Контактыteam@h.careers@hcareers
TelegramVKYouTubeLinkedIn
Сервисы
AI поиск работы newПоиск вакансий newПоиск компаний newКонструктор резюме newВопросы с собеседований newЗадачи с собеседований newГайды к собеседованиям newПроверятор резюме newГенератор сопроводительных new
Поиски себя
Войти в ITКарьерная стратегияПовысить доходПрофориентация
Работа в России
Сопровождение до оффера Найти работу в РоссииРевью портфолиоРевью резюмеТестовое собеседование
Работа за рубежом
Найти работу за границейПомощь в оформлении LinkedInРевью резюме на английскомТестовое собеседование на английском
Навыки
Личный брендОценка навыковРазвитие навыков и компетенций
Поддержка
ВыгораниеОтношения с коллективомОтношения с руководителемСиндром самозванцаСложное увольнение
Для бизнеса
Аудит процессов компанииВыступление на внутреннем мероприятии компанииКонсалтинг бизнеса
Профессии
HRАдминистрированиеАналитикаДизайнИнформационная безопасностьИскусственный интеллектИсследованияКонсалтингКонтентМаркетингМенеджментНаука и образованиеОфисПоддержкаПредпринимательство
Компания
С чем помогаемОтзывы Вопросы и ответыСертификатыВебинарыСтать ментором

Услуги оказывает ООО «Эйч Карьера»
ИНН 9710095807 ОГРН 1227700077340
Адрес: 127006, г. Москва, Старопименовский пер., д. 18, стр. 2, помещ./ком./этаж I/19/2
Платформа принадлежит ООО «Эйч Карьера»

Copyright © 2020-2025 Сервис развития карьеры Эйч. Все права защищены.

Политика конфиденциальностиПользовательское соглашениеОферта