Интервью с Senior Front-end разработчиком

Отличается ли чем-то собеседование с Front-end разработчиком и Senior Front-end разработчиком? В чем принципиальные отличия позиций? На какие детали нужно обратить внимание, чтобы в вашу команду вышел настоящий Senior? На эти вопросы отвечает команда DigitalHR вместе с экспертами.
Согласно ежегодному исследованию StackOverflow, самая популярная профессия среди пользователей сервиса в 2017 году — это Web developer. Целых 72.6%! Web developer, Front-end developer, Client-side developer — суть одна, эти разработчики занимаются версткой шаблонов сайта и созданием пользовательского интерфейса.
В каждой компании есть свои грейды разработчиков, бывает такое, что в одну компанию кандидат проходит на позицию middle, в другую — на позицию senior. На просторах интернета есть много споров по поводу отличий этих двух позиций. С этой проблемой мы обратились к Андрею Яманову, который занимается web-разработкой в компании Skyeng.
Я выделяю три основных пункта, которые отличают senior-разработчика от middle:
— Понимание принципов работы инструментов, которыми пользуется разработчик. Начиная внутренностями фреймворков, особенностями языка программирования и заканчивая устройством систем контроля версий.
— Умение выстраивать архитектуру приложения, включая умение выявлять узкие места в производительности, выстраивать эффективную коммуникацию с сервисами, создавать абстракции, с которыми менее опытным разработчикам будет комфортно работать.
— Банально: опыт и умение планировать задачи, что включает в себя прогнозирование времени выполнения задач, разделения задач на более мелкие и составление некой композиции задач для понимания последовательности их выполнения и приоритета.
По факту же часто получается, что занимаемая должность не соответствует реальным навыкам. Это связано с огромным спросом на senior-разработчиков, который во многом вызван ошибочным представлением работодателей о необходимых им компетенциях. Например, считается, что руководитель команды разработчиков (или просто основной разработчик в маленькой компании) обязательно должен иметь компетенцию senior-разработчика, хотя для многих проектов подойдет и средний разработчик с хорошими навыками менеджмента или смекалкой. Спрос неминуемо рождает предложение, независимо, адекватен он или нет.
Прежде всего стоит уточнить у руководителя отдела, что важно для этой позиции? На это нужно будет обратить особое внимание при общении с кандидатами. Ниже - небольшой список вопросов для знакомства с senior front-end разработчиком для рекрутеров и HR специалистов. Обращаем внимание, что это не технические вопросы, а вопросы для предварительного знакомства. Они были составлены с ex-руководителем отдела разработки компании Superjob, Игорем Федосеевым.
По каждому месту работы или последним трём:
- Как вы попали в компанию Х? Из каких компаний выбирали? Каковы были основные критерии выбора компании?
- В каком состоянии был проект на момент вашего прихода? Как изменился проект за время работы, как на это повлияли вы?
- Как был устроен процесс разработки? Тестирование? Деплой?
- Какие специалисты входили в команду, как распределялись обязанности внутри команды? Чем ваши задачи senior разработчика отличались от задач middle разработчика?
- Какие инженерные практики использовались в разработке: code-review, tdd, unit-тесты. Какие инструменты для этого использовались?
- Какие задачи решали?
- Как бы сейчас решили подобную задачу?
- Что исследовали, что внедряли?
- Решали ли задачи на построение архитектуры? Какие именно?
- Решали ли задачи по оптимизации? Что и как оптимизировали?
- Какой стек технологий использовался? Кто и как выбирал стек?
- Участвовали ли в проектировании api? Какие инструменты использовали для документации api, моков?
- Приведите пример самой интересной задачи.
- Приведите пример самой сложной задачи.
- Чему научились за время работы?
- Какие бы выделили достижения за время работы?
Дальше рекомендуем узнать:
- Критерии выбора нового места работы?
- Чем заинтересовала компания работодателя?
Большую часть вопросов можно отнести к front-end разработчику любого уровня.