Должность: Инженер-программист (Java) - Global Research Platform
Местоположение: Мумбаи / Мумбаи, Индия
Мы ищем целеустремленного Java-инженера для присоединения к нашей команде Global Research Platform в Мумбаи. Команда создает и эксплуатирует вычислительную платформу и платформу данных, которая обеспечивает все количественные исследования 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 года, мы обеспечиваем ликвидность на торговых площадках, обеспечивая наилучшие результаты в плане стоимости и управления рисками для инвесторов. Используя наши собственные технологии и капитал, мы создаем проприетарные системы и алгоритмы, которые работают на глобальных рынках. Наши исследователи, трейдеры и инженеры работают как единое целое, объединяя быстрое экспериментирование, передовую инфраструктуру и обратную связь в реальном времени, чтобы превратить идеи в исполнение, а исполнение — в преимущество.