Как найти и нанять разработчика на Ruby

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

Ruby и Ruby on Rails. Что это и для чего?

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

Ruby on Rails — или «рельсы» в среде программистов — фреймворк для Ruby для разработки веб-приложений. Язык имеет очень простую семантику и довольно низкий порог входа, а фреймворк существенно ускоряет и упрощает программирование. Как результат — программист не “изобретает велосипед” так может использовать набор готовых решений под наиболее популярные задачи.

Почему Ruby популярен и востребован

Если вкратце, то язык ориентирован именно на разработчиков. Писать на нем быстро и легко. Мы выбираем его, потому что:

  • На Ruby легко программировать финансовую и бизнес-логику. 
  • Ruby, как и Ruby on Rails— opensource-проекты с растущим сообществом программистов. Вы можете применять готовые решения, копировать отдельные функции и вносить изменения под свои нужды.
  • Ruby не заточен под отдельную сферу бизнеса или функционала, спектр возможностей для его применения крайне широк.
  • Ruby экономит время, затраченное на разработку. Ruby on Rails — экономит его ещё больше. Например, одна и та же задача решается 100 строками кода на Java и всего 10-ю строчками на Ruby. 
  • Благодаря системе динамической типизации код получается компактнее и читаемее. 
  • Продуманный синтаксис, благодаря которому код легко писать. Как говорят наши разработчики, писать код на Ruby и RoR — это как говорить на английском.
  • Благодаря активному сообществу и core-команде язык постоянно развивается и совершенствуется. 

У Ruby есть и недостатки, которые стоит учитывать при выборе языка в свой стек. Во-первых, Ruby может быть гораздо более требовательным к ресурсам и памяти, чем конкурирующие с ним языки. Во-вторых, он менее популярный, чем его конкуренты PHP или Python: программиста на Ruby уровня Middle+ найти достаточно трудно, и стоят такие разработчики дороже. 

Где используют Ruby и Ruby on Rails

Одним из преимуществ Ruby мы называли широкий спектр его применения. Это действительно так. Среди известных проектов на Ruby: 

  • Github — репозиторий для разработчиков
  • Twitter — социальная сеть (был написан на Ruby в первые годы работы)
  • Basecamp — сервис для командной работы и управления проектами
  • Goodreads — соцсеть для любителей читать
  • Airbnb — сервис аренды жилья
  • SoundCloud — сервис для прослушивания музыки

Примеры наших проектов, написанных на Ruby:

  • В финансовой сфере:
    Cryptopay — сервис для платежей в криптовалюте;
    Adara.io — сервис для обмена токенами;
  • Ритейл, агрегаторы:
    Machinio — агрегатор предложений о продаже сельскохозяйственной техники;
    Fresh Auto — ERP-система для автодилера;
    iGooods — приложение для доставки продуктов. Для клиентов, для курьеров, для агентств;
    Authentica — портал для оптовых поставок косметического оборудования и связи салонов красоты с поставщиками;
  • Медиа:
    WTCC Premium TV — приложение для трансляции гонок.

Где искать Ruby-разработчиков?

  • Cайты с вакансиями и резюме — hh, мой круг

Если вы ищете разработчика впервые, стоит начать именно с изучения других вакансий на Ruby и RoR-программистов. Так вы поймете, какие навыки востребованы, и сможете оценить, сколько стоят хорошие разработчики.

  • Чаты и мессенджеры

В основном сообщество сейчас живет в телеграме. Два наиболее крупных канала: rubyjob — канал с вакансиями и rubylang — чат программистов, где можно разместить вакансию. У Ruby очень активное сообщество, и действующий чат или канал можно найти всегда.

  • Конференции

Где ещё искать хорошего Ruby-разработчика, как не в толпе из нескольких сотен Ruby-программистов? Если вы ищете разработчика или целую команду на длительный срок, имеет смысл стать партнёром или спонсором конференции, поставить свой стенд и увеличить охват аудитории.

  • Обратиться к специалистам по рекрутингу

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

  • Отдать проект на аутсорс

Один из самых непривычных для многих бизнесменов способ. Казалось бы, один или несколько программистов работают на вас, но числятся в аутcорс-компании, и вы платите компании, а не им. Если выбрать правильное агентство, вы гарантированно получите квалифицированного специалиста, вам не придется самому читать такие статьи, как эта, и тратить время на собеседования. А ещё вам не нужно будет думать о менеджменте проекта: вы получите уже сработавшуюся команду, которой будет управлять опытный тимлид.

  • Позвать в команду разработчиков из аутстафф-агентства

Аутстафф часто заказывают, когда нужно усилить уже существующую команду разработчиков, потому что на ближайшее время вырос объём задач. Управлять работой по проекту по-прежнему будет ваша компания, агентство просто выделит вам на время своих разработчиков. Ещё есть вариант, когда компания арендует тимлида или CTO, который придет в инхаус-команду и отладит там процессы.

