Номинируйте кейсы на Workspace Digital Awards 2026. Прием заявок до 15 декабря по льготной цене, успейте принять участие!
Назад
Веб-разработка

Как мы находим сильных разработчиков: честный разбор нашего подхода

697 
 

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

1. НАЙТИ ХОРОШЕГО РАЗРАБОТЧИКА – ЕЩЕ ОДНА НЕПРОСТАЯ ЗАДАЧА

Как мы находим сильных разработчиков: честный разбор нашего подхода

Даже самые блестяще собранные требования нуждаются в безупречной реализации. И здесь на сцену выходит настоящий рыцарь в сияющем худи, способный воплощать сложное в сжатые сроки, – разработчик. Найти сильного разработчика, особенно под специфическую платформу (в нашем случае BPMSoft), – задача не менее сложная, чем поиск хорошего аналитика, но абсолютно решаемая. Данная статья описывает субъективный подход к подбору этого ключевого специалиста и отражает собственный опыт, как обычно, не претендуя на звание единственно верного видения.

2. КАК СОСТАВИТЬ ПОРТРЕТ «ТОГО САМОГО» КАНДИДАТА

Как мы находим сильных разработчиков: честный разбор нашего подхода

Первое с чем требуется определиться – критерии для специалистов по подбору. Данный этап особенно важен, так как не все разработчики подойдут. Для данной вакансии необходимо совпадение по стеку и области знаний.

Далее я напишу список основных критериев и почему их выбрал.

Высшее IT-образование

  • Его наличие свидетельствует, что человек уже проявил себя хотя бы в усидчивости.
  • Говорит о наличии базовых знаний, а также умении работать с информацией и подходить к решению задач структурировано.
  • Техническое образование позволяет предположить, что у человека как минимум технический склад ума.
  • Профильное образование дает надежду на то, что человек, по крайней мере, знаком с базой по разработке ПО.

Опыт работы

Опыт работы разработчиком на платформе BPMSoft (или аналогичных low-code/code-based CRM/ERP-системах) – ключевой критерий (поиск джунов/стажеров сейчас не рассматриваю). Под аналогичными решениями имею в виду: 1C, Битрикс24, SimpleOne, решения на базе Microsoft Dynamics (Navision, Axapta), платформы SAP, а также BPM-системы (K2, ELMA365). Такой бэкграунд свидетельствует о понимании принципов работы сложных бизнес-систем, что критически важно для быстрого старта на проектах.

Личные качества

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

Навыки и компетенции

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

  • Опыт коммерческой разработки на платформе BPMSoft от 2 лет
  • Понимание общих принципов ООП
  • Понимание принципов SOLID
  • Знание C# (.Net 8+, .NET Framework)
  • Знание Javascript, желательно опыт работы и понимание: ExtJs, RequireJs, AngularJs/ReactJs/VueJs
  • Глубокое понимание архитектуры и возможностей платформы BPMSoft (архитектура компонентов, событийный слой, наследование и замещение, DI и т. п.)
  • Опыт работы с базами данных: умение писать и оптимизировать SQL-запросы (PostgreSQL, MS SQL Server), понимание основ построения БД
  • Опыт разработки и интеграции REST/SOAP API
  • Опыт работы с системами контроля версий (GIT)
  • Понимание принципов работы брокеров сообщений (Kafka, RabbitMQ) будет большим плюсом
  • Опыт работы в трекерах (Jira, Kaiten)
  • Базовое понимание фронтенд-разработки (HTML, CSS, JavaScript) для кастомизации интерфейсов
  • Умение читать и анализировать техническую документацию (ТЗ, ФТ) от аналитиков
  • Желательно понимание основ функционирования бизнеса (продажи, маркетинг, сервис) для более осознанной реализации задач

