Мы небольшая компания, занимающаяся алгоритмическим трейдингом и создающая высокопроизводительную торговую инфраструктуру для криптовалютных рынков.
Наша цель — с нуля создать надёжную систему с низкой задержкой, которая объединит основные криптовалютные биржи, обрабатывая потоки рыночных данных и исполняя ордера с эффективностью на уровне микросекунд.
Основная задача С++ разработчика - создавать WebSocket- и REST-клиенты, способные обрабатывать сотни тысяч сообщений в секунду, анализировать и нормализовать рыночные данные с минимальными накладными расходами и обеспечивать более быструю доставку наших ордеров на биржи.
1.Интеграция с биржами: реализация надежных коннекторов WebSocket и REST API для крупных криптовалютных бирж с учетом их уникальных особенностей и требований.
2. Повышение производительности: оптимизация пути от необработанных сетевых данных до нормализованных рыночных обновлений с целью достижения задержек в пределах нескольких микросекунд.
3. Устойчивость к ошибкам: реализация комплексной обработки ошибок, автоматического переподключения и механизмов отказоустойчивости для работы с ненадежными API-интерфейсами обмена.
4. Мониторинг и тестирование: создание контрольных показателей для отслеживания задержек на каждом этапе, написание тестов.
5. Поэтапная оптимизация: профилирование, измерение и систематическое улучшение производительности на основе реальных производственных показателей.
Наши пожелания к квалификации:
1. Прочная основа C++: более 3 лет опыта работы с современным C++ (минимум C++17, предпочтительно C++20/23).
2. Асинхронное сетевое программирование: практический опыт работы с асинхронным вводом-выводом (Boost.Asio, epoll и т.п.). Вы понимаете разницу между блокирующими и неблокирующими операциями.
3. Управление производительностью: вы знаете, что такое строка кэша, почему распределение памяти в горячих путях — это плохо и как использовать инструменты профилирования для поиска настоящих узких мест.
4. Параллельное программирование: понимание атомарности, упорядочивания памяти и основных шаблонов без блокировок.
5. Глубокое понимание инженерного дела: вы можете реализовать потокобезопасную очередь, устранить утечку памяти и оптимизировать критический цикл
Технический стек проекта:
Языки: C++20/23 (основной), Python (инструментарий).
Библиотеки: Boost.Asio/Beast, {fmt}, Google Benchmark, Catch2/GTest.
Инструменты: Clang, GDB, Perf, Valgrind, Grafana/Prometheus.
ОС: Ubuntu 22/24 LTS.
Будущее: потенциальное внедрение Rust, обход ядра в сетях.