Загрузка…
Загрузка…
frontend / middle / tech_screening
Формат
online
Стадия
tech_screening
Когда
within_quarter
Длительность
75 мин
01
Поведенческий
Расскажи про свой путь в разработке, про свои достижения и чем гордишься. Почему сейчас ищешь что-то новое и что конкретно ищешь, на что делаешь акценты, что для тебя важно.
HR-часть, рассказ о себе. Кандидат рассказал про университет, армию, МПО, Тензор/НЗР, Фазум, аутстаф в Альфабанк.
02
Поведенческий
Почему хочешь уйти из текущей компании?
03
Поведенческий
Ответственности не боишься, если что-нибудь не так придумаешь (при принятии архитектурных решений)?
04
Поведенческий
Расскажи про себя в плане проактивности и инициативности.
Заметки
Собеседование на замену сотруднице, уходящей в декрет (Арина). Интервьюируют трое: ведущая (HR/тимлид), Арина и Паша. Продукт — модуль внешнеэкономической деятельности (ВЭД) в личном кабинете банковского клиента, заказчик — банк, микрофронтендовая архитектура, команда работает 3 года, двухнедельные спринты, процесс близкий к Scrum. Название интервьюирующей компании в тексте не указано. Кандидат — Бахтияр, frontend-разработчик из Уфы. Упомянутые в его опыте компании: МПО (фронтенд, приложение для расчёта KPI), НЗР/Тензор (ПО для автоматизации салонов, модуль сертификатов и подарочных карт, микрофронты), Фазум (заказная разработка для банков, переход с Angular на React, модули кредитного конвейера и РКО), и аутстаф-устройство в Альфабанк (MVP продукта многоуровневого маркетинга для банковских продуктов). Технический блок: 5 задач (2 на Event Loop, 3 на React — Tabs, TaskList, fetch); часть теории по JS/TS/HTTP/браузеру.
Подготовка
Готовиться к вопросам по Event Loop (порядок выполнения микро/макрозадач, setTimeout, промисы) — две задачи. По React: useState, useMemo, ключи списков (почему индекс — плохой key), useEffect + fetch + async/await. По теории: принципы ООП, этапы рендеринга страницы в браузере, структура HTTP-запроса и ответа, утилитарные типы TypeScript (Pick, Omit, Record, Readonly). Много поведенческих/ситуационных вопросов про самостоятельность, работу с аналитиком, реакцию на баги и срочные задачи в конце спринта.
Стиль интервьюера
Дружелюбный, неформальный тон. HR/тимлид подробно рассказывает о продукте и команде в начале, активно задаёт ситуационные кейсы ('что будешь делать, если...'). Технический интервьюер мягкий, подсказывает при затыках (отключить автоподсказки в редакторе, преобразовать response через json), хвалит за правильные решения и за использование useMemo, разрешает пользоваться задачами по выбору и сокращать ответ словами при нехватке времени. По теории просит не углубляться, отвечать своими словами.
05
Кейс
Каждое утро в 10:00 у тебя дейлик и есть задача. В 12:00 у тебя возникла проблема и работа встала. До следующего дейлика далеко. Что будешь делать?
06
Кейс
Если ты видишь, что аналитик что-то не так написал в постановке задачи (ПЗ) и так работать не будет — как поступишь?
07
Кейс
Прибегает тестировщик и говорит, что всё сломалось, клиент жмёт кнопку, она не откликается. Как будешь реагировать и что будешь делать для исправления?
Follow-up про приоритеты (блокер/не блокер) и про то, как воспроизводить и искать причину.
08
Поведенческий
Что для тебя важно в проекте и команде, и что тебя бесит в работе?
09
Кейс
Спринт заканчивается, прилетает суперважная задача, времени осталось 4 часа, босс сказал надо. Как будешь реагировать?
10
Поведенческий
Чем увлекаешься, какие есть хобби кроме самообразования?
11
Кейс
Ты в Уфе, разница с Москвой 2 часа. Насколько тебе комфортно работать по московскому времени и быть на связи, готов ли жертвовать личным временем?
Вопрос задала Арина.
12
Теория
Расскажи про принципы ООП своими словами.
13
Теория
Как работает процесс отображения веб-страницы в браузере с момента, как мы получаем HTML (архитектура движка рендера, основные этапы)?
Кандидат разобрал: парсинг HTML→токены→DOM, построение CSSOM, блокировка рендера стилями, Render Tree, layout (компоновка), paint (отрисовка).
14
Теория
Из чего состоит HTTP-запрос?
Ответ: строка запроса (метод, путь, версия), заголовки, пустая строка, тело.
15
Теория
Из чего состоит HTTP-ответ?
Ответ: строка статуса (версия, код, расшифровка), заголовки, пустая строка, тело.
16
Теория
Работал ли с TypeScript и насколько уверенно себя в нём чувствуешь?
Скрининговый вопрос перед вопросом про утилитарные типы.
17
Теория
Назови несколько утилитарных типов в TypeScript и расскажи, как они работают.
Кандидат разобрал Pick, Omit, Record, Readonly.
18
Теория
Что такое Event Loop, для чего он нужен и как работает? Расскажи концепцию своими словами.
Кандидат упомянул однопоточность, microtasks/macrotasks, queueMicrotask, промисы, setTimeout.
19
Код
Event loop task 1: дан компонент с setTimeout, промисами и зарежекченным промисом. Определи, в каком порядке выведутся значения в консоль.
Первая из двух задач на Event Loop. Кандидат решил верно.
20
Код
Event loop task 2: более сложный пример с вложенными setTimeout и кастомной функцией myPromise — определи порядок вывода в консоль.
Вторая задача на Event Loop, сложнее. Кандидат решил верно.
21
Код
Реализуй компонент Tabs на React: должен отображать заголовки вкладок и содержимое активной вкладки, переключаться по клику.
Кандидат использовал useState для активной вкладки. Follow-up про ключи списка.
22
Теория
Что использовать как key при рендере списка, если у элементов нет id, и чем плохо использовать индекс массива в качестве key?
Follow-up по ходу задачи Tabs. Кандидат объяснил про перемонтирование компонентов и повторный вызов useEffect при изменении индексов.
23
Код
Реализуй компонент TaskList на React: список задач с фильтрацией по статусу (все / активные / завершённые), каждая задача имеет заголовок и статус.
Кандидат использовал useState для фильтра и useMemo для отфильтрованного списка, что отметили положительно.
24
Код
Реализуй компонент, который запрашивает данные с jsonplaceholder, получает значения и мапит их в разметку (с обработкой загрузки).
Кандидат использовал useEffect + useState + async/await, забыл преобразовать response через res.json()/await; интервьюер подсказал.