Мы ищем целеустремленного инженера Java для присоединения к нашей глобальной команде платформы исследований в Мумбаи. Команда создает и эксплуатирует вычислительную и дата-платформу, которая поддерживает все количественные исследования IMC: крупномасштабный кластер на базе Kubernetes, распределенную платформу планирования задач, используемую каждой торговой и исследовательской командой, а также сервисы рыночных данных и наборов данных, которые питают исследования на этой платформе. Мумбаи управляет одним из региональных производственных развертываний платформы, и вы будете тесно сотрудничать с коллегами по платформе в Амстердаме, Чикаго и Сиднее.
Ваши основные обязанности:
- Проектировать, создавать и эксплуатировать Java-бэкенд нашей распределенной платформы планирования задач: контроллер задач и конечный автомат состояний, интеграции планирования, отслеживание ресурсов и затрат, а также механизмы восстановления после сбоев, которые обеспечивают работу исследовательских нагрузок в масштабе
- Разрабатывать gRPC/protobuf API, используемые клиентами на Python, Java и C++ по всей компании
- Создавать событийно-ориентированные сервисы на Kafka для отслеживания жизненного цикла задач, происхождения данных и оркестрации наборов данных
- Работать непосредственно с Kubernetes в масштабе: планирование подов, очереди с честным распределением ресурсов, прерывание и размещение в нескольких кластерах
-
Инструментировать, мониторить и устранять неполадки в производственных системах, а также проводить анализ первопричин узких мест в производительности
-
Поддерживать и консультировать пользователей исследований в офисе в Индии
Ваши навыки и опыт:
- Более 3 лет профессионального опыта разработки на Java (Java 17+, Maven/Gradle, глубокое понимание параллелизма и производительности JVM)
-
Более 2 лет практического опыта работы с Kubernetes и Docker (опыт разработки на API K8s является большим плюсом)
-
Уверенное владение Python; наши клиентские библиотеки и пользователи исследований преимущественно используют Python, и вы будете работать с обеих сторон API
- Твердое понимание основ распределенных систем: конечные автоматы состояний, повторные попытки/идемпотентность, событийно-ориентированные архитектуры, компромиссы в согласованности
- Опыт работы с системами планирования нагрузок или системами оркестрации пакетных/вычислительных задач (например, планировщики Kubernetes, Slurm, YARN, Kueue, Ray, Airflow)
- Опыт работы с системами обмена сообщениями/потоками данных, такими как Kafka
- Рабочие знания NoSQL и баз данных временных рядов/SQL (например, MongoDB, PostgreSQL)
- Опыт работы с gRPC/protobuf или аналогичными RPC-фреймворками является плюсом
- Сильные основы Linux и навыки скриптинга (bash, Python)
- Опыт работы с системами мониторинга (Prometheus, Grafana, оповещения) и комфорт в эксплуатации созданных вами систем
- Доказанная способность устранять неполадки на всех уровнях — от кода приложения через Kubernetes до сети и хранилища
- Знакомство с объектным хранилищем (S3) или высокопроизводительными форматами данных (Parquet, Iceberg)
О нас
IMC — это торговая компания, ориентированная на исследования, где количественное моделирование, машинное обучение и инженерия формируют современную торговлю на рынках. Будучи стабилизирующей силой на рынках с 1989 года, мы обеспечиваем ликвидность на торговых площадках, предоставляя инвесторам наилучшие результаты в управлении стоимостью и рисками. Используя собственные технологии и капитал, мы создаем проприетарные системы и алгоритмы, работающие на глобальных рынках. Наши исследователи, трейдеры и инженеры работают как единое целое, сочетая быстрое экспериментирование, передовую инфраструктуру и обратную связь в реальном времени, чтобы превращать инсайты в исполнение, а исполнение — в преимущество.