Люди часто говорят, что Гонконг - это технологическая пустошь. Говорят, город страдает от утечки мозгов девелоперов. Что всех ведущих разработчиков заманивают в Кремниевую долину. Думаю, это чушь.

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

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

Вместе мы создали приложения из App Store с миллионами скачиваний прямо в нашем родном городе Гонконге.

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

Первое, на что стоит обратить внимание в разработчике

Чтобы найти отличного разработчика, вы должны четко понимать, что ищете. Вы хотите полный стек или фронтенд / бэкэнд? Вам нужны особые навыки, такие как знание искусственного интеллекта, блокчейна или больших данных?

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

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

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

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

Технологии всегда меняются. Наш процесс найма предназначен для проверки трех вещей:

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

Тест удаленного кодирования

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

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

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

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

  • Алгоритм и структуры данных
  • Сеть и Интернет
  • Знания на стороне сервера
  • Конкретная технология, основанная на опыте кандидата

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

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

Что касается сети и Интернета, мы стараемся задавать вопросы, связанные с концепциями, которые обычно инкапсулируются фреймворками. Таким образом, мы можем быть уверены, что кандидат правильно понимает такие вещи, как протокол HTTP и работа структуры DOM.

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

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

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

Парное программирование и домашние упражнения

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

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

Вот список критериев, которые мы обычно ищем, забирая домой упражнения:

  • Точность исполнения, особенно деталей дизайна (для передних конечных позиций)
  • Удобство использования интерактивных элементов (для передней конечной позиции)
  • Читаемость кода
  • Логические и читаемые сообщения коммитов Git

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

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

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

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

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

Создаете приложение? Наши бесплатные инструменты разработчика и серверная часть с открытым исходным кодом упростят вашу работу.