Sr. Software Engineer I, Evaluation Services (Scala)
About the role
We are seeking a Sr. Software Engineer to join our Evaluation Services team. Our Evaluation Services business powers funded trader programs that give aspiring traders a pathway to professional trading capital. In this role, you will design, build, and maintain the Scala-based backend systems that power our auto-liquidation engine, risk evaluation, and trading services—the core systems our platform and our partners depend on.
You will own complex backend problems end-to-end and work alongside Trading Services Engineers, frontend engineers, QA, and solutions engineers to deliver high-quality, production-ready features in a fast-paced environment.
Responsibilities
- Design and implement backend services in Scala for evaluation, risk, and trading services workloads—including real-time auto-liquidation, account state management, and post-trade processing
- Build and evolve actor-based systems (Akka or similar) that handle high-throughput market data, position changes, and event-driven workflows
- Own significant features end-to-end: from technical spec through implementation, code review, and production hand-off
- Design data models and database changes (PostgreSQL, including JSONB where appropriate), and contribute to the shared master schema, Protobuf, and SQL repositories
- Diagnose and resolve complex backend issues—including production incidents—by analyzing logs, tracing distributed flows, and reproducing edge cases under realistic load
- Drive code quality across the team: thorough PR reviews, clear acceptance criteria, dev-testing discipline, and proper instrumentation and observability
- Collaborate with Trading Services, Solutions Engineering, and Product to translate business requirements into well-scoped, well-estimated stories
- Contribute to architectural decisions and long-term tech-debt remediation, including modernization of legacy Scala services and evaluation of new event-bus technologies
- Mentor junior team members on Scala idioms, functional design, testing practices, and incident response
- Develop deep expertise in NinjaTrader's evaluation platform and partner integrations to provide authoritative backend leadership
Requirements
- 5+ years of backend software engineering experience building production systems that handle real-time data, concurrency, and high availability
- Strong, hands-on Scala expertise—idiomatic Scala, functional patterns, testing (ScalaTest or similar), and comfort working in a large existing Scala codebase
- Experience with actor-based concurrency models (Akka, Pekko, or equivalent)—understanding of supervision, message passing, and back-pressure
- Solid relational database skills with PostgreSQL—schema design, indexing, query optimization, and judgment on when JSONB is appropriate vs. when a normalized structure is correct
- Comfort with event-driven architectures, message buses (Kafka, Pub/Sub, or similar), and asynchronous workflows
- Excellent troubleshooting skills with the ability to read logs, trace requests across distributed systems, and isolate root cause under pressure
- Demonstrated ability to write clear technical specs, scope work realistically, and flag risk early
- High-quality standards for code, tests, documentation, and PRs—and willingness to enforce the same standards in code review
- Ability to think on your feet and adapt quickly when priorities shift or unexpected issues arise
- Outstanding written and verbal communication skills with the ability to translate backend tradeoffs for both technical and non-technical audiences
- Self-starter who thrives in ambiguity and can manage multiple complex backend efforts simultaneously
Preferred Qualifications
- Experience with trading platforms, fintech, or capital markets technology
- Understanding of trading concepts: order routing, market data, position management, risk and liquidation logic, and P&L calculation
- Familiarity with Protobuf, gRPC, or schema-based service contracts
- Experience migrating or modernizing legacy Scala systems or evaluating Scala → Rust/Go transitions
- Background in observability: distributed tracing, structured logging, and metrics (Datadog, GCP, or similar)
- Prior experience supporting enterprise or B2B partner integrations
Pay
The salary range for this role is $125,000 - $175,000 USD. In addition, this position includes an annual target bonus of 10%, with bonus pay based on individual performance (50%) and company/team performance (50%).
Benefits
- 401k plan with 3.5% company match
- 18 days of annual paid time off plus seven paid holidays (some positions may qualify for more)
- 20 additional flex remote days annually
- 5 company-wide office-optional weeks tied to major holidays
- Generous PTO, 7 paid holidays annually, plus 5 conditional holidays and 1 service day annually
- Paid parental bonding leave
- Health, vision, and dental coverage
- Life and disability insurance covered 100% by NinjaTrader
Schedule
This role is based in Chicago, IL, with hybrid work arrangements: in-office Tuesday through Thursday, and remote work on Mondays and Fridays.
Remote flexibility may be available 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.