Привет, Хабр! Я Анжела Большакова, разработчик направления Digital Interview в Т-Банке. Мы в T активно развиваем внутренние инструменты, а иногда такие проекты перерастают в продукты для внешних пользователей. Так произошло с платформой для интервью, которой занимается моя команда.

Поделюсь опытом создания инструмента: почему мы решили развивать платформу для интервью, что она умеет, как помогает Т-Команде. В конце расскажу о планах развития платформы как полноценного внешнего продукта.

Дисклеймер: используемые на скриншотах тексты заданий и имена кандидатов вымышлены и приведены только в качестве примера.

Как мы решили делать платформу для собеседований

История появления нашей платформы тесно связана с развитием процессов найма в компании. Когда-то, в незапамятные времена, общих процессов не существовало и каждая команда сама выбирала, как собеседовать кандидатов. Мы пробовали разные онлайн-редакторы, иногда приходили на собеседование с распечаткой кода для обсуждения. У разных специализаций и команд существовали свои наборы задач, которые чаще всего хранили в корпоративной Вики.

Хаоса не хотелось. И шесть лет назад мы занялись унификацией процессов: все технические этапы собеседований кандидаты в ИТ начали проходить по единому флоу. Появились секции — тематические направления технического интервью: Java, React, алгоритмические задачи или архитектура. Вместе с этим стали появляться и единые инструменты для интервью.

У нас возник ряд ожиданий к системам для проведения собеседований. Нам хотелось редактировать и запускать код совместно с кандидатом, пользоваться подсветкой синтаксиса и простым автодополнением для нужных нам языков. На рынке были подходящие решения, но они вызывали и ряд неудобств:

  • В нашей компании у каждой секции есть набор задач, размеченный по темам и уровням кандидатов. С учетом множества секций даже шесть лет назад заданий были сотни. Какие-то инструменты позволяли завести базу задач в своем интерфейсе, но глобально работать с имевшимся количеством вопросов было неудобно.

  • Мы хранили условия задач в Wiki, а во время собеседования копировали их в интерфейс интервью. В конце снова переносили отчет в свои системы, ведь нам было важно сохранить полную связку: какую задачу получил кандидат, что написал в коде и какие заметки оставил интервьюер.

  • Для некоторых секций есть обязательные задачи, которые дают всем кандидатам. Мы хотели иметь шаблоны для интервью, но приходилось снова и снова вручную копировать задачи во время собеседования. А если набор обязательных задач менялся, информацию об этом надо было донести до всех интервьюеров — иначе они могли использовать не те задания.

Стали появляться и другие хотелки: дать небольшой тест или задачку для самостоятельного решения, создать демоварианты для тренировки перед собеседованием. Всего этого платформы с рынка не умели. Альтернативные инструменты могли закрыть некоторые запросы, но не на 100%.

Мы решили делать собственную платформу интервью, которая идеально закроет наши потребности. Признаемся: начинали не с нуля. У нас в компании развиты профессиональные сообщества, в рамках которых коллеги создают необходимые им инструменты. Например, в профессии .Net уже успели создать свой продукт для интервью, который позволял выводить на экран вопросы и обсуждать их с кандидатом. Выглядел он вот так:

Старый интерфейс для запуска кода во время интервью
Старый интерфейс для запуска кода во время интервью

Мы взяли имеющийся инструмент за основу и добавили новую функциональность. А сегодня на базе нашей внутренней платформы запущен Enterly — инструмент для технических интервью, доступный всем.

Что умеет платформа Enterly во время интервью

Ядро платформы — режим интервью с возможностью совместной работы над кодом. При этом мы стараемся сделать процесс собеседования удобнее как для кандидата, так и для интервьюера.

У интервьюера возможностей больше: он может добавлять и переключать задачи, просматривать скрытые от кандидата комментарии к задаче и писать заметки. Вот как он видит нашу платформу.

Интервью на платформе Enterly. Сверху справа видны участники — представим, что у нас это интервьюер Алексей и собеседуемый Егор. Так видит интерфейс Алексей
Интервью на платформе Enterly. Сверху справа видны участники — представим, что у нас это интервьюер Алексей и собеседуемый Егор. Так видит интерфейс Алексей

В комментарии можно добавить любую информацию, которую не должен видеть кандидат: эталонное решение, возможные подсказки, критерии оценки, тест-кейсы — все, что может быть полезно.

Пример комментария к заданию
Пример комментария к заданию

Для заметок можно настроить шаблон с критериями оценки, но можно заполнять и в свободной форме. Этот вопрос решается на уровне рабочей группы интервьюеров каждой секции. 

Заметки к процессу решения задачи во время интервью
Заметки к процессу решения задачи во время интервью

По ходу собеседования интервьюер может переключать задачи и добавлять новые из библиотеки — собственного банка заданий прямо в системе. Это позволило отказаться от ведения задач в Вики и переиспользовать их в два клика.

Интерфейс добавления готовых задач в интервью
Интерфейс добавления готовых задач в интервью

Если же нужной задачи в библиотеке еще нет, а заводить в системе некогда, можно добавить пустой редактор кода и работать в нем.

Работа в режиме редактора кода — подойдет, когда не нужно конкретное задание
Работа в режиме редактора кода — подойдет, когда не нужно конкретное задание

С интервьюером разобрались, а что в это время видит кандидат? Активную задачу, редактор кода с подсветкой синтаксиса и автодополнением. Он может писать и запускать код, при этом все изменения и результаты запусков синхронизируются между всеми участниками собеседования.

Интерфейс собеседуемого на платформе Enterly. В нашем примере так окошко видит Егор
Интерфейс собеседуемого на платформе Enterly. В нашем примере так окошко видит Егор

Что умеет платформа Enterly после интервью

После интервью нужно составить итоговое мнение о кандидате. Чтобы интервьюер мог вспомнить, как все прошло, мы добавили плейбэк — возможность проигрывания истории изменений кода и его запусков. Как запись экрана, но прямо на платформе, с фильтрами по событиям и пропуском периодов, когда в редакторе ничего не происходило.

Интерфейс истории интервью на Enterly. Интервьюер может смотреть, как менялся код, какими были результаты его запусков и сколько времени прошло между включением задачи и переходом к следующей
Интерфейс истории интервью на Enterly. Интервьюер может смотреть, как менялся код, какими были результаты его запусков и сколько времени прошло между включением задачи и переходом к следующей

Иногда артефакты нужно передать дальше по процессу, другим людям. Изначально открыть данные проведенного интервью может только его автор, но для такого сценария мы добавили возможность поделиться своим интервью. Можно создать и отправить коллеге специальную ссылку, по которой будут доступны артефакты: страница-отчет и плейбэк.

Включение ссылки общего доступа
Включение ссылки общего доступа

Если возникнут подозрения, что ссылка ушла куда-то не туда, ее всегда можно пересоздать. Старая при этом перестанет работать.

Что еще умеет платформа Enterly

Личный кабинет интервьюера. Его цель — собрать в одном месте все задачи и прошедшие интервью. 

Личный кабинет интервьюера
Личный кабинет интервьюера

Библиотека задач. Никому не нравится бесконечно копировать задания из блокнота, заметок или Wiki. Чтобы не пришлось этим заниматься, мы добавили библиотеку задач — базу заданий, на которых строятся интервью.

Список задач в библиотеке. Сразу после регистрации пользователю доступно несколько демозаданий, чтобы познакомиться с основными механиками на примерах
Список задач в библиотеке. Сразу после регистрации пользователю доступно несколько демозаданий, чтобы познакомиться с основными механиками на примерах

Для каждой задачи возможна гибкая настройка: что должно быть в описании для кандидата, комментариях для интервьюера, какой шаблон для заметок, можно ли запускать код, какие языки программирования разрешены для выбора и другие кастомизации, помогающие успешному использованию задания. Все это упаковали в форму с пояснениями и подсказками.

Окно создания новой задачи
Окно создания новой задачи

Отборы. При найме на разные позиции могут потребоваться разные процессы. Странно предлагать задания на React, когда мы проводим интервью на аналитика. Чтобы набор задач и список кандидатов не превратились в хаос, у нас есть система отборов. 

Если привязать задачу к отбору, она будет доступна только в нем. Сами интервью в рамках отбора тоже можно настраивать. Например, выбрать задачи, которые будут заранее добавлены в интервью, чтобы не вспоминать их названия в библиотеке, а просто включать одну за другой.