Что обязан знать RoR-программист и как его об этом спросить?

Как понять, что перед вами грамотный специалист? Первое — посмотреть на список навыков в его резюме. Второе — дать тестовое задание. Третье — провести собеседование. Ниже приводим ряд вопросов, которые стоит задать кандидату уровня middle или senior, чтобы понять, насколько он ему соответствует. 

На собеседовании попросите кандидата ссылку на профиль Gitlab или Github. Если его нет, расспросите про отношение кандидата к OpenSource или спросите примеры написанного им кода (возможно они хранятся в другом месте).

Предполагается, что разработчик знает, как настроить рабочее окружение — набор средств для упрощения разработки. Например: IDE, редакторы кода, специализированные дополнения для браузера, графические git- и sql- клиенты. Чтобы проверить компетенции, спросите, сколько времени у него уходит на объедение git-веток? Попросите перечислить список инструментов, которые использует для ускорения работы (технологии, которые составляют рабочее окружение). Если использует всего пару — значит, довольно неопытный разработчик.

Умеет проводить автоматическое тестирование. Уточните, как он проводит автоматическое тестирование? Какие сложности возникают при этом?

Умеет рефакторить код — переписывать его с целью улучшить быстродействие и логику. Задать вопрос: какой у него опыт в рефакторинге кода? Какие наиболее частые ошибки встречались у других программистов, которые ему приходилось рефакторить и какие решения он применял?

Умеет работать с базами данных. Спросите, с какими типами баз данных он работал? Что бы выбрал для решения нашей задачи — одну из реляционных баз или документоориентированных? Почему? Попросите рассказать, как бы оптимизировали базу данных и запросы к ней?

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

Как легче всего нанять Ruby-разработчика?

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

Например, у вас уже есть созданный на Ruby проект и он нуждается в глобальном рефакторинге. У вас в команде есть один фронтенд- и один бэкенд-разработчик, которые справляются со всеми операционными задачами, но у них не остается времени на рефакторинг. Весь процесс рефакторинга по расчётам может занять два месяца. Но вам нужно за месяц. Тогда вам потребуется UX-дизайнер для разработки нового интерфейса и два разработчика на Ruby, чтобы успеть.

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

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

Инхаус-команда, аутсорс или аутстафф?

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

Аутстафф — это когда вы обращаетесь в агентство, которое предоставляет разработчиков в вашу команду. Они работают в команде с вашими текущими программистами, но получают зарплату у агентства. А вы платите агентству за «аренду» разработчиков. Аутсорс — это полная передача всех работ по разработке проекта в агентство.

Аутсорс или аутстафф — в чем разница?

 

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

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

 

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

Как выбрать компанию разработчика

  • Первое, на что стоит обратить внимание, — участвует ли агентство в митапах, конференциях или других мероприятиях по своему профилю.
  • Второе — есть ли кейсы, похожие на те задачи, которые нужно решить вам.
  • Третье — отзывы других компаний, которые уже работали с агентством. Если нет отзывов на сайте, запросите их. Если нет вообще — аккуратней.
  • Четвёртое — попросите шаблон договора. В идеале он должен гарантировать вам уровень разработчика middle или выше, плюс там должны быть прописаны штрафы за срыв сроков, за некачественное выполнение задачи, за плохой код. Вы должны быть в безопасности.
  • Пятое — обратите внимание на список услуг и возможностей. Маленькие агентства обычно предоставляют только один вид разработчиков и один тип оплаты. Более крупные могут предложить разработчиков из разных сфер (backend-, frontend-разработка, аналитика, дизайн)и технологий (ruby, python, golang, rust, javascript, typescript, etc.), по одному или целой командой, в том числе с тимлидом или техническим директором.

Процесс найма Ruby разработчика

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

Как начать работать с нами?
01
Напишите нам
Поделитесь своей идеей, техническими требованиями и важными деталями
02
Мы обсудим проект
Разработчики предложат решение вашей задачи, а менеджеры подготовят расчёт
03
Выберем формат работы
Мы расскажем о разных моделях работы команды и вашего участия в проекте
04
Составим roadmap проекта
Определим ключевые шаги и сформируем дорожную карту разработки проекта
05
Выделим команду
Найдём специалистов нужного уровня и подготовим их к работе над проектом
06
Подпишем документы
Как только мы определимся с условиями и деталями, подписываем контракт и стартуем
07
Начнём работу
Команда начнёт работу и будет держать вас в курсе продвижения проекта к реализации

Расскажите о вашей задаче, и мы найдём способ её решить

Наша миссия — не просто предоставить экспертизу отдельного специалиста, а решить бизнес-задачу клиента. Мы будем рады поделиться своей экспертизой в Ruby и обеспечить грамотный менеджмент — напишите нам, чтобы обсудить ваш проект.

 

Будем на связи
Прикрепить файл
Максимальный размер файла: 2 МБ.
Допустимые типы файлов: jpg jpeg png txt rtf pdf doc docx ppt pptx.