Senior Scala Backend Developer

от 3 500 EUR на руки

Откликнуться
Вы откликаетесь на вакансию в другой стране

Страна размещения вакансии — Украина.

В резюме не указано, что вы готовы туда переехать.

Все равно откликнутьсяНе откликаться
Смотреть отклик

Требуемый опыт работы: 3–6 лет

Полная занятость, удаленная работа

EXANTE — международная инвестиционная компания. Наши продукты активно используются по всему миру.

Чем предстоит заниматься: поддержка и развитие realtime платформы EXANTE. Наша компания предоставляет доступ к более чем 50 рынкам по всему миру, подключения к которым предстоит поддерживать. У нас будет много интересных архитектурных задач, которые связаны с улучшением масштабируемости и повышением отказоустойчивости наших сервисов, в технической реализации которых мы не будем вас ограничивать.

100% наших модулей написаны на Scala. В основном для разработки мы используем библиотеку Akka, в частности akka-streams и persistent actors. Но так же у нас есть monix, rxjava.

Подробнее о том, с чем предстоит работать:

  • Микросервисная архитектура. Наша система содержит более 100 модулей, каждый из которых представляет из себя полностью независимый сервис
  • Event-driven архитектура. Все наши сервисы взаимодействуют друг с другом при помощи асинхронного обмена бинарными (protobuf) сообщениями через TCP-туннель. Также мы реализовали собственную write-ahead logging (WAL) библиотеку на основе Apache Kafka и на данный момент хотим расширить её до хранилища распределённого состояния
  • Высоконагруженная low-latency система. Наши клиенты - это профессиональные биржевые игроки, которые предпочитают автоматизированную высокочастотную торговлю (HFT), поэтому к скорости работы системы предъявляются строгие требования
  • При разработке сервисов всегда нужно помнить о неравномерном характере нагрузок в сфере финансов. В один момент нагрузка может возрасти в сотни раз. Поэтому мы уделяем особое внимание мониторингу и отказоустойчивости системы, а также возможности горизонтально масштабироваться каждого модуля в системе

Требования:

  • Отличное знание JVM. Опыт отладки и оптимизации приложений, поиск утечек памяти и узких мест, GC tuning, thread dump analysis, умение и желание разбираться со сложными production проблемами
  • Знание различных моделей многопоточности (blocking, CAS, Future/Promise, Actors)
  • Опыт работы с reactive-streams библиотеками (akka-streams, monix, rxjava etc)
  • Знание основных структур данных и базовых алгоритмов
  • Понимание основных идей функционального программирования (рекурсия, lazyness, pure functions)
  • Знание TCP протокола, умение отлаживать сетевые взаимодействия. Опыт работы с сетевыми JVM библиотеками (Netty, Akka IO, Aeron)
  • Хорошее знание реляционных СУБД (postgres). Умение профилировать и находить узкие места в запросах

Плюсом будет:

  • Опыт написания торговых ботов или HFT-приложений
  • Понимание предметной области
  • Опыт поддержки распределённой высоконагруженной системы
  • Опыт использования в production окружении библиотек akka, netty

Мы предлагаем:

  • Удаленная работа
  • В перспективе возможность роста до тимлида/архитектора
  • Годовые бонусы
  • Ежегодный пересмотр заработной платы
  • Адекватный менеджмент: у нас действительно учитывают интересы команды
  • Гибкий график: ориентируемся на выполнение задач, а не затраченное время.

Ключевые навыки

SCALAakkaJavaJVMprotobufnettyakka streams

Вакансия опубликована 7 октября 2019 в Донецке

Смотреть отклик
Написать сопроводительное письмоПисьмо отправлено

Сопроводительное письмо к отклику