Один из шагов настройки отбора. Окно настройки списка вопросов, которые будут заранее добавляться в интервью
Один из шагов настройки отбора. Окно настройки списка вопросов, которые будут заранее добавляться в интервью

Что дальше

Enterly и наша внутренняя платформа развиваются рядом, но все-таки имеют свою специфику. Благодаря этому прямо сейчас внутри компании мы проверяем ряд фич, которые откроем и в общей версии.

У нас нет сил молчать абсолютно обо всем, а планов становится только больше. Поэтому расскажем об одной из последних фишек — онлайн-досках.

Интеграция с Unidraw. Первое время наши лайвкодинг-интервью строились вокруг идеи, что для решения заданий достаточно их текста и редактора кода. В процессе жизни платформы стало понятно: в системе не хватает того самого «листочка бумаги», на котором кандидат может зарисовать идею будущего алгоритма, а интервьюер — раскрыть суть задачи поясняющей схемой. 

Мы могли бы сделать ряд приседаний и попробовать реализовать такую функцию с нуля. Но в компании масштаба Т-Банка есть более интересный вариант: объединиться с коллегами, которые уже решили нашу проблему.

Так мы начали интеграцию с инструментом работы с онлайн-досками — Unidraw. Если коротко, это аналог Miro, созданный внутри компании, а для любопытных наши коллеги рассказали подробнее в собственной статье: 

Unidraw — путь длиной в два года
Привет! Я Георгий, разработчик команды, которая создавала Unidraw. Расскажу историю о том, как мы ис...
habr.com

Чтобы не перегружать интерфейс, мы спрятали онлайн-доски в кнопку. Если нужно порисовать – открываете и пользуетесь прямо в платформе, а по мере необходимости возвращаетесь к написанию кода. Нужно объяснить что-то другому участнику? Без проблем: если открыть доску вместе, все увидят ее содержимое, обновляющееся в реальном времени.

Со стороны кандидата, проходящего интервью в Т, работа с онлайн-доской выглядит так
Со стороны кандидата, проходящего интервью в Т, работа с онлайн-доской выглядит так

На скриншоте альтернативная версия Enterly, которая используется внутри компании, поэтому интерфейс немного отличается.

Мы не забыли и о пользователях, которые ведут архитектурные секции. Как правило, им не нужен редактор кода, а доску хотелось бы видеть всегда. Для этого мы добавили новый тип задач — онлайн-доски, для которых интерфейс несколько меняется.

Интерфейс задания, требующего работы с онлайн-доской вместо написания кода. Версия Enterly, которая используется для собеседований в Т
Интерфейс задания, требующего работы с онлайн-доской вместо написания кода. Версия Enterly, которая используется для собеседований в Т

Наша платформа начиналась как проект, который появился не по запросу бизнеса, а для упрощения рутины участвующих в процессе найма разработчиков. Даже сейчас коллеги помогают расширять функциональность продукта, чтобы собеседования в компании стали еще удобнее и качественнее. Например, от внутреннего сообщества Java-разработчиков мы забрали и интегрировали целый раздел, где коллеги заполняют отчет об интервью, наиболее подходящий под их специфику. Этакий раздел заметок, но более подробный. 

Мы активно заводим задачи по мотивам запросов от коллег и проводим сбор обратной связи. Кстати, во время последнего опроса внутри компании наш CSAT был более 95% — считаем это достойным результатом. А для связи с нами по вопросам работы в Enterly оставили телеграм-бота и почту.

Интересно, что наша платформа уже вышла за рамки найма. Например, junior-разработчики из нашей внутренней программы роста проходят через нее аттестации до middle-специалистов. А еще нам нравится участвовать в мероприятиях Т. Например, за последние два года активности с нашим продуктом побывали примерно на 20 разных ивентах: ИТ-пикнике, Сезонах кода, профессиональных конференциях и проектах Т-Образования.

Зовем пробовать

Если вы проводите технические интервью, тестируете навыки коллег или просто ищете песочницу для запуска кода — заходите на enterly.ru. Мы делали платформу для Т, но теперь она доступна всем, а команда заряжена и дальше обогащать опыт наших пользователей.

А еще на базе платформы Enterly мы проводим соревнования: 9 декабря стартовал Т-Адвент — будут необычные задачи по программированию. Заходите размяться и познакомиться с платформой!

Комментарии (0)