Senior scala backend developer

з/п не указана

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

Страна размещения вакансии — Беларусь.

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

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

Требуемый опыт работы: 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

Вакансия опубликована 20 сентября 2019 в Минске

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

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

Похожие вакансии