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. Ми плануємо запуск альтернативних способів розрахунку за товари, які дозволять оптимізувати вартість і конверсію платежів, а також забезпечити абсолютно новий рівень якості клієнтського досвіду.
Про команду:
5 Scala engineers, 2 Front-End engineers, 2 QA engineers, 2 DevOps engineers, Project і Product manager.
Технічний стек проекту, що вже використовуємо, що плануємо:
Мікросервісна архітектура зі спілкуванням через REST API, Kafka і RabbitMQ
Scala в pure FP стилі, із застосуванням бібліотек Cats і ZIO
SBT в якості системи збирання
HTTP layer: Play framework, akka-http, sttp, http4s
Бібліотеки для взаємодії з БД: slick, doobie
БД: PostgreSQL, TimescaleDB, Elasticsearch
CI/CD: GitOps з використанням GitlabCI, ArgoCD, Docker, Helm и Kubernetes в Google Cloud
Моніторинг: Kamon, Prometheus, Grafana, Kibana
Здебільшого, всі задачі націлені на:
— Збільшення кількості інтеграції з банками, платіжними шлюзами, зовнішніми провайдерами онлайн платежів.
— Розробку власного білінг рішення для автоматичного взаєморозрахунку з Продавцями маркетплейса Prom.ua та Rozetka.ua, банками, яким будуть користуватися більш 50 000 + продавців.
— Розробку власного рішення для емісії карт і грошей спільно з банками партнерами.
— Удосконалення бек-офісу платіжної системи для перегляду аналітики, генерування звітів, надання інструментів для підтримки.
— Розробку рішень для систем лояльності, бонусів і кеш беків.
Чим цікаві ці задачі з технічного боку:
— Відсутністю legacy, новий проект
— Можливістю гнучко обирати технології та підходи розробки
— Використанням сучасних технологій для забезпечення стабільності і безпеки сервісів
— Проектуванням сервісів з урахуванням вимог зовнішніх інтеграцій
Що важливо для цієї ролі:
— Володіння навичками розробки та підтримки розподілених додатків
— Розуміння принципів роботи СУБД і досвід використання хоча б однієї з них
— Досвід або бажання розібратися в тому як писати на Scala в pure FP стилі
— Прагнення покривати код тестами
— Відсутність страху перед різноманітністю бібліотек і підходів до проектування додатків
— буде плюсом — досвід роботи в Фінтех проект (банку, платіжній системі)
Продакт інженерний підхід до вирішення задач: ми продуктова команда, нам важливо, щоб розробники були продуктово орієнтовані. Це означає, що розробник не просто виконує поставлене завдання, а розуміє проблеми бізнесу. І може запропонувати більш оптимальне рішення, якщо таке існує, або показати, що ця задача не має цінності.
На технічній співбесіді з вами нам хотілося б обговорити:
— Scala core and pure FP
— JVM memory and thread model
— Data structures and patterns for concurrent and parallel computing in Scala
Як у нас проходить підбір на дану позицію?
1. Ваше резюме розглянуть технічні фахівці. (розгляд резюме протягом 5 діб)
2. Якщо резюме буде схвалене, ми домовимося про online-знайомство. Ми обговоримо проект, ваш досвід і відповімо на питання. Після чого разом вирішимо, чи продовжимо спілкування вже на технічній співбесіді онлайн (30 хвилин)
3. Технічна співбесіда (90 хвилин)
4. Фінальна співбесіда з СЕО та продакт менеджером проекту (60 хвилин)