iTechArt logo

Что нужно знать о Scala в iTechArt: коллеги об одном из самых интересных языков программирования

Development & QA

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

В сегодняшней статье рассказываем о команде Scala в iTechArt, об интересных задачах и технологических стеках, о перспективах и возможностях роста. Своими впечатлениями и эмоциями делятся наши коллеги, Олег Виноград, Глеб Стрельцов и Алмат Жагыпаров.

Наши собеседники
Виноград Олег.jpg

Олег Виноград

Software Engineer в компании iTechArt

Работает около 2-х лет.

Стрельцов_Глеб_блог.jpg

Глеб Стрельцов

Team Manager команды Scala-разработчиков

Работает в компании 4 года.

Жагыпаров Алмат.jpg

Алмат Жагыпаров

Software Engineer в компании iTechArt

Присоединился к команде в октябре 2021 года.

Сразу ли пришел на позицию Scala-разработчика или начинал с другой? 

ОЛЕГ ВИНОГРАД: Заходил в iTechArt в роли Java-разработчика, но со временем начал понимать, что не хватает структурированности, нативных языковых трансформаций, возможности писать адаптивный расширяемый код.

ГЛЕБ СТРЕЛЬЦОВ: Начинал работу в компании как Java-разработчик. Но мне сразу хотелось чего-то нового, немного подустал от легаси-проектов на Java, и потому искал возможности поработать с интересным доменом, современными технологиями. Быстро заинтересовался возможностями экосистемы языка Scala.

АЛМАТ ЖАГЫПАРОВ: Нет, не сразу, так как в моей стране основной стэк Back-end разработчиков — это Java и Spring. Имея опыт на Java, поступил на стажировку по Scala: до знакомства с этим языком вообще не знал, что такое «функциональное программирование». Scala стала для меня чем-то новым и интересным. Так и перешел, как и большинство разработчиков, после Java на Scala.

На каких проектах работают Scala-разработчики в компании?

ГЛЕБ СТРЕЛЬЦОВ: В моем подразделении сейчас несколько проектов. Один из них, на котором работаю непосредственно сам, связан с Security Big Data платформой. Основная его идея — предоставить конечному клиенту в лице другой компании полную картину того, как у него обстоят дела с кибербезопасностью. С этой целью мы выкачиваем все возможные данные из окружения заказчика по устройствам, аккаунтам, софту, сети и другим инструментам.

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

Заказчик у нас из Лондона. Не скажу, что слишком крупный, но уже перерос стадию стартапа. Команда клиента развивается быстро — сегодня там работает около 50 инженеров в различных командах. Есть хорошие перспективы для дальнейшего роста. В частности, с 2022 года мы планируем сформировать еще несколько команд. Задачи очень нравятся, мы много разрабатываем с нуля, при этом, стараемся улучшить существующую кодовую базу. На мой взгляд, с точки зрения качества кода у нас дела обстоят очень неплохо, и важно, что мы постоянно стараемся быть лучше. А заказчик дает возможность проявлять инициативу. К примеру, сейчас наши команды разрабатывают новую версию Data Platform на Cloud Native рельсах на AWS. Хотим отойти от использования Hadoop-экосистемы в будущем полностью. Поэтому тех, кому интересно в этой области прокачаться или задействовать свои знания и навыки, будем ждать в команде!

С точки зрения Scala, мы используем в этом проекте как Big Data стек — Spark, Hadoop-технологии, AWS сервисы, Hbase, Phoenix, Redshift, PostgreSQL, S3, так и Backend — FP, Cats + Tagless Final, Http4s, Play, Kafka, Doobie/Slick. 

Второй проект в подразделении связан с FinTech, здесь в основном используется стек на Akka. 

Еще один проект связан с Advertising. В центре находится DSP (Demand Side Platform), платформа для обработки и обмена рекламой. DPS используют маркетологи, различные агенства для покупки медийной, мобильной, видео-, аудио- и поисковой рекламы. Платформа позволяет пользователям платформы участвовать в рекламных ставках через биржу объявлений. Размер выигрышной ставки определяется аукционом, победителям которого достаются лучшие рекламные места. 

На проекте в большей степени используется Scala на Big Data стеке: Spark, Kafka, ClickHouse, AWS.

