Live coding на английском: как я завалила техничку в UK fintech не на коде

IT и разработка 14.06.2026 · 👁 388 просмотров
🔍 Live coding на английском: как я завалила техничку в UK fintech не на коде Недавно проходила техничку на роль Risk/Fraud Analyst в одном UK fintech. Формат: 30 минут лайв-кодинга, 2 задачи, под присмотром интервьюера. Описание вакансии прямо моё: identify anomalies, build fraud detection rules from scratch. То, чем я занимаюсь каждый день Спойлер: меня реджектнули. И не из-за SQL 👇 Task 1: Identify Transaction Outliers Есть таблица transactions (transaction_id, transaction_amount, transaction_date, customer_id). Нужно найти транзакции, которые значительно отклоняются от средней суммы по каждому клиенту You may use statistical functions such as average, standard deviation, approximate quantiles, or any other appropriate method to identify outliers Зависла 🥲 Дело не в том, что задача сложная. В моей работе антифрод обычно строится на других инструментах: графы пользователей, связи между аккаунтами, fingerprints, поведенческие паттерны. А z-score и std я использовала давно, ещё продуктовым аналитиком. Плюс лайв-кодинг: ~15 минут на задачу, интервьюер над душой, времени на спокойно подумать нет 😏 Теория за решением (на случай если у вас тоже подзабылось) Метод опирается на нормальное распределение - ту самую колокольную кривую - работает правило 68–95–99.7 : ±1σ от среднего покрывает ~68% всех значений ±2σ - ~95% ±3σ - ~99.7% То есть значение дальше 3σ от среднего - это что-то из 0.3% самых редких. По сути: настолько странная сумма, что в нормальной работе клиента такое почти не случается Z-score - это просто ответ на вопрос "на сколько сигм значение отличается от среднего": z = (value - mean) / std_dev Если |z| > 2 - выброс по порогу 2σ. Если |z| > 3 - по более строгому 3σ Применительно к задаче: avg и std считаем отдельно по каждому клиенту , потому что у разных людей разный обычный чек. Транзакция на £500 у фрилансера, который обычно тратит по £50 - аномалия. У владельца ресторана, который каждый день закупает на £400–600 норма Реализация: with cte as ( select customer_id, avg(transaction_amount) as avg_amnt, stddev(transaction_amount) as std_dev from transactions group by customer_id ) select t.transaction_id, t.customer_id, t.transaction_amount, t.transaction_date, c.avg_amnt, c.std_dev, abs(t.transaction_amount - c.avg_amnt) / c.std_dev as score from transactions t join cte c on t.customer_id = c.customer_id where abs(t.transaction_amount - c.avg_amnt) / c.std_dev > 2 Запрос работает, выбросы находит. Но при разборе после увидела дыры: порог 2σ слишком чувствительный для финансовых данных (там тяжёлые хвосты, надо 3σ), у новых клиентов с 1-2 транзакциями std = 0 и формула не работает, а само нормальное распределение для сумм платежей - плохое приближение. Честнее работали бы квантили или IQR, и в условии задачи прямо был намёк "approximate quantiles". Я этот хинт проигнорировала 🤍 А теперь почему меня реджектнули Не из-за кода. Из-за английского. Когда интервьюер попросил объяснить решение - что такое стандартное отклонение, почему именно 2 сигмы, как работает z-score - я поняла, что мне не хватает лексики. На русском я бы рассказала свободно. На английском застряла на словах deviation, distribution, начала путаться, формулировки получались кривые. SQL был ок. Объяснение нет И это, наверное, самый важный вывод для тех, кто планирует релокацию и собесы на английском: 🕊️ Английский SQL ≠ английский для собеса. Писать запросы это узкий технический язык, ты его уже знаешь. А объяснять решение интервьюеру это совсем другой словарь: статистика, бизнес-логика, trade-offs, edge cases. Этому надо учиться отдельно 🕊️ Готовиться нужно проговаривать вслух, на английском. Не просто решать LeetCode молча. Брать задачу, решать, и потом вслух объяснять что и почему. Записывать себя, переслушивать 🕊️ Знание домена не спасает, если не можешь его проговорить. Я фрод-аналитик уже второй год. Но под таймером, на чужом языке опыт не вытащил - потому что нужны были конкретные слова, а их не было В следующем посте будет вторая задача с той же тех
Откликнуться в Telegram →

⚠️ Никогда не платите «за оформление» или «гарантию трудоустройства» — это признак мошенников. Работа ТРУ не несёт ответственности за содержание вакансии.

🇮🇱 Не нашли подходящую зарплату? В Израиле платят от $3000 Без языка и опыта · жильё и легализация под ключ · официально Смотреть вакансии →