IMC

Software Engineer - Java

IMC Mumbai City, Maharashtra, India

Financial Services · 1,001-5,000 employees

9 h ago
java Mid (2-5 yrs) Full-time India
Create a free account to apply — email only, no card. You can also save this posting or score it against your profile with AI.

About the role

Design, build, and operate the Java backend for a distributed job scheduling platform while managing Kubernetes-based research workloads. Collaborate with global teams to develop APIs, build event-driven services, and ensure system performance through monitoring and root-cause analysis.

What they look for

Java Kubernetes Docker Python Distributed systems gRPC Protobuf Kafka Linux SQL NoSQL Prometheus Grafana Bash S3 Concurrency

Requirements

Requires 3+ years of professional Java development experience and 2+ years of hands-on experience with Kubernetes and Docker. Candidates must have a strong understanding of distributed systems, messaging systems like Kafka, and proficiency in Python.

Full description

We are seeking a driven Java engineer to join our global research platform team in Mumbai. The team builds and operates the compute and data platform that powers all of IMC's quantitative research: a large-scale Kubernetes-based research cluster, a distributed job scheduling platform used by every trading and research team, and the market-data and dataset services that feed research on it. Mumbai runs one of the platform's regional production deployments, and you'll collaborate closely with platform colleagues in Amsterdam, Chicago and Sydney.

Your Core Responsibilities:

  • Design, build and operate the Java backend of our distributed job scheduling platform: the job controller and state machine, scheduling integrations, resource and cost tracking, and the failure-recovery machinery that keeps research workloads running at scale
  • Develop gRPC/protobuf APIs consumed by Python, Java and C++ clients across the firm
  • Build event-driven services on Kafka for job lifecycle tracking, data lineage, and dataset orchestration
  • Work hands-on with Kubernetes at scale: pod scheduling, fair-share queueing, preemption and multi-cluster placement

• Instrument, monitor and firefight production systems, and drive root-cause analysis of performance bottlenecks

• Support and consult research users in the India office

Your Skills and Experience:

  • 3+ years of professional Java development experience (Java 17+, Maven/Gradle, strong grasp of concurrency and JVM performance)

• 2+ year of hands-on experience with Kubernetes and Docker (building on the K8s API is a strong plus)

• Comfortable developing in Python; our client libraries and research users are Python-first, and you'll work on both sides of the API

  • Solid understanding of distributed systems fundamentals: state machines, retries/idempotency, event-driven architectures, consistency trade-offs
  • Experience with workload scheduling or batch/compute orchestration systems (e.g. Kubernetes schedulers, Slurm, YARN, Kueue, Ray, Airflow)
  • Experience with messaging/streaming systems such as Kafka
  • Working knowledge of NoSQL and time-series/SQL databases (e.g. MongoDB, PostgreSQL)
  • Experience with gRPC/protobuf or similar RPC frameworks is a plus
  • Strong Linux fundamentals and scripting (bash, Python)
  • Experience with monitoring stacks (Prometheus, Grafana, alerting) and comfort operating what you build
  • Demonstrated ability to troubleshoot across the stack from application code through Kubernetes to network and storage
  • Exposure to object storage (S3) or high-performance data formats (Parquet, Iceberg)

About Us

IMC is a research-driven trading firm where quantitative modeling, machine learning, and engineering shape how modern markets are traded. A stabilizing force in markets since 1989, we provide liquidity across trading venues, delivering the best outcome in value and risk management to investors. Using our own technology and capital, we build proprietary systems and algorithms that operate across global markets. Our researchers, traders, and engineers work as a collective, combining rapid experimentation, advanced infrastructure, and real-time feedback to turn insight into execution and execution into advantage.

Similar roles