Senior Software Developer, Book of Record
Job description
About the role
We are seeking a Senior Software Developer to join the Core Balances team at Wealthsimple. In this role, you will take real ownership of the services at the heart of how Wealthsimple tracks client money and records financial activity in real time. You will design and build the backend systems that manage balances, reserve assets, and the flow of transactions across the platform. This is backend-heavy, consequential work where the systems you create become a trusted dependency for nearly every product the company ships. You will partner closely with Product and neighbouring engineering teams to turn complex financial logic into experiences that feel simple and reliable to end users. The role gives you the opportunity to solve meaningful problems and see your work directly support millions of clients and their money. You will be responsible for raising the bar on quality, operational excellence, and production ownership while mentoring and growing the engineers around you. You will also use AI-assisted tooling to ship faster and more safely, helping to shape what excellent, rigorous engineering looks like on the team.
Key facts
What you'll do
- Design, build, and operate the backend services that power real-time balances, reservations, and financial activity, serving as the trusted systems the rest of Wealthsimple relies on.
- Own meaningful scope end-to-end, from technical design and implementation through to reliable operation in production.
- Solve hard problems around real-time correctness, low latency, and high availability, ensuring write paths cannot be slow, event consumers cannot fall behind, and database contention is handled well even at peak volume.
- Keep services dependable through market open and other busy moments, maintaining stability when load and complexity are highest.
- Evolve the existing architecture in place, consolidating overlapping services and data models, establishing a single entry point for financial activity, isolating failure domains, and making recovery and backfill fast and safe on live financial systems without downtime.
- Raise the bar on quality and operational excellence through thoughtful design, rigorous code review, and healthy production ownership.
- Mentor and grow the engineers around you through pairing, code review, and in-the-moment feedback, while remaining open to learning from them as well.
- Use AI-assisted tooling to ship faster and more safely, integrating AI-assisted development into how the team works well.
- Write and maintain well-tested, maintainable, and observable code that makes the codebase and the people around you better with every review.
- Communicate clearly and steadily with Product and other engineering teams, sharing context early and asking questions before you are stuck.
- Demonstrate curiosity about the "why" behind the systems, understanding not just the code but the financial reality it represents and the clients on the other side of it.
- Build and operate services with an emphasis on simplicity, robustness, and performance, ensuring the user experience feels straightforward even when the underlying logic is complex.
- Collaborate with cross-functional partners to translate business requirements into reliable technical solutions that scale.
- Continuously explore new approaches to reliability and performance, applying lessons from production incidents to prevent future issues.
Requirements
- 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 in distributed systems.
- Solid experience building services that are highly available and low-latency, and the instincts that come from having kept one running under real load and through peak events.
- 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.
- You take production ownership seriously and stay calm and methodical when things go wrong, using structured debugging and analysis to resolve issues.
- Comfort working in a mature codebase, finding your footing in systems with history and improving them incrementally rather than waiting for a clean slate.
- Strong software quality habits, including writing well-tested, maintainable, and observable code that others can understand and change easily.
- Clear, steady communication, with the ability to work well with Product and other engineering teams, share context early, and ask questions before you are stuck.
- Curiosity about the financial systems and the real-world impact of the code, including an understanding of the clients and the regulatory environment that the systems support.
- Enthusiasm for AI-assisted development and an interest in helping shape what excellent, rigorous AI-assisted engineering looks like on the 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 financial messaging standards and concepts used in banking and trading systems.
- Experience with event-driven architectures and streaming platforms such as Kafka.
- Understanding of data modeling for financial systems, including balances, reservations, and transactions.
- Experience with testing strategies for complex business logic and high-concurrency systems.
- Familiarity with GraphQL and its use in production services.
- Experience operating services in cloud environments and with infrastructure that supports resilience and multi-region deployments.
- Any additional experience that would help you contribute effectively to a regulated, fast-growing financial services team.
Practical notes
This role is full-time and remote based in Canada.