Role
We are seeking a strong Java developer to join a trading systems team at Bank of Montreal, Capital Markets. You will be programming in core Java, building and enhancing the trading platforms and peripheral systems. You will work closely with developers, and also interact with other teams including sales/marketing/quants/operations, to implement new trading features and improve on the existing strategy offerings. If you have a keen interest in developing low latency trading systems in Java, read on.
A successful candidate will have considerable experience in software development and the right mix of technical knowledge and soft skills to grow into a tech lead role. You must have strong core Java development skills. It is crucial for you to be curious, open minded, and open to learning. English proficiency is a must.
At first they you work as a senior developer as part of a team based in North America, and will eventually manage a small team of 2-4 developers in Poland.
This is a fully remote senior backend Java development role for a developer in Poland. You will be working through a local intermediary who 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 an efficient onboarding with maximum collaboration, for the first 2 months, you’ll be expected to working in sync with the American team during US Eastern business hours. That means working until 21:00 CET. After that, your schedule will gradually shift closer to standard Polish business hours.
Responsibilities
- Design and implement robust software solutions for the bank’s trading systems using core Java (17 and 21).
- Understand, develop and improve data processing algorithms.
- Lead development through the whole SDLC, collaborating closely with other developers and stakeholders.
- Create thorough test cases to ensure software stability and reliability.
- Communicate with operations teams regarding new features and existing strategy behaviors.
- Support production issues, including root-cause analysis and diagnosis.
- Process business requirements with minimal guidance, derive implementation proposals, and build the software that delivers the necessary solutions.
Requirements
- A degree in Computer Science or equivalent experience.
- 5+ years of professional core Java development experience.
- Open mind, curiosity, and a strong desire to learn new technologies and business domains.
- Solid understanding of programming concepts, including algorithms, complexity, and data structures.
- Strong analytical and problem-solving skills.
- Ability to clearly explain non-trivial systems and algorithms.
- Effective verbal and written communication skills, and experience working remotely.
- Collaborative and strong teamwork skills.
- Humility to ask questions where necessary
- A customer-oriented focus, and an understanding of how software enables business outcomes.
- Ability to align your working schedule to US Eastern business hours during the onboarding period.
Nice to have
- Understanding of financial markets and electronic trading systems.
- Experience working with American clients.
- A love for geeking out on memory, throughput, and latency optimization, and the professional experience to match.
- Familiarity with the FIX protocol.
- Team leadership experience and/or desire to lead a small team.
What we offer
You will get to work with a professional team of developers on a large scale trading system. Your peers will be smart, motivated, and capable, and they will expect similar from you. You’ll work on a mature live systems processing tens of millions daily transactions at an established financial institution.
This is not a one off project for an outsourcing firm. The goal is to build a team in Poland who will work alongside the North American team on the trading systems at Bank of Montreal. Looking for people who are looking to be with a single team for a long term.
The Recruitment Process
- Submit your CV or resume
- Answer a few written questions via email
- Three step interview process
- Decision
- Background check