Ключевые обязанности

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

  • разработка нового и доработка существующего функционала на платформе BPMSoft
  • участие в проектировании архитектуры решений
  • написание высококачественного и поддерживаемого кода (C#, Javascript)
  • интеграция с внешними системами через API
  • участие в код-ревью
  • техническая поддержка и исправление ошибок

3. ЧИТАЕМ РЕЗЮМЕ МЕЖДУ СТРОК

Как мы находим сильных разработчиков: честный разбор нашего подхода

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

Оформление резюме (структура, корректность описания)

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

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

Опыт работы и возраст

Сложный пункт, но я постараюсь описать свое видение:

  • Если человек старше 30 и при этом сменил более 2 мест работы подряд с длительностью менее 6 месяцев – отказ. 30 лет – сформированная личность, и такие прыжки настораживают.
  • Если человек младше 30 и имеет такую же историю – смотрим на остальные критерии. Молодость – время для поиска себя.
  • Если человек более 6-10 лет работает на одном месте – смотрим очень внимательно. С одной стороны, это лояльность, с другой – риск «окостенения» в рамках одного стека и процессов одной компании.
  • Черный список мест работы. Думаю, у всех формируется определенное представление о компаниях в своей нише и свой черный список, к сотрудникам из которого нужно подходить очень осторожно.
  • Несоответствие грейдов. Смотрим на реальные задачи в опыте. Если 5 лет человек числился старшим разработчиком, но в обязанностях только написание простых скриптов – это тревожный звонок.
  • Наличие портфолио или ссылок на проекты (GitHub). Это огромный плюс. Позволяет сразу оценить качество кода, даже не общаясь с кандидатом.

4. РАБОЧИЙ ПОДХОД К КОМФОРТНОМУ И ЭФФЕКТИВНОМУ СОБЕСЕДОВАНИЮ

Как мы находим сильных разработчиков: честный разбор нашего подхода

Мы дошли до самого интересного – собеседований. Я пропущу их первую стадию с HR и перейду к техническому интервью.

Важные моменты, о которых забывают интервьюеры

  • Любое собеседование – это стресс для кандидата. Ведите себя максимально корректно и доброжелательно (не хамить, не подгонять, не акцентировать, что человек чего-то не знает).
  • Если видите, что кандидат сильно «плавает» в теме, а впереди еще 10 вопросов по ней – не мучайте человека, пропустите этот блок. И время сэкономите, и нервы сбережете.
  • Если быстро поняли, что человек не ваш – плавно заканчивайте встречу и отпускайте.
  • Правило хорошего тона – уточнить, комфортно ли общаться на «ты». До этого момента общайтесь на «вы».

Реальный план собеседования

Сразу акцентирую, что для разработчиков тайминг всегда не менее 1-1,5 часа, так как тем для обсуждения очень много: опыт, база javascript, база C#, фронтовая разработка BPMSoft, бэковая разработка на C#, работа с БД, иногда микросервисы BPMSoft. Бывает, что приходится разбивать собеседование на 2 этапа: базовые знания и разработка в BPMSoft.

1. Приветствие и краткая справка о компании ~5 минут

Знакомитесь, рассказываете о компании, команде, проектах. 

2. Рассказ кандидата о его достижениях ~10 минут

Вопрос на грани психологии. Просите рассказать о том, что он сам считает самыми крутыми достижениями. Из рассказа понимаете, на что человек делает акцент («я» или «команда»), уровень его задач, амбиций и вовлеченность.

3. Вопросы-ответы (проверка скиллов и компетенций) ~35-90 минут

4. Вопросы от кандидата ~10-20 минут

Даете возможность задать вопросы о компании, проекте и т. п. 

5. Вопросы по ЗП и условиям работы

Обсуждаются либо на встрече, либо после решения о положительном прохождении технического интервью.

6. Завершение

Помните, что успешное собеседование не всегда означает успешного работника. Иногда люди просто умеют проходить собеседования (и это тоже навык).

На что обращать внимание

1. Софт-скилы

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


Разместите
тендер бесплатно

Наша система сама подберет вам исполнителей на услуги, связанные с разработкой сайта или приложения, поисковой оптимизацией, контекстной рекламой, маркетингом, SMM и PR.

Заполнить заявку 13203 тендера
проведено за восемь лет работы нашего сайта.


2. Критические навыки

Для разработчика BPMSoft – это знание платформы, C# и Javascript.

3. Умение мыслить архитектурно

Не просто «как сделать», а «как сделать правильно, масштабируемо и поддерживаемо» и при этом смочь объяснить, почему выбрано именно такое решение.

Пример готового плана собеседования на должность разработчика BPMSoft (вступительную и часть с разбором опыта пропускаю)

1. Старт

Предлагаете кандидату выбрать, с какого блока вопросов начать: Frontend (JavaScript) или Backend (C#). Это помогает ему сразу чувствовать себя комфортнее, а нам понять, что ему ближе.

2. Блок вопросов по JavaScript

Начинаем с основ:

  • В чем отличие var, let, const? (показывает знание областей видимости)
  • Что такое замыкание своими словами? (помогает оценить глубину понимания)
  • Асинхронность в JavaScript (надеемся услышать про проблемы и решения: callback, Promise, async/await)
  • Иногда можно спросить про базовые функции для работы с массивами (filter, find, map)
  • Был ли опыт работы с ExtJs? Если да, просите рассказать, как создавать компоненты, как реализуется наследование и замещение.
  • Был ли опыт с Angular/React/Vue? Этот вопрос актуален, так как для BPMSoft часто создаются кастомные компоненты. В целом не является критичным при наличии знаний ExtJs.

Вопросы по разработке фронта на BPMSoft (идете от самых частых задач к более редким):

  • Как реализовать фильтрацию данных (в разделе, детали, справочном поле)?
  • Как реализовать валидацию (поля, формы при сохранении)?
  • Как реализовать событийную логику на странице?
  • Как работать с бизнес-процессами и веб-сервисами?
  • Как правильно реализовать обработку ошибок и CRUD-операции?
  • Иногда можно задать вопросы по работе с кэшем.
  • Что такое модули и какие типы модулей существуют?
  • Как происходит создание, наследование и замещение компонентов? Как создать и использовать свой компонент?
  • Вопрос со звездочкой: как правильно внедрить контрол, написанный на Angular, React или Vue?

3. Блок вопросов по C#

Начинаем с базы:

  • В чем разница между значимыми и ссылочными типами?
  • Отдельно спрашиваем про тип string и особенности работы с ним.
  • Если кандидат сильный, углубляйтесь: организация хранения в памяти (стек/куча), работа сборщика мусора, управляемая среда, IL-код. Это показывает глубину знаний и потенциал для работы над сложной оптимизацией.
  • Общие вопросы по классам: что такое class, abstract class, static class, interface, зачем нужны и примеры использования.
  • Вопросы по статике: когда инициализируется, плюсы/минусы, методы расширений.
  • После сложных вопросов разбавляем теорией: SOLID, KISS, DRY. Пытаемся понять уровень осознанности разработчика.
  • Часто задаем вопрос: «А как ты думаешь, зачем вообще вся эта теория нужна и что дает?» — это также помогает оценить осознанность.
  • Как происходит создание, наследование и замещение компонентов? Как создать и использовать свой компонент?
  • Вопрос со звездочкой: как правильно внедрить контрол, написанный на Angular, React или Vue?

Вопросы по разработке бэкенда на BPMSoft (идем от частого к редкому):

  • Как правильно работать с CRUD-операциями?
  • Как реализовать валидацию и событийную логику?
  • Как работать с бизнес-процессами (запуск, остановка, создание действий, переопределение поведения, скрипт-таски)?
  • Как работать с веб-сервисами и правильно обрабатывать ошибки?
  • Иногда можно спросить про работу с кэшем.
  • Как происходит создание, наследование и замещение функционала на бекенде?
  • Иногда задаем вопросы по Ninject (если кандидат сильный и понимает, о чем речь).
  • Предлагаете описать архитектуру несложной интеграционной задачи: какие классы выделит, как построит обработку ошибок. Если после первой задачи мнение неоднозначное, даете еще одну.
  • Иногда можно спросить о базовых библиотеках BPMSoft.

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

Пример:

  • Спрашиваете: «Как переопределить базовый функционал по отправке сообщений? Допустим, класс называется EmailSender».
  • Кандидат отвечает: «Нужно создать новый класс RtxEmailSender, унаследоваться от EmailSender и пометить класс атрибутом [Override]».
  • Уточняете: «А как ты думаешь, что делает атрибут Override и как система понимает, что нужно переопределить функционал?»
  • Как работать с веб-сервисами и правильно обрабатывать ошибки?
  • Иногда можно спросить про работу с кэшем.
  • Как происходит создание, наследование и замещение функционала на бекенде?
  • Иногда задаем вопросы по Ninject (если кандидат сильный и понимает, о чем речь).
  • Предлагаете описать архитектуру несложной интеграционной задачи: какие классы выделит, как построит обработку ошибок. Если после первой задачи мнение неоднозначное, даете еще одну.
  • Иногда можно спросить о базовых библиотеках BPMSoft.

- Если ответ: «Так в документации написано / не знаю» – переходите к следующему вопросу или просите поразмышлять (если видите потенциал).

- Если ответ: «Я знаю, что это работает только при создании экземпляра через ClassFactory.Get, а сам ClassFactory – это обертка над Ninject...» – это открывает диалог о DI, IoC-контейнерах, переопределении биндингов и т. п.

- Ответ «Я не знаю» или «Так написано в базе знаний» не является блокером. Просто становится понятно, что в этой теме кандидату есть куда расти, и это нормально.

4. Вопросы кандидата

Важный момент!

Перед блоком вопросов по теме (C#, JavaScript и т. д.) рекомендую поинтересоваться:«А как ты сам оцениваешь свой уровень знаний (C#/Javascript/ExtJs/…) по 10-балльной шкале?». Возможно, звучит странно, но это один из ключевых вопросов. Он позволяет сразу узнать:

  • адекватность самооценки
  • понимание объема темы
  • честность

5. КАК ВЫЯВИТЬ ПОТЕНЦИАЛ И НЕ ОТПУГНУТЬ СИЛЬНОГО КАНДИДАТА

Как мы находим сильных разработчиков: честный разбор нашего подхода

Подход к техническому тестированию

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

Альтернативные варианты оценки технических навыков:

  • предложить кандидату решить задачу в комфортной домашней обстановке и предоставить готовое решение
  • провести совместный код-ревью на основе существующих проектов кандидата
  • изучить код через публичные репозитории (GitHub)

Принципы проведения собеседования

1. Образовательный подход

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

2. Фокус на потенциале развития

Главная цель собеседования – оценить не только текущий уровень компетенций кандидата, но и его способность к профессиональному росту. Потенциал развития часто важнее текущего уровня знаний.

3. Практическое понимание vs теоретические знания

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

4. Взаимная выгода

Идеальным результатом собеседования можно считать ситуацию, когда:

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

6. ФИЛОСОФИЯ НАЙМА RIGHTEX

Как мы находим сильных разработчиков: честный разбор нашего подхода

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

Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.




697

Лучшие статьи

Поделиться: 0 0 0
Исполнительный директор в  Rightex , Москва
 0  0  0