Люди часто говорят, что Гонконг - это технологическая пустошь. Говорят, город страдает от утечки мозгов девелоперов. Что всех ведущих разработчиков заманивают в Кремниевую долину. Думаю, это чушь.
Инженерное дело - это не только деньги, офисы вроде Googleplex или просто увлечение людьми в районе залива.
В этой статье я покажу вам, как моя компания - 9-летнее агентство по разработке, основанное тремя техническими соучредителями - набрала и увеличила команду разработчиков до 30+ человек в Гонконге и Тайбэе.
Вместе мы создали приложения из App Store с миллионами скачиваний прямо в нашем родном городе Гонконге.
Конечно, наши выпускники тоже перешли в Apple и Google, и мы ими гордимся! Но сначала вот как мы находим этих талантливых разработчиков.
Первое, на что стоит обратить внимание в разработчике
Чтобы найти отличного разработчика, вы должны четко понимать, что ищете. Вы хотите полный стек или фронтенд / бэкэнд? Вам нужны особые навыки, такие как знание искусственного интеллекта, блокчейна или больших данных?
Если у вас нет особой причины, не нанимайте сотрудников, связанных с конкретными технологиями. Вместо этого нанимайте на основе фундаментальных знаний.
За эти годы я опросил сотни разработчиков. Один из самых важных выводов, который я понял, - это то, что не может быть никаких предположений. Я брал интервью у людей со степенью магистра компьютерных наук, у которых возникли проблемы с написанием цикла for, выполняющего итерацию по массиву.
Итак, первое правило - нанимать людей, у которых (желательно) есть фундаментальные знания, опыт программирования и желание постоянно изучать новые языки и навыки.
Наш процесс найма.
Технологии всегда меняются. Наш процесс найма предназначен для проверки трех вещей:
- Может ли этот человек писать чистый код?
- Есть ли у них фундаментальные технические знания?
- Могут ли они работать в команде и решать прикладные задачи на iOS, Android, в Интернете или на любой другой платформе, на которой должно быть создано приложение?
Тест удаленного кодирования
Во-первых, необходимо овладеть базовыми навыками кодирования, чтобы снизить нагрузку на собеседование. У нас есть 40+ приложений в месяц, к которым нам нужно вернуться. Талантливые разработчики не будут ждать. И мы не хотим их пропустить, потому что наш процесс был слишком медленным.
Мы используем remoteinterview.io для удаленного тестирования.
Технические вопросы
Разделим технические вопросы на 4 части:
- Алгоритм и структуры данных
- Сеть и Интернет
- Знания на стороне сервера
- Конкретная технология, основанная на опыте кандидата
Что касается алгоритмов и структур данных, нас действительно не волнует, сможет ли кандидат заниматься оптимизацией алгоритмов или углубленными темами для получения докторской степени, потому что мы в основном занимаемся мобильными и веб-приложениями. Вместо этого мы сосредотачиваемся на базовом понимании концепций, лежащих в основе общих структур данных.
Мы не задаем вопросы из учебников и стараемся правильно понимать сложность.
Что касается сети и Интернета, мы стараемся задавать вопросы, связанные с концепциями, которые обычно инкапсулируются фреймворками. Таким образом, мы можем быть уверены, что кандидат правильно понимает такие вещи, как протокол HTTP и работа структуры DOM.
Что касается серверных знаний, мы стараемся задавать вопросы об архитектуре / дизайне, чтобы иметь представление о том, какой опыт имеет кандидат и могут ли они хорошо рассказать о техническом дизайне.
Наконец, мы можем задать 1 или 2 вопроса, связанных с языком или платформой, в зависимости от биографии кандидата. Если кандидат относительно молодой, ничего страшного, если он еще не обладает глубокими знаниями в области прикладных технологий. Этот вопрос должен указывать на то, серьезно ли кандидат относится к технологии, которую он использовал на своей последней работе. Например, мы ожидаем, что разработчик Javascript с 3-летним опытом хорошо знает проблему привязки замыкания / привязки переменных.
Если кто-то говорит, что у него есть опыт работы в разделах 1–3, он сможет продемонстрировать это в разделе 4. Если эти разделы не являются его областью специализации, мы все же хотим видеть, что у них есть общее представление о других факторах, которые необходимо учитывать. оптимизировать приложение. Например, мы хотели бы, чтобы серверный разработчик продемонстрировал некоторые знания внешнего интерфейса, чтобы их API, вероятно, был лучше оптимизирован.
Парное программирование и домашние упражнения
Я думаю, что это довольно стандартно в отрасли. Если кандидат прошел все технические тесты, мы хотим увидеть, как этот разработчик работает с командой в реальных условиях. Могут ли они хорошо общаться, и комфортно ли команде работать с этим человеком? Обладает ли кандидат хорошими навыками решения проблем?
Если парное программирование в офисе слишком ресурсоемко для вас и вашей команды, вы можете дать кандидату практическое упражнение. Постарайтесь быть как можно более конкретным в практическом упражнении и объясните, по чему вы планируете их оценивать.
Вот список критериев, которые мы обычно ищем, забирая домой упражнения:
- Точность исполнения, особенно деталей дизайна (для передних конечных позиций)
- Удобство использования интерактивных элементов (для передней конечной позиции)
- Читаемость кода
- Логические и читаемые сообщения коммитов Git
Почему великие разработчики работают с нами, а не в Apple или Google?
На самом деле, главная причина в том, что мы находимся в Гонконге, и многие разработчики, которые берут интервью у Oursky, часто хотят остаться здесь, а не уезжать за границу. Кроме того, некоторые разработчики предпочитают работать в бутик-агентстве и создавать серию продуктов.
Конечно, некоторые люди решают перейти в более крупные компании, и мы поддерживаем их выбор направления роста. Многие из наших разработчиков хотят больше вносить свой вклад в проекты с открытым исходным кодом, чему и занимается Oursky.
Благодаря этому процессу приема на работу, в котором основное внимание уделяется общим навыкам, а не знанию конкретных технологий, мы обнаружили много талантливых разработчиков. Для нас все сводится к тому, чтобы задать правильные вопросы на собеседовании.
Создав сильную корпоративную культуру с помощью нашей практики найма, мы смогли удержать множество замечательных гонконгских разработчиков, которые в противном случае уехали бы за границу.
Создаете приложение? Наши бесплатные инструменты разработчика и серверная часть с открытым исходным кодом упростят вашу работу.