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
Контакт
Москва, Большой Саввинский переулок, д. 11,
+7 (495) 646-81-11,
8 (800) 707-29-20