233 South Wacker Drive Suite 4300 Chicago, IL 60606
Are you someone who is passionate about challenging the status quo? Do you enjoy the process of problem solving, a process where you recognize areas of improvement and iterate and innovate to improve? Does your curiosity and desire to learn drive you?
SOFTWARE ENGINEERING AT IMC:
- We trade in the most competitive markets across the globe. Our software makes millions of trading decisions daily. We win by making better and faster decisions than our competition. As a software developer you’ ll be working alongside traders to implement strategies which will challenge you to be creative with your implementation. You’ ll need to produce solutions which compete in the extremely latency sensitive environment, whilst managing complexity.
- You’ ll be working in a highly motivated team, controlling end-to-end product development. We work in an environment where slight oversights can be extremely costly, while new features can be extremely profitable. As a team we aim to balance the race to production with software quality and testability. You’ ll be placed in an environment consisting primarily of C++ and Java. We have a build chain which has been designed around the concept of daily production releases. A variety of systems and technologies keeps life interesting.
- Upon joining you will be expected to manage your own time and tasks. We rely on our developers to drive change by taking feedback from traders, and shaping that into an implementation. Your ownership of the task continues until a working production release. Our most successful developers comfortably work in any part of our stack
WHAT MAKES IT FUN?
- One of the most fun aspects of the job is that we have a very quick feedback loop. We release early and often to get incremental benefits as they are developed
- We operate at the bleeding edge of technology. If something new can potentially bring an advantage we will actively invest in developing and utilizing the solution
- We really believe in sharing knowledge and technology between the different offices. Much of our technology stack is shared between all 3 regions, and we provide opportunities to travel between the regions both for personal growth and to assist where it has the biggest impact.
- To get the best results we encourage everybody to gain understanding of both the trading strategy and how exchanges work on a technological level.
- Working at IMC is also an opportunity to learn about financial markets. We know from experience that a lot of people really enjoy learning about a field beyond their immediate area of expertise, it’ s one of the things that makes this job more interesting than others.
- We employ a broad range of people with varying backgrounds. What they have in common is their superior technical expertise, their extraordinary smarts and their collaborative approach. We will not accept less.
WHO YOU ARE:
- Excellent Java or C++ programming skills
- Development experience in a Linux/UNIX environment
- Extensive experience with OOP/OOD
- Strong knowledge of algorithms, data structures, and threading
- Proficiency in design patterns
- Scripting knowledge
- Non-relational, distributed database experience is a plus (not a requirement)
- Strong analytical skills and desire to solve complicated problems programmatically
- Must be self-directed, and able to work productively under minimal supervision
- Willingness to work closely with traders in a constantly changing environment
- Interest in the Financial Markets; previous knowledge is NOT required