Technology is at the heart of everything we do at IMC. Our innovative proprietary software makes millions of trading decisions every day. But that’s only part of what makes IMC tick. Behind every trade, behind every technological breakthrough, are our people – including our talented team of engineers. Here, we share an insight into the key role of IMC’s Java software engineers.
Java software engineers at IMC
For our Java software developers, no two days and no two projects are the same. These teams work on a huge variety of tools, applications, and functionalities, such as trading algorithms, option pricing, volatility calculations, simulation frameworks, market risk applications, trade reconciliations, data analysis and visualization, and more.
Of course, IMC’s Java software engineers are tasked with developing not just these business applications themselves, but also the tools that in turn make sure we can keep pushing the boundaries of tech development in market making.
All this takes place in a fast-moving environment, where the next exciting challenge is always just around the corner. That’s why we love to give our Java software developers the responsibility they need to get stuck into each and every project – and together with that responsibility comes the support of our senior Java software engineers, the wider software engineering team, and the whole IMC family.
In fact, our Java programmers often work in multidisciplinary teams alongside other engineers, trader researchers, and quants, tackling – and delivering – challenging projects right the way through from requirement-gathering to production.
At the core of it all? High-performance code that strikes the perfect balance between low time to production and top quality, reliability, and testability. It’s no wonder that Java software engineers at IMC are experts in weighing up the trade-offs between latency, throughput, simplicity, scalability, and maintainability.
Our Java technology stack
IMC’s Java developers work with an ever-evolving range of systems and technologies. Java 11 and 14, Kotlin, Python, Kafka, Kubernetes, Apache Cassandra, MongoDB, PostgreSQL, Dremio, Typescript, React … these are just some of the layers in our tech stack, and our software developers can choose whichever solution they think is best for a given project – or suggest a new one for IMC to explore, adopt, and develop!
No matter the software they’re working with, our Java software engineers achieve agile and incremental benefits thanks to daily deployments and advanced automated testing. In fact, our programmers say IMC’s quick feedback loops are one of the most exciting and rewarding parts of the job.
A typical career path for a Java software engineer
The fast pace of work and change at IMC means our Java development teams are always honing their skills – and learning new ones. For programmers and senior programmers with the agility to adapt in line with the evolution of our tech needs, the sky is the limit: a Java software engineering career at IMC means tons of opportunities to help realize new trading strategies and approaches.
As is the case for other roles at IMC, our Java software developers have the freedom to guide their own journey. Engineers who want to use some of their time to help develop others can opt to take on a People Leader role, which could mean anything from mentoring new hires to managing a team of direct reports. Meanwhile, those who want to focus on using their expertise to add value to more complex projects might take the Individual Contributor route, for more hands-on impact.
No matter the direction, collaboration is always our compass. Our Java engineers are all about teamwork, openness, and innovation, with code reviews at the foundation of their processes.
Ready for a new challenge?
All this is just a taste of what you can expect as a Java software engineer at IMC. After all, our technology requirements, challenges, and opportunities are constantly evolving – meaning our programmers’ work is always changing, too. To help our traders stay ahead of the game in a fast-paced environment, our talented developers need to be ready for anything.