Как мы в Fora Soft пополняем iOS команду

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

Минимальные требования для найма

Разработчик должен знать следующее:

  1. ООП. Это методология программирования, основанная на представлении программы в виде совокупности объектов.
  2. Swift, Obj-C (чтение кода). Swift - это язык программирования, который был разработан компанией Apple, и он используется для написания программ для всех продуктов «Яблока». Obj-C, в свою очередь, предыдущий язык, который Apple использовала для своих приложений. Даже сейчас можно создавать с его помощью новые объекты, но, как правило, все используют Swift. Однако, понимать Obj-C нужно хотя бы на уровне чтения кода: на нём написаны старые проекты, и им нужна поддержка.
  3. iOS SDK. Знание основных фреймворков, таких как: UIKit (работа с графическим представлением), Foundation (работа с сетью, с датой), AVKit (работа с медиа), MapKit (работа с картой), CoreLocation (работа с геопозицией).
  4. Apple Guideline. Для того, чтобы приложение попало в App Store, оно должно отвечать требованиям Apple. Каким - читайте документацию Apple.
  5. AutoLayout. Это механизм верстки приложения, предназначенный для расположения элементов интерфейса на экране смартфона.
  6. Multithreading. Многозадачность нужна для того, чтобы приложение выполняло множество процессов одновременно. Например, чтобы выполнялся запрос в сеть, и при этом отображался лоудер загрузки данных.
  7. SOA (REST API, Web Socket). Для того, чтобы работать с сетью, нужно понимать, как она устроена.
  8. Git. Система контроля версий предназначена для облегчения работы над проектом и возможности совместно трудиться над ним. Помимо этого, она позволяет хранить несколько версий одного и того же документа. Также, при необходимости можно возвращаться к более ранним вариантам, определять, кто и когда сделал то или иное изменение, и многое другое.

Процесс отбора и найма

Этот процесс состоит из следующих этапов:

  1. Кандидат отправляет свое резюме на почту HR.
  2. HR рассматривает резюме, если оно отвечает требованиям, HR звонит кандидату.
  3. HR рассказывает о компании и отвечает на вопросы. Далее происходит мини-интервью, на котором проверяют профессиональные качества кандидата. Вопросы касаются вакансии, на которую соискатель претендует.
  4. Если на вопросы кандидат отвечает успешно, то ему предлагается пройти в следующий этап - техническое интервью, на котором присутствуют HR и lead отдела. На этом этапе вопросы задает lead. Он спрашивает не только по основному направлению, но также про ИТ. Необходимо узнать про кругозор потенциального работника. После этого HR делает экскурсию по офису.
  5. Почти всем кандидатам в случае успешного прохождения 4 этапа предлагается выполнить тестовое задание, на которое дается неделя.
  6. Кандидат отправляет своё выполненное задание. Lead его проверяет и оставляет свой комментарий HR. Далее принимается решение о приглашении человека на финальное интервью.
  7. На заключительном этапе интервью присутствует CEO компании. На нем кандидату дают какую-то конкретную задачу, например, разработку сервиса для видеосвязи. Соискатель должен рассказать, как он эту задачу решит.
  8. Отправляется оффер.
«Когда я нахожу сотрудника, который, как оказывается, не годен для работы, я чувствую свою вину, потому что это я принял решение нанять его» — Акио Морита, основатель корпорации Sony.

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

Статистика по JavaScript (информация за 1,5 месяца):

  1. 500 кандидатов

2. Из 500 кандидатов 20% проходят через телефонное интервью - 100 человек

3. Из 100 кандидатов 40% проходят собеседование - 40 человек

4. Из 40 кандидатов 30% проходят тестовое и техническое собеседования с разработчиком - 12 человек

5. Из 12 кандидатов 90% проходят финальное собеседование с директором - 10 человек

iOS:

  1. 50 кандидатов

2. Из 50 кандидатов 50% проходят телефонное интервью

3. Из 25 кандидатов 20% проходят тестовое + техническое собеседования

4. Из 5 кандидатов 20% проходят финальное собеседование с директором, т.е.1 человек

Итог:

На позицию “JS-разработчик” из 500 кандидатов оффер высылается десяти, то есть 2%

На позицию “iOS-разработчик” из 50 кандидатов оффер высылается одному, то есть также 2%

Мы просто привели цифры, а выводы делайте сами :)

Процесс наставничества

Куратор делает:

  • Код-ревью. Согласно Git Flow, младший программист создает для него отдельную ветку. По завершению таски, младший программист делает merge request, и куратор уже смотрит на результат. Хороший куратор следит за логикой решения задачи, оставляет свои комментарии и отправляет на доработку. Если же наставника все устраивает, то происходит мердж в ветку develop. Благодаря такому механизму, можно отследить, как прогрессирует младший программист. Со временем комментариев становится все меньше и меньше, а код сразу же попадает в develop.
  • Митинги на тему слабых и сильных сторон разработчика. Спустя какое-то время, у куратора формируется профессиональный портрет младшего программиста на основании кода, подхода к решению задач и исходя из отзывов других членов команды. И как только этот портрет будет готов - куратор садится за стол и всё обсуждает вместе с младшим разработчиком. Такие митинги проходят довольно часто, примерно раз в месяц.
  • Информационная база (вопрос-ответ). Младший программист всегда может обратиться за помощью, обсудить решение задачи со своим куратором.
  • Распределение задач. Именно куратор определяет, что обучаемый может сделать, а что еще рано. Сложность задач постепенно повышается, все зависит от профессионального роста программиста

Как происходит постоянное развитие

  • Карта целей. Каждый разработчик составляет себе карту целей. Что это такое? Берется какой-то отчетный период, например, текущий год. На каждый месяц ставятся определенные цели, например: прочитать книгу N, изучить технологию Х, посмотреть запись конференции. При выполнении каждого пункта ставится отметка о выполнении. Таким образом виден прогресс программиста.
  • Поэтапное усложнение выполняемых задач. Куратор выдает задачи своему подопечному в зависимости от сложности. Хороший куратор никогда не даст задачу, которую младший программист не сможет выполнить. Спустя время, вместе с ростом профессиональных качеств программиста, повышается и сложность задач.
  • Лекции внутри компании. Прочитать лекцию коллегам может любой желающий. Работает принцип: интересна какая-то технология? Изучи её сам и расскажи другим.
  • Совместное посещение митапов. Мы следим за миром ИТ, а также за митапами в других компаниях, вместе помещаем такие мероприятия, а потом делаем краткий обзор на них.

Заключение

«Сегодня множество людей создают продукты, а не компании. Компания является живым организмом. Вы должны хотеть построить организацию, где каждый чувствует себя членом команды, знает, что компания понимает их роль» — Эстер Дайсон, американская предпринимательница, инвестор.

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

Залог успеха качества продуктов Fora Soft - команда. Во-первых, мы трепетно подходим к решению, кого к нам позвать, как видно из статистики. Во-вторых, это культура постоянного развития и совершенствования наших сотрудников. Мы пристально наблюдаем за новыми коллегами, не бросаем новичков одних, помогаем им влиться в коллектив, следим за их кодом, прокачиваем их скиллы.

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

Свою работу нужно любить. Чтобы сделать качественно, нужно получать от этого удовольствие. Нас в Fora Soft, как раз и объединяет это желание - сделать круто. На этапе собеседования мы понимаем, к одному и тому же ли мы стремимся с кандидатом. Мы никогда не бросаем нашего нового сотрудника на растерзание проектам, мы всегда рядом, где-то присмотрим, где-то подскажем, а где-то поможем.

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

450 views·8 shares