About the RoleWe're growing the Core Balances team and looking for a Senior Software Developer to take real ownership of the services at the heart of how Wealthsimple tracks client money. You'll join a small, high-trust group of senior engineers and own meaningful scope from early on - designing and building the backend systems that track balances, reserve assets, and record financial activity in real time. It's backend-heavy, consequential work: these services sit on the critical path for nearly every product at Wealthsimple, and the rest of the company trusts them to be both fast and correct. You'll partner closely with Product and neighbouring engineering teams to turn complex financial logic into experiences that feel simple to the people relying on them.
In this role, you'll have the opportunity to:- Design, build, and operate the backend services that power real-time balances, reservations, and financial activity - the systems the rest of Wealthsimple trusts to be correct.
- Own meaningful scope end-to-end, from technical design through to running your work reliably in production.
- Solve genuinely hard problems around real-time correctness, low latency, and high availability: write paths that can't be slow, event consumers that can't fall behind, and database contention that shows up exactly when volume peaks. Keeping all of it dependable through market open and other busy moments is part of the job.
- Evolve our architecture in place. These systems have grown alongside Wealthsimple itself, from a single product to an entire financial ecosystem, and a big part of the work ahead is reshaping them to fit the company we are now - consolidating overlapping services and data models, establishing a single entry point for financial activity, isolating failure domains so one slow calculation can't degrade everything around it, and making recovery and backfill fast and safe. Doing this on live financial systems, without downtime and without ever showing a client the wrong number, is the interesting part.
- Raise the bar on quality and operational excellence through thoughtful design, code review, and a healthy sense of production ownership.
- Mentor and grow the engineers around you - through pairing, code review, and in-the-moment feedback - and learn just as much from them in return.
- Use AI-assisted tooling to ship faster and more safely. We treat building with AI as part of how we work, and we're always figuring out how to do it well.
What you bring:- Several years (5+) of professional software engineering experience, with a track record of building and operating critical production systems that people or businesses depend on.
- Strong backend engineering skills and sound judgment about system design, reliability, and trade-offs.
- Solid experience building services that are highly available and low-latency - and the instincts that come from having kept one running under real load.
- We work primarily in Kotlin on the JVM, with Kafka and GraphQL in the mix - strong Java experience translates well, and deep experience in a comparable stack matters more than an exact match. We'll help you ramp on ours.
- You take production ownership seriously and stay calm and methodical when things go wrong.
- Comfort working in a mature codebase - you can find your footing in systems with history, and you improve them incrementally rather than waiting for a clean slate.
- Strong software quality habits: you write well-tested, maintainable and observable code. You make the codebase and the people around you better through your reviews.
- Clear, steady communication. You work well with Product and other engineering teams, share context early, and ask questions before you're stuck rather than disappearing down a hole.
- Curiosity about the "why" behind the systems - not just the code, but the financial reality it represents and the clients on the other side of it.
- Enthusiasm for AI-assisted development, and interest in helping shape what excellent, rigorous AI-assisted engineering looks like on our team.
Nice to have:- Experience in fintech, banking, trading, or another regulated, high-stakes domain - ideally at a fast-moving, high-growth company.
- Familiarity with ledgers, reconciliation, or financial-correctness problems.
- Experience with event-driven architecture and stream processing (Kafka, Flink, or similar), and the patterns that keep it correct - idempotency, ordering, transactional outboxes.
- Experience with GraphQL APIs, Apollo Federation, or Kubernetes.
- Depth in relational database performance at scale - Postgres, connection pooling, replication, and diagnosing contention under load.
- Experience carrying out significant migrations on live, high-traffic systems.
Who you are:- You take ownership end-to-end - from the design to the code to making sure it holds up in production.
- You're comfortable with ambiguity and do your best work in a domain where the problems are consequential and rarely perfectly clean.
- You're pragmatic about legacy: you can tell the difference between complexity that's load-bearing and complexity that's just old, and you know how to unwind the second kind safely.
- You're detail-oriented without losing the bigger picture - you care deeply about correctness, and about the experience for the client on the other side of it.
- You're collaborative and generous by default: you share what you know, invest in the people around you, and help the whole team get better.
- You're curious and always learning - open to new ideas, new perspectives, and new ways of working.
If this sounds like the kind of work you want to do, we'd love to hear from you - even if you don't tick every single box above. Depth, judgment, and a genuine interest in the problem count for a lot.