About Northern Trust
As a global leader in innovative wealth management, asset servicing, asset management and banking services, Northern Trust (Nasdaq: NTRS) is proud to guide the world’s most successful individuals, families, corporations and institutions.
Since 1889, we have aligned our efforts with our three guiding Principles That Endure: Service, Expertise, and Integrity. Together, they reflect the three cornerstones of business conduct which we strive to instill in our employees, whom we call partners, and to provide to our clients and the communities we serve worldwide.
With more than 135 years of financial experience and over 24,000 partners, we serve the world’s most sophisticated clients using leading technology and exceptional service.
About the Role:
Northern Trust's FX Technology group builds and runs the platforms behind our global FX business, including pricing, execution, trade processing and client connectivity. We're modernizing these systems. That means breaking up legacy monoliths, moving to event-driven services and changing how we build software with AI.
We're looking for a Principal Engineer who still writes code and wants to help change how our team works. You'll design and build the next generation of our front-office trading systems and trade flow. You'll also help build an engineering culture that's curious, open to new ideas and comfortable challenging how things have always been done. You'll lead through your designs, your code and how you work with people.
What You'll Do
Design and build front-office trading services covering pricing, order flow and trade capture, with a focus on low latency, resiliency and scale.
Lead the breakup of existing monolithic applications into smaller, independently deployable microservices. Define service boundaries, contracts and a migration path that keeps production running throughout.
Design event-driven trade flows using Kafka, including event models, topic design, schema management and replay/recovery patterns.
Build and deploy cloud-native services on Azure using Azure Container Apps or AKS, Event Hubs and Key Vault, and integrate them with on-prem systems.
Write production code in Java or C++ every week. Review code, set engineering standards and raise the bar for the team.
Use AI throughout the development lifecycle. That includes AI-assisted code analysis of legacy systems, test generation, refactoring, migration and defect triage. Turn what works into tools and practices the rest of the team can use.
Own CI/CD and automated testing for your services, so that deploying to production is routine.
Work directly with traders, product owners and architects to turn business needs into technical designs and working software.
Produce design documentation that gets through architecture and governance reviews without rework.
Bring new ideas forward. Find better ways to build, test and deliver, make the case for them and help the team adopt them.
Help shape team culture. Encourage open discussion, knowledge sharing and experimentation, and make it normal for engineers at every level to question the status quo.
Mentor engineers across onshore and offshore teams through pairing, design reviews, demos and hands-on example.
What You Bring
10+ years building production software, with strong hands-on coding in Java or C++.
Proven experience breaking monolithic systems into microservices in a live production environment.
Deep experience with Kafka and event-driven architecture.
Hands-on experience with Azure: Container Apps or AKS, Event Hubs, Key Vault and related services.
Strong CI/CD experience, with test automation built into the pipeline.
Practical experience using AI coding tools such as GitHub Copilot or agent-based workflows to speed up delivery. You should have real examples to show, not just interest.
Solid relational database skills (SQL Server, Postgres or similar).
A track record of driving change on a team, whether by introducing new practices, tools or ways of…