BMO Capital Markets is a leading, full-service financial services provider. We offer corporate and investment banking, treasury management, as well as research and advisory services to clients around the world. #bmocapitalmarkets
About the Role:
We’re looking for a pragmatic, detail-oriented Software Engineer to help build and maintain our Quantitative Investment Strategy (QIS) Calculation Engine — the core platform that powers the calculation of quantitative indices (levels and decompositions), risk modeling, scenario analysis and prototyping across Global Markets. You’ll work across a modern C# codebase with critical Python interop for research pipelines, numerical routines, quick prototyping, backtesting, and data science tooling. Expect to collaborate closely with quants, traders, and software engineers to deliver resilient, event driven, auditable systems at scale.
What You’ll Do:
Own the engine: Design, implement, and optimize components of the QIS engine (e.g., factor models, signal pipelines, backtesting, scenario analysis, portfolio optimization).
Interop & integrations: Build robust C#/Python interop layers (Pythonnet or equivalent) to bridge production services with research scripts generated by quant team.
Data engineering for quant: Develop reliable market data ingestion, normalization, and metadata/versioning (symbols, corporate actions).
Performance & reliability: Profile and tune CPU/memory, parallelism (TPL/async), caching, and I/O; ensure deterministic, reproducible runs with comprehensive logging and telemetry.
Model lifecycle management: Operationalize quant models—parameterization, configuration, feature flags, release management, and controlled experiment frameworks.
Testing & quality: Implement rigorous unit/integration tests, regression suites against golden datasets, and CI/CD pipelines.
Risk & compliance: Embed controls for auditability, explainability, and traceability of results; support model validation and governance that conforms to BMO standards.
Collaboration: Partner with quants on specification and model translation; work with team on deployment, observability, and production incident response.
Qualifications
Must-have
3+ years professional software engineering experience in C#/.NET building production services/libraries.
Previous experience in Python with an emphasis on Python internals.
Strong knowledge of software architecture and distributed systems: APIs, messaging, concurrency, resiliency patterns, configuration management.
Hands-on experience with Python for numerical computing (NumPy, pandas, SciPy).
Solid CS fundamentals: data structures, algorithms, complexity analysis, threads/async, networking, serialization.
Database experience: RDMS (PostgreSQL/MSSQL) fundamentals as well as experience in building queries, database design and optimizing/tuning DB for performance.
Familiarity with market data: time series, corporate actions, calendars, B-PIPE.
Nice-to-have
Experience in finance: quantitative investment models, factor investing, portfolio optimization (e.g., mean-variance, risk parity), transaction cost modeling.
Performance profiling (BenchmarkDotNet, dotTrace, perf counters), and high-performance C# (Span/Memory, SIMD, channels).
Experience with on-prem infrastructure (dedicated VMs, Ansible, etc...), secrets management, and observability (OpenTelemetry, Prometheus/Grafana, ELK).
Exposure to modern C# features (.NET 8+), and design patterns for domain-driven design.
Database experience: columnar/time-series stores (Parquet/Delta/InfluxDB/Kdb+/OneTick) a plus.
Proficiency in testing and CI/CD: xUnit/NUnit, test containers, GitHub Actions/Azure DevOps or similar.
What Success Looks Like (6–12 Months)
Enhance the QIS engine’s index calculation throughput and increase the speed at which new indices can be added within the engine
Deliver a clean interop layer with clear contracts and automated validation between Python and production C#.
Develop and ship at least one new quantitative investment strategy with demonstrable notional attribution.
Our Tech Stack
Core: C#/.NET 8 with ASP.NET Core, on-prem VMs, IIS
Interop: Python (NumPy/pandas/SciPy) with Pythonnet
Tooling: Azure DevOps, OpenTelemetry
Testing: xUnit/NUnit
Why Join Us
Impact at scale: Your work powers real strategies, capital deployment, and risk decisions across Global Markets.
R&D velocity: Tight feedback loops with quants and traders; pragmatic engineering over theory.
Modern stack & autonomy: Greenfield opportunities; strong ownership and room to innovate.
Please note the base salary for this role is $120,000 CAD
About Us
At BMO we are driven by a shared Purpose: Boldly Grow the Good in business and life. It calls on us to create lasting, positive change for our customers, our communities and our people. By working together, innovating and pushing boundaries, we transform lives and businesses, and power economic growth around the world.
As a member of the BMO team you are valued, respected and heard, and you have more ways to grow and make an impact. We strive to help you make an impact from day one – for yourself and our customers. We’ll support you with the tools and resources you need to reach new milestones, as you help our customers reach theirs. From in-depth training and coaching, to manager support and network-building opportunities, we’ll help you gain valuable experience, and broaden your skillset.
To find out more visit us at https://jobs.bmo.com/ca/en.
BMO is committed to an inclusive, equitable and accessible workplace. By learning from each other’s differences, we gain strength through our people and our perspectives. Accommodations are available on request for candidates taking part in all aspects of the selection process. To request accommodation, please contact your recruiter.
Note to Recruiters: BMO does not accept unsolicited resumes from any source other than directly from a candidate. Any unsolicited resumes sent to BMO, directly or indirectly, will be considered BMO property. BMO will not pay a fee for any placement resulting from the receipt of an unsolicited resume. A recruiting agency must first have a valid, written and fully executed agency agreement contract for service to submit resumes.
We are committed to hiring military and Veteran spouses and encourage you to identify your connection with the MSEN when reaching out to us or applying to any of our open roles.
Have questions or want to learn more about us? We would love to hear from you!
Whenever possible, reach out to a named contact rather than a general inbox - it helps ensure a quicker, more personalized response. If you hit a bounce-back, let us know at
We’re proud to be the official bank of the Canadian Defence Community – and that goes beyond supporting your financial well-being. We value the skills you’ve earned in the military, and we’re here to help as you move into the next stage of your professional life.
BMO is a top ten North American bank that provides personal and commercial banking, global markets and investment banking services to 13 million customers and clients. Founded in 1817, we’re driven by our Purpose: Boldly Grow the Good in business and life. BMO has established itself as a destination for top talent, with an employee experience that’s built on personalized career development opportunities, a performance-driven winning culture, competitive rewards and benefits, and a deepcommitment to the health and well-being of our people.
If you’re ambitious, curious, creative, and eager to make an impact, you should consider BMO as a place to build your career.
#ProudtoWork@BMO