Про роботу
EVO в поисках Scala Software Engineer (Transition from Java/Erlang/Rust/Haskell) на финтех проект
Почему появилась вакансия:
Мы ищем хороших инженеров уровня Middle и Senior (для усиления команды) с production опытом на функциональном языке (Java, Erlang, Rust, Haskell, etc) или любом JVM-based языке и предлагаем писать на Scala в функциональном стиле.
Про проект:
Наша цель - создание простого и удобного инструмента оплаты для проектов Rozetka, Prom, Bigl, Shafa, Kabanchik. Мы планируем запуск альтернативных способов расчета за товары, которые позволяют оптимизировать стоимость и конверсию платежей, а также, обеспечить совершенно новый уровень качества клиентского опыта.
Про команду:
Product Manager, Tech Lead, 5 Scala Developers, 2 Front End Developers, 2QA, 2 DevOps, Project Manager
Технический стек проекта, что уже используем, что планируем:
- Микросервисная архитектура с общением через REST API, Kafka и RabbitMQ
- Scala в pure FP стиле, с применением библиотек Cats и ZIO
- SBT в качестве системы сборки
- HTTP layer: Play framework, akka-http, sttp, http4s
- Библиотеки для взаимодействия с БД: slick, doobie
- Используемые БД: MySQL, PostgreSQL, TimescaleDB, Elastic Search
- CI/CD: GitOps с использованием GitlabCI, ArgoCD, Docker, Helm и Kubernetes в Google Cloud
- Мониторинг: ELK, Kamon, Prometheus, Grafana
В основном, все задачи команды нацелены на:
- Увеличение количества интеграции с банками, платежными шлюзами, внешними провайдерами онлайн платежей.
- Разработка собственного биллинг решения, для автоматического взаиморасчета с мерчантами маркетплейса Prom.ua и Rozetka.ua, банками, которым будут пользоваться более 50 000+ мерчантов.
- Разработка собственного решения для эмиссии карт и денег совместно с банками партнерами.
- Совершенствование бэк-офиса платежной системы для просмотра аналитики, генерирование отчетов, предоставление инструментов для поддержки.
- Разработку решений для систем лояльности, бонусов и кеш беков.
Чем интересны эти задачи с технической стороны:
- Отсутствием legacy, новый проект
- Возможностью гибко выбирать технологии и подходы разработки
- Использованием современных технологий для обеспечения стабильности и безопасности сервисов
- Работа с реал-тайм системами.
- Требования по оптимизации времени выполнения запросов.
- Проектированием сервисов с учетом ограничений внешних интеграций.
Что важно для данной роли в проекте:
- Владение навыками разработки и поддержки распределенных приложений
- Понимание принципов работы СУБД и опыт использования хотя бы одной из них
- Опыт или желание разобраться в том как писать на Scala в pure FP стиле
- Стремление покрывать код тестами
- Отсутствие страха перед разнообразием библиотек и подходов к проектированию приложений
- будет плюсом - опыт работы в финтех проекте (банке, платежной системе)
Наш продакт инжиниринговый подход в EVO:
Команда продуктовая, поэтому нам важно чтобы разработчик был продуктово ориентирован. Это означает, что разработчик не просто выполняет поставленную задачу, а понимает проблемы бизнеса, которые решает эта задача и может предложить более оптимальное решение, если такое существует, или показать, что эта задача не имеет ценности.
На техническом собеседовании с вами нам хотелось бы обсудить:
- Scala core and pure FP
- JVM memory and thread model
- Data structures and patterns for concurrent and parallel computing in Scala
Как у нас проходит подбор и собеседования?
- Ваше резюме рассмотрят технические специалисты.
- Если резюме будет одобрено, мы договоримся о знакомстве онлайн с СТО и продакт менеджером команды. .
- Если знакомство пройдет успешно, мы договоримся о техническом собеседовании с нашими разработчиками.
- После технического собеседования — финал с СEO/СТО и продакт менеджером проекта.