Мне неважно, на чем вы писали раньше. Как мы нанимаем разработчиков в Гонконге.

собеседование IT

Бен Ченг, основатель студии мобильной и веб-разработки в Гонконге рассказал о процессе найма в своей компании. Статья будет полезна как разработчикам, так и техническим специалистам, которые проводят собеседования. Редакция techrocks.ru приводит адаптированный перевод материала.


Люди часто сравнивают Гонконг с технологической пустошью. Говорят, что город страдает от утечки мозгов в сфере IT, что все разработчики топ-уровня переезжают в Силиконовую Долину. Я думаю, это все чушь.

Я расскажу вам, как моя компания — небольшое агентство по разработке мобильных приложений — наняла и вырастила команду разработки с нуля до 30+ человек в Гонконге и Тайбэе.

Мы создаем приложения для AppStore с миллионами скачиваний и находимся в Гонконге.

Конечно, некоторые из наших ребят тоже перешли на работу в Apple и Google, и мы гордимся ими! Но статья не о них, а о том, как мы ищем талантливых разработчиков.

Первая вещь, на которую вам следует смотреть, когда вы ищете разработчика

собеседование IT

Для того, чтобы найти отличного инженера, вы должны четко представлять себе, кого вы на самом деле ищете. Вам нужен full-stack или frontend/backend разработчик? Должен ли кандидат обладать специфическими знаниями (например, ИИ, blockchain или big data)?

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

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

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

Наш процесс найма

Технологии постоянно меняются. Наш процесс отбора нужен для того, чтобы получить ответы на 3 вопроса:

  1. Может ли кандидат писать чистый код?
  2. Есть ли у него фундаментальные технические знания?
  3. Может ли кандидат работать в команде?

Удаленный тест

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

Мы используем remoteinterview.io для удаленного тестирования кандидатов.

Технические вопросы

Мы разделяем технические вопросы на 4 части:

  1. Алгоритмы и структуры данных
  2. Сети и web-технологии
  3. Server-side технологии
  4. Специфические технологии (тут мы основываемся на бэкграунде кандидата)

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

Мы избегаем вопросов из учебников — вместо этого мы ищем у кандидата понимания сложности алгоритмов.

В случае с сетями и web-технологиями мы спрашиваем о концепциях, которые инкапсулируются фреймворками. Мы хотим убедиться, что у кандидата есть правильное понимание таких вещей, как, например, протокол HTTP или DOM.

Также мы задаем вопросы по архитектуре приложений (по паттернам проектирования) — таким образом мы понимаем, сколько реального опыта имеет кандидат.

И, в заключение, мы можем задать 1-2 специфических вопроса по какой-либо технологии, с которой работал кандидат. Если человек скорее junior, то мы стараемся относиться лояльно к тому, что у него нет больших специфических знаний. Но, например, для senior JS-разработчика с 3-мя годами стажа мы ожидаем правильных ответов на большинство вопросов о том, как работает JavaScript.

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

Программирование в команде и домашнее задание

На наш взгляд, сегодня, это стандарт для IT-сферы. Если кандидат прошел техническое собеседование, мы хотели бы видеть, сможет ли он работает в команде. Как он общается, комфортно ли команде с ним работать?

Если парное программирование в офисе — слишком накладно для вас и вашей команды, можете дать кандидату тестовое домашнее задание.

Вот список критериев, на которые мы смотрим, когда оцениваем тестовые задания кандидатов:

  • Схожесть спецификации с выполненным заданием (для фронтенд позиций)
  • Usability решения (для фронтенд позиций)
  • Читабельность кода
  • Читабельные пояснения к коммитам в GIT

Почему крутые разработчики работают с нами вместо того, чтобы устроиться в Google или Apple?

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

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

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх