Senior Software Engineer - Order Management & Trade Allocation (C++/Linux)
Role details
Job location
Tech stack
Job description
As part of the Order Management & Allocation engineering team, you will:
- Design and implement components of a new firm-wide order and execution workflow platform.
- Build systems that:
- Intake aggregate orders with complex allocation instructions.
- Perform real-time risk, compliance, and order-marking checks.
- Route orders to global brokers and venues across Equities, Futures, FX, and other products.
- Process executions and perform real-time allocation of fills to fund accounts and feeding this downstream to post trade systems.
- Real-time and historical analytics, monitoring, and reconciliation tools.
- Work closely with portfolio managers, traders, middle office, and risk teams to understand requirements and translate them into robust, scalable solutions.
- Own the end-to-end lifecycle of features: design, implementation, testing, deployment, and operational support.
- Contribute to system performance tuning, profiling, and optimization to meet stringent latency and throughput requirements.
- Participate in code reviews, architecture discussions, and ongoing improvements to development standards and best practices.
Requirements
We are seeking a highly skilled Senior Software Engineer with deep expertise in C++ and low-latency Linux server-side development to help design and build the next generation of our firm's global trading platform. This role focuses on the core order management and trade allocation systems that support all asset classes traded across the firm., * 7+ years of experience developing high-performance C++ server-side applications on Linux, including systems operating within sub-50µs latency budgets.
- Hands-on experience with Aeron, SBE, or comparable low-latency messaging technologies used in trading systems
- Understanding of binary wire protocols, message serialization, and zero-copy data movement
- Strong background in real-time, event-driven architectures, inter-process communication, and concurrency.
- Deep understanding of Linux internals, performance tuning, memory management, and network programming.
- Strong command of object-oriented design, data structures, algorithms, and low-level systems concepts.
- Familiarity with trading workflows and product knowledge across Equities, Futures, Options, and Fixed Income is strongly preferred.
- Experience with SQL; exposure to kdb+/q is a significant differentiator.
- Hands-on Java development experience is highly beneficial.
- Bachelor's or Master's degree in Computer Science, Engineering, or a related discipline.
- Detail-oriented with a strong sense of ownership and pride in high-quality work.
- Collaborative mindset with the ability and desire to help others succeed.
- Ability to operate effectively in a fast-paced, high-pressure environment with frequently shifting priorities.
- Strong communication skills with the ability to interact across technical and business teams.
Benefits & conditions
The estimated base salary range for this position is $175,000 to $250,000, which is specific to New York and may change in the future. Millennium pays a total compensation package which includes a base salary, discretionary performance bonus, and a comprehensive benefits package. When finalizing an offer, we take into consideration an individual's experience level and the qualifications they bring to the role to formulate a competitive total compensation package.