October 1, 2019

Senior scala backend developer

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

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

от 3 500 EUR

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

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

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

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

SCALA akka Java JVM protobuf netty akka streams

Компания

EXANTE

Контакт

https://exante.eu/ru/

Москва, Большой Саввинский переулок, д. 11,

+7 (495) 646-81-11,

8 (800) 707-29-20