Прохожу СОБЕСЕДОВАНИЕ НА SENIOR FRONTEND. ЗП 400к и Live coding
Запись собеседования на senior frontend-вакансию с разбором ответов кандидата, технических вопросов и двух live-coding задач. В конце автор показывает полученный оффер и названную сумму компенсации.
Автор показывает запись собеседования на вакансию senior frontend-разработчика: он заранее составил резюме с четырьмя годами опыта и после интервью субъективно счёл своё выступление не лучшим. После краткого разговора с HR кандидат обсуждает проекты на React, Canvas/SVG, GraphQL, Feature-Sliced Design, Redux Toolkit и тестирование, затем отвечает на вопросы по JavaScript, TypeScript, React, производительности и SSR. В live coding он разбирает порядок выполнения в event loop и пишет решение задачи преобразования массива чисел в диапазоны. В финале автор сообщает, что получил оффер на 400 000 рублей после вычета налогов, но утверждает, что не ищет работу и отказался бы от него.
На интервью подробно расспрашивали не только о стеке, но и о конкретных проектах: хранении данных, миграции визуализации с SVG/D3 на Canvas и использовании Konva.js.
Стоит подготовить объяснение, зачем в большом старом сервисе использовали GraphQL: выборка только нужных полей, схема и генерация TypeScript-типов.
Нужно уметь описать модульную фронтенд-архитектуру: Feature-Sliced Design в монорепозитории, изолированные модули и локальные Redux-сторы вместо одного общего хранилища.
Вопросы по качеству затронули всю пирамиду тестов: unit-тесты, React Testing Library, screenshot- и E2E-тесты, а также проверку покрытия в CI/CD.
Технический блок включал различия Map и Set, порядок вставки в Map, `enum` и константные объекты, а также назначение `any`, `unknown` и `never`.
Для React спросили очистку обработчиков в `useEffect`, включая снятие анонимных слушателей через `AbortController` и `signal`.
В задачах проверяли понимание очередей event loop и умение получить диапазоны из неотсортированного массива через сортировку и один проход.