What you'll do:
In this pivotal role on our Trading Services team, you will architect, evolve, and optimize the distributed systems powering NinjaTrader's real-time trading platform. As a Principal Software Engineer, you will lead the long-term technical direction of mission-critical trading infrastructure operating in high-volume, low-latency, globally distributed environments. You will play a key role in modernizing our trading architecture, driving scalability and resiliency initiatives, and shaping the future of our platform as we continue to grow in the retail futures trading space.
This role requires deep technical expertise across distributed systems, trading infrastructure, and real-time system design. You will serve as a technical leader on the team, influencing architecture, engineering standards, and platform strategy while mentoring engineers and partnering closely with product, operations, and executive stakeholders.
In this role you will:
- Design, develop, and optimize our Scala-based trading services for high-volume, low-latency, globally distributed 24x7 environments
- Optimize system performance, with focus on JVM tuning and distributed systems performance for Scala/Akka-based services
- Define and lead the long-term architectural strategy for NinjaTrader's trading systems and distributed infrastructure
- Drive modernization initiatives focused on scalability, resiliency, fault tolerance, and operational excellence
- Lead service decomposition and platform decoupling efforts to enable polyglot development, isolated deployments, and improved system agility
- Serve as a technical leader and trusted advisor across engineering teams, driving best practices and engineering excellence
- Mentor and guide engineers through architecture reviews, technical design discussions, and operational leadership
- Collaborate cross-functionally with product, engineering, operations, and security teams to translate business requirements into robust and secure technical solutions
- Improve observability, monitoring, distributed tracing, and operational transparency across critical trading services
- Ensure compliance with security policies, regulatory standards, and industry best practices
- Lead technical decision-making during high-severity production incidents and real-time operational events
- Evaluate and introduce emerging technologies, frameworks, and architectural patterns to improve platform capabilities and engineering efficiency
What you'll need:
- Bachelor's degree in Computer Science, Information Technology, or related field (or equivalent experience)
- Experience in Java/Kotlin/Scala/Rust/C++ or functional programming languages within exchange/trading environments
- Extensive experience designing and operating high-performance, high-concurrency distributed trading systems
- Deep expertise in low-latency system architecture, distributed systems design, and real-time event processing
- Proven experience leading technical strategy and architectural direction for mission-critical platforms
- Strong expertise in JVM internals, performance tuning, and optimization for high-performance environments
- Experience supporting highly available 24/7 production systems in trading or financial services environments
- Deep understanding of networking and protocols including HTTP/HTTPS, WebSockets, DNS, TCP/IP, and distributed communication patterns
- Proven ability to diagnose and resolve complex distributed systems, concurrency, and production performance issues
- Experience designing scalable, fault-tolerant microservices and event-driven architectures
- Excellent communication and leadership skills, with the ability to clearly articulate technical concepts to engineers, leadership, and cross-functional stakeholders
- Deep understanding of trading infrastructure, order lifecycle management, market connectivity, and real-time system reliability
Bonus points for:
- Background in capital markets, brokerage, or futures and derivatives technology
- Experience with real-time trading systems such as OMS, EMS, exchange connectivity, or market data infrastructure
- Experience leveraging AI/ML tools or technologies to enhance software development, system performance, or automation
- Experience in low-latency, lock-free development and design
- Strong experience with multithreading and concurrency in high-performance environments
- Deep understanding of order handling and matching engines
- Extensive experience with FIX or other market data/order-entry protocols
- Practical hands-on experience with cloud-native technologies including Kubernetes and Docker
- Experience designing highly available, resilient distributed systems in cloud-native environments
Compensation:
The salary range for this role will be $210,000.00 - $230,000.00 USD. In addition, this position will also receive an annual target bonus of 15%. Bonus pay at NinjaTrader is based on individual performance (50%) as well as company/team performance (50%).
Salary and bonus earnings are only two components of the total compensation package offered by NinjaTrader. NinjaTrader offers a 401K plan through ADP under which the company will match up to 3.5% of employee contributions. Annual paid time off allowance accrues at a rate of 23 days per year plus seven paid holidays.
All offered compensation will be based on assessed experience and is subject to change at the offer stage.
Location:
This role is based in Chicago, IL. *There may be remote flexibility for exceptional candidates in the following states: California, Colorado, Florida, Georgia, Illinois, Indiana, Minnesota, Missouri, Montana, New Jersey, New York, North Carolina, Ohio, Oregon, Pennsylvania, South Carolina, Texas, Utah, Vermont, Virginia, Washington, Washington DC, Wisconsin.
Hybrid:
For Chicago-based employees, we follow a hybrid work schedule: In-office Tuesday through Thursday, with remote work on Mondays and Fridays. In addition to these weekly remote days, we offer:
- 20 additional flex remote days annually
- 5 Company Wide Office-Optional weeks tied to major holidays