Java Software Developer
IMC TradingAbout the Role
IMC's Mumbai-based Strategy Development teams build a wide variety of applications, systems and tools, including trading algorithm implementations, option pricing and volatility calculations, simulation frameworks, market risk applications, and trade analysis and visualisation tools for traders. Java is the primary language; strong engineers from other language backgrounds who are keen to pick it up are welcome.
You will work closely with traders, quantitative researchers and engineers in Mumbai and across IMC's global offices, taking ownership of end-to-end high-impact product development - from requirements gathering through to production deployment and monitoring.
- Collaborate with traders and quantitative researchers to understand trading requirements and translate them into robust technical solutions.
- Design, build, test and deploy high-performance Java systems and applications.
- Take end-to-end ownership of projects, including requirements gathering, architecture, implementation, deployment, monitoring and production support.
- Write reliable, testable and maintainable software while making thoughtful trade-offs between latency, throughput, scalability, simplicity and speed to market.
- Collaborate with engineering teams across IMC and mentor junior engineers.
Responsibilities
- Collaborate with traders and quantitative researchers to understand trading requirements and translate them into robust technical solutions.
- Design, build, test and deploy high-performance Java systems and applications.
- Take end-to-end ownership of projects, including requirements gathering, architecture, implementation, deployment, monitoring and production support.
- Write reliable, testable and maintainable software while making thoughtful trade-offs between latency, throughput, scalability, simplicity and speed to market.
- Collaborate with engineering teams across IMC and mentor junior engineers.
Requirements
- Strong academic background in Computer Science or a related field
- 3-6 years of professional experience as a Software Engineer
- Strong programming skills in a modern language such as Java, C++, Python or Kotlin
- Solid understanding of computer science fundamentals - algorithms, complexity analysis, data structures, garbage collection and concurrency
- Ability to work independently and take full ownership of the solutions you build and deliver
- Natural problem-solver and team player; curious, adaptable and proactive in a fast-paced environment
- Excellent written and verbal communication skills; fluency in English
- Interest in financial markets / trading