Java Engineer - Systematic Portfolio Execution Technology
Millennium Management
Overview
The SPEED MFT Order Entry team seeks a software engineer to design and implement distributed, latency-sensitive Java systems. This role involves building and maintaining high-performance infrastructure to support systematic quantitative trading.
Job Description Summary
Responsible for Systematic Portfolio Execution technology, the area includes both infrastructure and application development pertaining to realtime intraday latency sensitive and non-latency sensitive OMS, trading, and execution, non-latency sensitive APIs and services, as well as trading monitoring and support functions.
Principal Responsibilities
Collaborating with hardware and software developers across divisions to build realtime order entry processing and distribution systems
Contributing towards the team’s technical direction by driving new initiatives
Developing and optimizing large-scale parallel computation problems that requires large quantities of data shared across resources
Define processes and standards to be followed globally by the area
Define, implement, and enforce SLAs, SLOs, policies, metrics and KPIs to proactively monitor the area
Developing systems, interfaces, and tools for trading simulations that increase research productivity
Optimizing this platform by using network and systems programming, as well as other advanced techniques to minimize latency
Helping build and maintain our automated test and benchmark framework, risk-management, performance-tracking, and other tools
Testing, implementing, and benchmarking different OMS systems, brokers, and exchanges (internal and external) on different hardware offerings and settings
Working closely with trading teams to gather requirements and develop solutions in a fast-paced environment
Working with development and support teams to adapt to exchange technical upgrades
Qualifications/Skills Required
Strong understanding of low-latency and real-time system design and implementation, in Java specifically
Strong financial experience across multiple asset classes
Deep understanding of memory management, garbage collection
Significant experience with profiling and optimizing Java applications
Academic or professional experience using AI engineering techniques to create software and systems
Expertise in Linux system internals and networking
Strong understanding of data structures, algorithms, object-oriented programming and excellent analytical abilities
Deep understanding of concurrency and multi-core programming
Excellent knowledge of testing framework including JUnit, Mockito, Cucumber
Experience building high-performance, easily scalable distributed systems
Deep knowledge of modern computer architectures (for example NUMA)
Strong understanding of multiple trading venue DMA binary protocols and unique behaviors (for both Market Data and Order Entry, with a focus on Order Entry)
Able to prioritize in a fast moving, high pressure, constantly changing environment; Good sense of urgency and ownership
Believer and practitioner of transparency and accountability
Effective communication and relationship management skills (client and vendor): The candidate will be expected to work closely with business and technology users to understand their current and future needs
BA/BS degree in Computer Science or equivalent (MS preferred)
Desired
Experience or working knowledge of C++
Experience or working knowledge of Python
Experience with OMS and overall execution pipelines
Shell scripting
Experience building no-GC Java applications and high performance JVMs like Zing
Experience with (or willingness to learn) JavaScript
Knowledge of cloud computing (AWS, GCP)
Knowledge of Kafka, Spring Boot, Junit
Knowledge of containers (Docker, Podman)
Have a good understanding of algo back-testing facilities
Previous experience with alpha strategies is a big plus
General market knowledge of equities, options, SOR, VWAP, and alpha generating strategies is desired
Join us to shape the future of systematic quantitative trading and solve significant engineering challenges.