Загрузка…
Загрузка…
frontend / middle / tech_screening
Формат
online
Стадия
tech_screening
Когда
within_quarter
Длительность
—
01
Поведенческий
Расскажите про фичу или продукт, которым вы гордитесь и можете похвастаться.
Кандидат рассказал про кредитный калькулятор, реализованный как отдельный переиспользуемый React-модуль.
02
Теория
В браузере вводим домен (ozon.ru, yandex.ru), нажимаем Enter. Что происходит за пределами браузера на уровне сети — от ввода до получения ответа?
Интервьюер по ходу углублялся: кэш, DNS, получение IP. Кандидат описал кэш, DNS-резолвинг, IP.
03
Теория
В чём разница между UDP и TCP, и когда какой используется (стриминг vs финтех/надёжные соединения)?
Кандидат упомянул, что стриминги (Discord, Twitch) работают по UDP, а надёжные сервисы по TCP с рукопожатием.
04
Теория
Сетевой коннект есть — что находится поверх него, какой протокол общения используется?
05
Теория
При передаче данных по HTTPS какой ещё коннект нужен и зачем нужен сертификат? Что такое TLS?
Кандидат назвал TLS и суть — защита от перехвата.
06
Теория
Что такое типичный HTTP-запрос: из чего он состоит, что включает, какая разница между разными методами?
Кандидат разобрал на составляющие: headers и body.
07
Теория
Что обычно хранят в заголовках (headers) запроса и какие заголовки знаете?
Упомянул User-Agent, Authorization; рассказал про балансер, который читает заголовки первыми.
08
Теория
Какая разница между методами GET и POST, можно ли в GET передать тело запроса?
09
Теория
Что из методов кэшируется — GET или POST? Почему?
10
Теория
Что такое куки, с чем их едят, как устроены?
Кандидат упомянул хранение токенов авторизации.
11
Теория
Какие атрибуты есть у кук (HttpOnly, Secure) и что они означают?
12
Кейс
На логин приходят две куки: access-токен и refresh-токен, обе HttpOnly и Secure (JS их не видит). Как на фронте организовать работу, чтобы понять, что access протух, и обновить его через refresh?
Ответ: обработать ошибку 401 в interceptor (axios) и запустить процесс рефреша токена.
13
Кейс
Обе куки HttpOnly и Secure. Как сделать так, чтобы refresh-токен улетал не с каждым запросом, а только на запрос к refresh-эндпоинту?
Правильный ответ (подсказан интервьюером): задать атрибут Path куки равным эндпоинту рефреша — браузер подставит её только на этот запрос.
14
Теория
Что такое Content Security Policy (CSP)?
Кандидат описал как white-list / механизм безопасности.
15
Код
Лайвкодинг: написать функцию isSimilar(a, b), которая принимает два массива и возвращает true, если они содержат одинаковые элементы (порядок может отличаться). Нужен оптимальный алгоритм.
const countMap = {};
for (const el of a) {
countMap[el] = (countMap[el] || 0) + 1;
}
for (const el of b) {
if (!countMap[el]) return false;
countMap[el]--;
}
return Object.values(countMap).every(v => v === 0);Базовое решение через сортировку и сравнение строк; оптимизация до O(n) через counting map. Follow-up'ы: оптимизировать, не приводить к строке, ранний выход при разной длине, проверить через Object.values().every, что в мапе остались только нулевые ключи.
Заметки
Собеседование в Ozon Fintech (финтех-направление, не-банк, B2B-кредитование селлеров через МКК). Это первая часть технического скрининга из трёх; результат будет в последней части. Интервьюер — руководитель направления фронтенда. Компания мигрирует с Vue2/Luxe на Vue3 + Pinia, использует React, 100% TypeScript, Vite, автотесты обязательны (без зелёного пайпа задачу не закрыть). Горизонт планирования продукта — 5 лет. Заявлено, что обогнали Тинькофф по числу пользователей Ozon Банка (40 млн против 35 млн) и по объёму B2B-портфеля. Видео — публикация консультанта по трудоустройству фронтендеров.
Подготовка
Подтянуть сетевую часть (DNS, TCP/UDP, TLS/HTTPS, сертификаты), устройство HTTP-запроса и кэширование, безопасность кук (HttpOnly, Secure, атрибут Path), CSP, работу с авторизацией через access/refresh токены и interceptor'ы, а также алгоритмические задачи на оптимизацию (хэш-мапы вместо сортировки).
Стиль интервьюера
Дружелюбная, неформальная обстановка с шутками. Интервьюер сразу обозначил, что не будет спрашивать базовую теорию (let/const/промисы), идёт от сетевого уровня вглубь, перебивает, ускоряется и углубляется по ходу, даёт подсказки при затруднениях и доводит кандидата до правильного ответа. В конце обсудили процессы, культуру тестирования, технологии и дальнейшие шаги по воронке.