Загрузка…
Загрузка…
frontend / middle / tech_deep
Формат
online
Стадия
tech_deep
Когда
within_week
Длительность
50 мин
01
Поведенческий
Есть ли что добавить по прошлой работе — какие-то факапы или дополнительные моменты?
HR-часть, вшито в нарратив
02
Поведенческий
Какое у тебя отношение к Scrum в целом, в сравнении с Kanban или другими методологиями?
HR-часть
03
Теория
Как ты видишь и понимаешь современную архитектуру классических веб-приложений (CRUD): какие компоненты есть и как они взаимодействуют?
Интервьюер несколько раз переформулировал вопрос, добиваясь ответа про связку фронт-бэкенд
04
Теория
Был ли у тебя опыт работы с WebSockets, GraphQL, RPC?
Заметки
Собеседование на позицию второго frontend-разработчика. Продукт — платформа нематериальной мотивации сотрудников на базе геймификации (виртуальная валюта, кошелёк, магазин подарков), в эксплуатации 4 года, разрабатывается 5 лет. Заказчик — HR. ~6500 пользователей (две дочерние компании на 'Норильском никеле'), цель — тираж на 70-80 тыс. пользователей. Стек: NodeJS, TypeScript, React, Redux, микросервисная архитектура, деплой в Docker, релизы ~1-2 раза за спринт. Команда: 2 бэкендера, фронтендер Андрей, аналитик, DevOps, владелец продукта Вячеслав, администратор. Есть мобильное приложение (адаптивная веб-версия, взаимодействует с бэкендом через Python). Кандидат — Михаил. Структура: HR-часть (~10 мин, методологии/архитектура/REST/авторизация), затем техническая часть (~40 мин, фронтенд с Андреем), затем презентация проекта.
Подготовка
Стоит подтянуть слабые места кандидата: случаи, когда не срабатывает margin collapse; паттерны Observer/PubSub; синтетические события React; глубокий перенос состояния (Deep state transfer); ключевые принципы REST помимо HTTP-методов; тип Symbol; тестирование Redux-логики. Полезно знание Python для мобильного направления.
Стиль интервьюера
Два технических интервьюера (HR-часть ведёт интервьюер, фронт — Андрей). Спокойный, доброжелательный стиль. Часто переформулируют вопрос, если кандидат не понял, и дают наводящие follow-up'ы, подталкивая к нужному ответу. Были технические проблемы со звуком у кандидата (плохо слышно).
05
Теория
Что такое REST в твоём понимании и какие правила/принципы он включает?
Follow-up: перечисли HTTP-методы и ключевые принципы REST помимо методов
06
Теория
Расскажи про сессии и токены: в чём их отличие и где что лучше применять для авторизации?
07
Теория
Что такое схлопывание внешних отступов (margin collapse) в CSS?
08
Теория
В каких случаях схлопывание внешних отступов не срабатывает?
Кандидат не смог ответить
09
Теория
Что такое специфичность классов в CSS и какая очерёдность приоритетов селекторов?
10
Теория
Что такое JavaScript, как он работает, что такое микрозадачи и макрозадачи (event loop)?
11
Теория
Что такое поверхностное и глубокое копирование, в чём разница и как выполнить глубокое копирование?
12
Теория
Расскажи о LocalStorage и SessionStorage: когда используются и в чём их разница?
13
Теория
Расскажи о явном и неявном преобразовании типов. Что выдаст при преобразовании к булевому значению (пустая строка, undefined, число, объект и т.д.)?
Интервьюер перебирал разные значения и спрашивал результат приведения к boolean
14
Теория
Что такое тип данных Symbol в JS и где он чаще всего используется?
Кандидат не использовал symbol на практике
15
Теория
Что такое same-origin policy — это политика браузера для JavaScript?
16
Теория
Что нужно сделать на фронте, чтобы обойти CORS, когда фронт и бэкенд на разных адресах?
Ожидаемый ответ — проксирование запроса
17
Теория
В чём разница между реальным DOM и виртуальным DOM, и почему виртуальный DOM быстрее?
18
Теория
Где ты использовал ref в React и зачем он нужен?
19
Теория
Что такое компонент высшего порядка (HOC) в React?
20
Теория
Каков принцип работы React Router?
21
Теория
Можешь классифицировать типы компонентов React по различным параметрам (наличие стейта, выполняемые функции и т.д.)? Что такое глупые компоненты?
22
Теория
Расскажи о паттернах Observer и PubSub: в чём их разница и какой используется в React?
Кандидат не смог ответить
23
Теория
Расскажи про сборщик мусора в JS и основные принципы его работы.
24
Теория
В чём разница между обычной функцией и стрелочной функцией?
25
Теория
Как работает мемоизация в функциях (useMemo, useCallback), для чего нужны эти хуки и каких ситуаций мы хотим избежать?
26
Теория
Что сильнее нагружает приложение — ре-рендер функции или ре-рендер компонента, и в каких случаях это происходит?
27
Теория
Расскажи о порталах в React и когда они используются.
28
Теория
Что такое синтетические события в React?
Кандидат не смог ответить
29
Теория
Расскажи о преимуществах Redux для управления состоянием приложения.
30
Теория
Что можешь сказать про тестирование Redux-логики и управление асинхронными запросами в Redux?
31
Теория
Как ты организовывал ленивую загрузку в React?
32
Теория
Что такое глубокий перенос состояния (Deep state transfer) в React? Когда используется и как реализуется?
Кандидат не смог ответить