Scala: как закрывать вакансии, на которые всего несколько сотен кандидатов

Scala функциональный объектно-ориентированный язык программирования, который характеризуется компактным и лаконичным стилем. Он не столь распространен, но при этом подходит для разработки сложных приложений. Стрим по поиску таких разработчиков регулярно появляется у нашей команды. Поговорили с консультантом GlobalCareer Вероникой Мироновой об особенностях подбора столь редких специалистов.

Scala-разработчиков не так много на рынке. Как вам удается регулярно находить опытных кандидатов?

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

— В Scala-разработку часто приходят из Java. А в чем различие этих языков?

В.М.: Да, верно. Scala редко бывает первым и единственным языком, на котором пишет программист. Обычно Scala-разработчик это опытный Java-разработчик. Java читабельный, но при этом весьма громоздкий, Scala же краткий и читабельный одновременно. То, что на Java занимает десять строк кода, на Scala может уместиться в одну. При этом Scala относительно легок в изучении благодаря своей функциональности.

— Какие навыки необходимы для разработки на Scala?

В.М.:  От хорошего разработчика Scala требуется понимание функциональных языков программирования, фундаментальные знания работы с JVM, коллекциями и параллельными вычислениями. Необходимо понимать, что такое функциональное программирование (ФП) и в чем его плюсы. Также важно знание других объектно-ориентированных языков программирования, таких как Java и Python. Базовые знания Spark, Hadoop и MapReduce. Опыт работы с ETL-архитектурой и с облачными платформами. Опыт работы с фреймворками, такими как Play, Аkka, Аkka-http, Аkka-streams. Знания SQL и NoSQL баз данных, асинхронного программирования.

— Различаются ли требования к навыкам Scala-разработчиков в зависимости от проектов?

В.М.:  Как правило, на Scala разрабатывают backend либо что-то, связанное с big data. Соответственно, и требования к этим направлениям различаются. В случае backend-проектов кандидату необходим набор знаний backend-разработчика: протоколы TCP, HTTP; REST, RPC и другие подобные подходы; понимание принципов построения высоконагруженных и отказоустойчивых систем; SQL и NoSQL базы данных. Обычно Scala в продакшене работает на Linux/Unix-серверах, следовательно, нужно уметь с ними работать.

В случае проектов big data стек очень широк, и в зависимости от компании, технологии могут варьироваться. Но как правило нужно знать самые распространенные инструменты big data Spark и Hadoop. Также важно понимать принципы работы распределенных вычислений. Будут плюсом базовые знания, типичные для Data Science-направления,  статистика, нейронные сети, машинное обучение и т.п.

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

— А как обстоит ситуация с опытом кандидатов?

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

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

Необходима консультация?

Оставьте заявку, и мы свяжемся с вами в ближайшее время

    Read more

    Ваша заявка успешно отправлена.

    Спасибо! Письмо с ответом будет отправлено вам на почту в ближайшее время

    Произошла ошибка.

    Пожалуйста, повторите попытку позже, или свяжитесь с нами по телефону +7 495 967-80-30