Join the Core Engineering Team at Bank of Montreal – Capital Markets
Are you a skilled Java engineer who thrives on building high-performance systems? Do you love working with smart people on meaningful technology? Want to work on large systems that power real-time trading across global markets? If so, read on.
The Role at a Glance
Senior Java Backend Engineer
Fully remote for Bank of Montreal (Poland only)
Openings on multiple teams in the capital markets division (prime brokerage, platform team, FX, market data)
Part of the core team - this is not a legacy support role or an outsourced B team
34,000-41,000 zł per month, B2B
We’re hiring experienced backend engineers (6+ years) to join Bank of Montreal’s Capital Markets technology group — directly supporting the development of financial trading systems. This is not a legacy maintenance or support role — you’ll be part of the core product team, building highly-performant, low-latency systems used across the firm.
Are you a passionate Java developer who thrives on solving complex problems in low-latency, high-throughput trading systems? Join the Capital Markets team at Bank of Montreal and work on interesting financial system engineering problems.
Why Join Us?
Work on a large-scale, low-latency trading system processing millions of daily transactions.
Modern Java (17 & 21) No Legacy: Join an actively developed system — the engineers who built it are still on the team.
Collaborate with a world-class team of developers across North America and Europe.
Enjoy a long-term, fully remote role with flexible hours after onboarding.
Competitive compensation and long term stability that only a bank can offer.
A successful candidate will be very strong in Java and programming in general. They must also be curious, open-minded, and desire to learn new things. English proficiency is a must.
This role is for developers who excel at programming core Java from the ground up, not just integrating frameworks or APIs. If you’re fascinated by understanding systems ‘under the hood,’ this role is for you. Successful candidates enjoy geeking out about data structures and application performance.
This is a fully remote backend Java development role for a developer in Poland. You will be working through a Polish company that will provide the support and administrative assistance to make you successful in the role. We are looking for people to join the team long-term.
To ensure efficient onboarding, you’ll work in sync with the American team during US Eastern business hours for the first two months. Working this way maximizes your time overlap for answering questions, which means you can learn quickly. That means working until 21:00 CET. After that, your schedule will be flexible and can shift closer to standard Polish business hours.
Only open to residents of Poland. Polish citizens, as well as legal residents with permission to work in Poland are welcome.
What we offer
Work that matters in the financial domain: Work on a trading system at an established financial institution, processing millions of transactions daily.
Professional growth: Collaborate with smart, highly capable developers in a supportive and challenging environment.
Direct collaboration: You will work directly with the Bank of Montreal team in North America and in Poland.
1st-tier work: This is not a technical support or legacy maintenance role. The system is functional and is actively being built and you will take part in updating it. The people who built the system are still part of the team.
Long-term commitment: This is not a fixed-scope or fixed-term outsourcing role; we value people who want to grow and contribute long-term.
Flexibility & remote work: Fully remote position based in Poland with increasing schedule flexibility post-onboarding.
Competitive Compensation: Above-average pay and ample time-off options.
Responsibilities
Design and implement robust software solutions for the bank’s trading systems using core Java (17 and 21).
Understand, develop, and improve the subsystems used by other teams in the trading platform.
Create thorough test cases to ensure software stability and reliability.
Collaborate with operations teams regarding building new features and improving existing functionality.
Support production issues, including root-cause analysis and diagnosis.
Requirements
Must have
Strong understanding of programming concepts, including algorithms, complexity, and data structures.
Knowledge of the internals of Java data structures.
Strong analytical and problem-solving skills.
Open mind, curiosity, and a strong desire to learn new technologies and business domains.
Ability to clearly explain non-trivial systems and algorithms.
Ability to follow and understand technical conversations.
Know when and how to ask questions that speed up learning.
Ability to align your working schedule to US Eastern business hours during onboarding.
Nice to have
Experience with financial markets and trading systems.
Knowledge of AWS systems.
Experience with Spring boot , for some roles
Experience working remotely with North American firms.
Strong collaboration and teamwork skills.
Familiarity with distributed systems or concurrent programming.
A computer science degree from a top Polish school.
The recruitment process
Submit your CV.
Answer a few written questions and a short programming exercise which you can do at your own pace.
Participate in a three-step interview process:
Discuss your experience and skills.
Solve verbal algorithm problems (focus on clarity and understanding).
Tackle live coding challenges (no trick questions).
No take-home assignments – we respect your time.
Successful candidates will need to pass a standard background check.
Net per month - B2B
Check similar offers