Команда
Присоединяйтесь к нашей команде Exchange и начните создавать интернет денег. Команда Exchange отвечает за все, что связано с бэкэнд-сервисами торговли, такими как движок сопоставления (matching engine), шлюзы рыночных данных, внутренние и внешние API, маржинальные системы и различные другие торговые сервисы. Команда распределена по всему миру, а обязанности разделены на подгруппы, работающие с различными технологическими стеками. Наши команды пишут код на C++, Go, Rust и Python, в зависимости от продукта, в который они вносят вклад в Kraken. Эта роль находится в подгруппе Trading Technologies, которая владеет уровнем обмена сообщениями и транспорта в основе нашей торговой инфраструктуры — построенной на Aeron для сверхнизкой задержки, надежного обмена сообщениями UDP. Вы будете работать непосредственно над системами, которые перемещают рыночные данные, ордера и торговые события по всей нашей бирже в масштабе микросекунд.
Возможность
- Разработка и поддержка основного фреймворка и ключевых программных компонентов торгового движка Kraken с фокусом на транспортном уровне обмена сообщениями на базе Aeron.
- Проектирование и реализация решений для обмена сообщениями с низкой задержкой и высокой доступностью по путям передачи unicast, multicast и IPC.
- Настройка и профилирование всего стека системы — привязка CPU, топология NUMA, обход ядра, настройка размера буфера приема — для минимизации задержек в производственной инфраструктуре.
- Создание и расширение интеграций Aeron Archive для надежного воспроизведения сообщений и сохранения потоков.
- Разработка и проектирование решений, которые снижают риски, обеспечивают безопасность и защищают как системы, так и данные.
- Написание многократно используемого, тестируемого и эффективного кода.
- Взаимодействие с кросс-функциональными командами и вклад в достижение дорожной карты продукта.
- Совместная работа в распределенной команде, использование навыков межличностного общения для эффективной коммуникации и взаимодействия с заинтересованными сторонами.
Что вы принесете
- Опыт работы с современным C++ более 5 лет.
- Предыдущий опыт работы в среде Linux с одной или несколькими из следующих областей: распределенные и/или высококонкурентные системы; системы с низкой задержкой и/или высоким объемом транзакций.
- Глубокое понимание основ систем с низкой задержкой: структуры данных без блокировок (lock-free data structures), механическая симпатия (mechanical sympathy), дисциплина кэш-линий (cache-line discipline), компромиссы между активным ожиданием (busy-spin) и режимом сна/пробуждения (park/wake).
- Опыт работы с Aeron или сопоставимыми транспортными системами обмена сообщениями (например, Chronicle Queue, ZeroMQ, LMAX Disruptor) очень желателен.
- Опыт работы с UDP-сетями, multicast и техниками обхода ядра (например, DPDK, RDMA) является большим плюсом.
- Знакомство с SBE (Simple Binary Encoding) или аналогичными форматами сериализации без копирования (zero-copy) является плюсом.
- Опыт профилирования и оптимизации кода (CPU, память, сеть) — perf, flamegraphs, VTune или эквиваленты.
- Высокий уровень владения Python, Rust и SQL настоятельно рекомендуется.
- Демонстрируемое знание типов ордеров, торговых систем и финансовых продуктов очень желательно.
- Знакомство с криптовалютами/блокчейном очень желательно.
- Проактивный настрой с возможностью расставлять приоритеты задач и соблюдать сжатые сроки.
- Степень бакалавра в технической или количественной области.