Описание проекта
Крупный американский хедж-фонд ищет опытных C++ разработчиков с опытом работы в финансовой сфере для помощи в работе над нашими глобальными торговыми системами и для помощи в их портировании на новую распределенную платформу. Это смешанная кодовая база, состоящая из устаревшего C++98 и современного C++17/20, которая должна перейти от большой монолитной системы к распределенной платформе.
Обязанности
- Торговые системы требуют очень низких задержек и оптимизированного C++, который является надежным и хорошо протестированным.
- Команда работает по еженедельным спринтам, с ежедневными "стендапами" через zoom с разработчиками со всего мира.
- Мы фанатики C++, используем git, Jira, Gitlab, cmake, Nix, gcc, clang и т.д.
- Мы любим людей, которые "близки к железу" и понимают, как на самом деле работают компьютеры "под капотом", например, что такое промах кэша (cache miss), что такое промах TLB (TLB miss), каковы затраты на ложное предсказание ветвлений (branch misprediction), как избежать переключения контекста ядра (kernel context switches) и т.д.
- Мы также любим людей, которым нравятся современные финансовые рынки и которые хотят повлиять на их функционирование, повышая эффективность во всем мире.
- Нам нравится изучать языки программирования и их эволюцию, знать, куда движутся C++23 и C++26, и в целом быть в курсе технологий.
Обязательные навыки
- C++98 до C++11 минимум, предпочтительно опыт работы с 14, 17 и 20
- Сильные навыки в области алгоритмов и разработки программного обеспечения
- Хороший письменный и устный английский язык
- Способность безопасно и эффективно рефакторить код
- Сильные навыки модульного тестирования (unit testing)
- Linux
- gdb
- Готовность сделать все необходимое для выполнения работы
- Смирение и способность хорошо воспринимать конструктивную критику код-ревью
- Готовность проводить конструктивные код-ревью для других
Желательные навыки
- Знание различных библиотек с открытым исходным кодом, таких как Boost, gtest, Abseil, DPDK и т.д.
- Сmake
- Опыт работы с торговыми системами для акций, фьючерсов, FX или сырьевых товаров
- Опыт работы с рыночными протоколами, такими как FIX, ITCH или OUCH
- Опыт SBE в обработке рыночных данных
- Опыт работы с шинами сообщений, такими как Kafka, Pulsar или Aeron
- Опыт работы с распределенными системами
- Интенсивное метапрограммирование на шаблонах (template meta programming), особенно в современном стиле C++17 и новее
- Опыт CI/CD и DevOps, особенно с Gitlab
- Знакомство с Python или Java
Языки
- Английский: B2 Upper Intermediate