АЛМАТ ЖАГЫПАРОВ: Я работаю на Fintech-проекте. Это компания со штатом в размере более 200 сотрудников. Их основной продукт — платформа, предоставляющая каждому сотруднику в Америке комфортный доступ к пенсионному счету. Ее цель — ограничить пользователей от проблем, с которыми сталкиваются финансовые консультанты и компании, работая с устаревшим ПО для пенсионных выплат, не соответствующим требованиям внутренних экосистем современных компаний. Основной стек — Scala, Akka, Slick, PostgreSQL, Flyway, AWS (SQS, S3, SNS), Docker, Jenkins.

Технологии на Scala-проектах

А вообще, какой технологический стек чаще используете в работе?

ГЛЕБ СТРЕЛЬЦОВ: Из того, что мне известно, сейчас есть подобного плана проекты в плане технологий:

  • Backend: Cats + Tagless Final, Http4s, Doobie, Slick, Quill, Circe, ZIO, Play, Akka, Kafka.
  • Big Data: Spark, Hadoop-технологии, Cloud Native решения из AWS, GCP или Azure, различные технологии хранения данных, Kafka.

Кроме того, сейчас приходит достаточно много новых проектов, несколько находится на стадии pre-sale. По этой причине, мы постоянно в активном поиске Scala-специалистов. 

Как развивают и совершенствуют свои навыки Scala-разработчики в iTechArt? 

ОЛЕГ ВИНОГРАД: Для этого у нас есть dev2dev, как внутренние, так и проектные конференции. Scala комьюнити как никакое другое полно энтузиастов и адептов, как оказалось!

АЛМАТ ЖАГЫПАРОВ: Мы стараемся помогать друг другу и обмениваемся опытом в разработке.

ГЛЕБ СТРЕЛЬЦОВ: Еще покупаем онлайн-курсы для наших разработчиков, организуем приобретение билетов на крупные ивенты, где выступают известные спикеры из Scala Community, самостоятельно проводим ивенты, связанные с knowledge sharing, где наши ребята могут выступать в роли спикеров.

Внутреннее обучение специалистов

Есть ли смысл переходить на Scala с другого языка разработки?

ОЛЕГ ВИНОГРАД: Хороший вопрос. Для меня — очевиднейшее да. Но, как показала практика, не у всех такие же мотиваторы, как и у меня.

Могу сказать так: если вы уважаете математику, комбинаторику и так же, как и я, не понимаете, почему такие мощные концепции до сих пор не являются нативной частью повседневных языков — Java, C#, JS, — то вам понравится. Иначе будет сложнее.

ГЛЕБ СТРЕЛЬЦОВ: Абсолютно. Много ребят, которых я знаю, пришли в Scala как раз из других языков. В большинстве случаев это была Java. И сейчас они не хотят менять язык программирования.

АЛМАТ ЖАГЫПАРОВ: Думаю, все зависит от личных предпочтений разработчика и от потребностей региона, в котором он собирается работать. Но, с другой стороны, если в твоем городе мало компаний, заинтересованных в Scala-специалистах, но тебе очень интересна сфера, можно попробовать поискать удаленные вакансии.

На твой взгляд, какие перспективы у Scala-разработчиков в iTechArt?

ОЛЕГ ВИНОГРАД: В последнее время Scala-департамент движется очень большими шагами, и Scala Hiring Week тому подтверждение. В компанию приходит все больше и больше заказчиков за Scala инженерами. Спрос на Scala увеличивается ровно пропорционально интересу к функциональной парадигме и проблемам больших данных, с которыми сейчас сталкивается, грубо говоря, каждая вторая компания.

АЛМАТ ЖАГЫПАРОВ: Штат расширяется каждый месяц, приходят новые опытные разработчики. У меня лично большие ожидания от работы в iTechArt!

ГЛЕБ СТРЕЛЬЦОВ: У нас Scala направление сейчас развивается довольно бурными темпами — много доступных проектов, при этом, не хватает инженеров, чтобы покрыть спрос на международном рынке. Большинство клиентов приходит из Северной Америки и Западной Европы, где технология наиболее активно развивается.

Считаю, в iTechArt интересно будет работать как ребятам, которые хотят набраться опыта и новых знаний, так и опытным ребятам — есть обилие интересных проектов, которые ждут крутых и неравнодушных разработчиков. Кроме этого, есть много опций для тех, кто хочет попробовать свои силы в руководстве и управлении командой. Поэтому обязательно приходите!