Материал Эйч · Опубликовано 27 октября 2026
Middle, 3+ лет: SQL, A/B-тесты, отчётность по банковским продуктам и ad hoc-аналитика в гибридном формате (Москва).
Фишка: Крупный цифровой банк с сильным employer brand (лидер рейтинга HH 2023–2025): часто смотрят на зрелость аналитика, умение работать в продуктовой среде и интерес к финтех-контексту; внутри развивают ИИ-инструменты (AlfaGen, Alfa AI) — уместно показать прагматичное отношение к данным и автоматизации отчётности.
| Этап | Длительность | Что проверяют |
|---|---|---|
| Скрининг / HR | 30–45 мин | Мотивация, опыт 3+ лет, образование, формат работы и офис, зарплатные ожидания, знание роли в банке. |
| Техническое интервью | 60–90 мин | SQL на сложных запросах, статистика и дизайн экспериментов, разбор кейсов по эффективности кампаний и продуктовых метрик. |
| Интервью с руководителем / продуктом | 45–60 мин | Как ставите задачи, работаете с заказчиками, презентуете выводы, ad hoc vs регулярная отчётность. |
| Финал (при необходимости) | 30–45 мин | Культурный fit, амбиции, вопросы о команде и процессах аналитики. |
Обязательный минимум
Плюсом будет
Для каждого пользователя из Москвы вывести последний заказ и процент применённой скидки (таблицы orders: order_id, created_dt, user_id, price, discount; users: users_id, reg_date, city).
JOIN users, фильтр city = Москва; ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY created_dt DESC, order_id DESC) = 1; процент: discount/price*100 если discount — сумма скидки от price до скидки.
Как оптимизируете тяжёлый запрос к большой таблице заказов?
Фильтры по партициям/датам, индексы под WHERE и JOIN, избегать SELECT *, проверить EXPLAIN, денормализация/витрина для отчётов, лимит агрегаций на сырых логах.
Средний чек по городам и среднее число заказов на пользователя за первый квартал текущего года (orders + users).
Фильтр created_dt по кварталу; группировка по city: AVG(price - discount или net), COUNT(order_id)/COUNT(DISTINCT user_id); аккуратно с дублями пользователей без заказов.
Ловушка: Путают сумму скидки и процент; забывают tie-breaker во втором ключе ORDER BY для последнего заказа.
Совет: Проговаривайте допущения по полям price/discount и часовому поясу дат — в банке это частый follow-up.
Что такое ошибка первого рода (альфа) и второго рода (бета)?
α — ложное отвержение H0 (увидели эффект, его нет); β — не отвергли H0 при реальном эффекте. Мощность = 1 − β.
Чем t-тест отличается от z-теста?
z — известна σ популяции или n большое; t — σ неизвестна, малые выборки, распределение Стьюдента.
Как определяются длительность теста, размер выборки и дизайн эксперимента?
Базовая конверсия, MDE, α, мощность → n; длительность = n / суточный трафик с учётом сезонности; один primary metric, стратификация, guardrails, фиксация до старта.
Если каждое значение выборки умножить на 5, как изменится дисперсия?
Var(5X) = 25·Var(X); среднее умножится на 5, дисперсия — на квадрат константы.
Расскажите про ошибку второго рода на примере продуктового эксперимента.
Запустили фичу, тест «не значим» — откатили, хотя эффект был; как увеличить мощность: n, срок, менее шумная метрика.
Фишка: В вакансии прямо указаны кампании и A/B — ждут уверенный рассказ про оценку маркетинговых и продуктовых изменений.
Ловушка: Останавливать тест «когда стало значимо» или менять метрику постфактум — назовите peeking и pre-registration.
Как оцениваете эффективность маркетинговой кампании?
Цель и KPI, контрольная группа/до-после, когорты, инкремент, каналы атрибуции, лаг эффекта, cannibalization.
Как ищете инсайты в данных для развития продукта?
Сегментация, когортный анализ, воронки, отток, корреляция vs причинность, приоритизация по impact/effort.
Чем ad hoc отличается от регулярной отчётности?
Ad hoc — разовый вопрос бизнеса, скорость и ясный ответ; регулярка — SLA, витрины, дашборды, единые определения метрик.
Какой документ готовите для разработчиков при доработке интеграции/витрины?
Спека: поля, типы, гранулярность, SLA, примеры строк, edge cases, идемпотентность, тест-кейсы.
Совет: Связывайте ответы с банковскими продуктами: активация карты, использование кредитного лимита, отклик на push/SMS-кампанию.
Что такое деривативы, форварды, фьючерсы и опционы?
Дериватив — контракт на базовый актив; форвард — OTC, фиксированная дата; фьючерс — биржевой стандарт; опцион — право, не обязанность; хеджирование и спекуляция.
Какие метрики важны для банковского продукта (карта, кредит)?
Активация, транзакции, ARPU, NPL/просрочка, utilization, LTV, cost of risk — по релевантности к команде.
Фишка: Вопрос про деривативы встречается в контексте Альфа-Банк — достаточно чётких определений без глубокого трейдинга, если роль не investment analytics.
Как к вам поступали задачи, кто декомпозировал и кто принимал решения? Приведите пример.
STAR: заказчик, формулировка проблемы, ваши шаги, согласование метрик, результат в цифрах.
Расскажите о своём опыте на позиции аналитика.
2–3 проекта: задача, данные, метод, влияние на продукт/кампанию; без лишней воды.
Совет: Подчеркните работу с продуктом и маркетингом, а не только «строил дашборды».
Последний заказ москвича и % скидки
Таблица orders (order_id, created_dt, user_id, price, discount). Таблица users (users_id, reg_date, city). Для каждого пользователя из Москвы — последний заказ и процент скидки.
WITH r AS (
SELECT o.*, ROW_NUMBER() OVER (PARTITION BY o.user_id ORDER BY o.created_dt DESC, o.order_id DESC) rn
FROM orders o
JOIN users u ON u.users_id = o.user_id
WHERE u.city = 'Москва'
)
SELECT user_id, order_id, created_dt, price, discount,
100.0 * discount / NULLIF(price, 0) AS discount_pct
FROM r WHERE rn = 1;Сложность: O(n log n) на партицию при типичном индексе по user_id, created_dt
Средний чек и заказы на пользователя за Q1
Посчитать по каждому городу средний чек и среднее число заказов на пользователя за первый квартал текущего года.
WITH q AS (
SELECT o.user_id, u.city, o.order_id, (o.price - COALESCE(o.discount,0)) AS net
FROM orders o
JOIN users u ON u.users_id = o.user_id
WHERE o.created_dt >= date_trunc('year', CURRENT_DATE)
AND o.created_dt < date_trunc('year', CURRENT_DATE) + interval '3 months'
)
SELECT city,
AVG(net) AS avg_check,
COUNT(order_id)::float / COUNT(DISTINCT user_id) AS avg_orders_per_user
FROM q
GROUP BY city;Сложность: O(n) по строкам заказов за период
3 дня
7 дней
14 дней
| Блок | Готов, если... |
|---|---|
| SQL | без подсказок пишете последний заказ по пользователю и агрегацию по городу с корректными JOIN и фильтром по датам |
| A/B и статистика | объясняете α/β, выбор n и срока теста, отличие t и z, эффект умножения выборки на константу для дисперсии |
| Продукт | за 3 минуты описываете оценку кампании и поиск инсайта с метриками и ограничениями данных |
| Банк | даёте краткие определения деривативов и связываете аналитику с банковским продуктом |
| Soft skills | два STAR-кейса с измеримым результатом и ясной вашей ролью |
В день собеседования