Senior Engineer
Required skills
- large-scale systems
- distributed environments
- high-availability environments
- code design decisions
- technical solutioning
- automated testing
- refactoring
- agile delivery
Nice to have
- C#
- NET
- React
- AWS
- Kubernetes
- TDD
Role summary
We are seeking a Senior Engineer to solve complex engineering problems at scale, influencing the architecture and implementation of distributed systems. You will refactor monolithic systems, build scalable software, and ensure platform robustness for millions of users. As a senior team member, you will have autonomy in code design decisions, contribute to engineering standards, and mentor others. This role involves working in a collaborative, agile environment, focusing on modernizing systems, enhancing CI/CD, and utilizing a tech stack including C#, .NET, React, AWS, and Kubernetes. The position is hybrid, based in Vancouver.
The role / impact
You will focus on solving engineering problems at scale, moving beyond feature delivery to influence the architecture and implementation of distributed systems. By refactoring complex, monolithic systems and building high-quality, scalable software, your work ensures our platform remains robust and reliable for millions of global users.
As a senior member of the team, you will have the autonomy to make major code design decisions and contribute to global engineering standards. You will balance technical excellence with mentorship, acting as a role model and coaching others through complex technical challenges to help them grow.
The team / how they connect
You will join a collaborative environment where engineers, product owners, and designers work together using agile and delivery practices to ship meaningful code. The team prioritizes continuous learning and mastery, frequently participating in code reviews and knowledge-sharing sessions to maintain a high bar for technical craft.
The team is currently working on / Initially, you will focus on
Modernizing systems by refactoring monolithic components into distributed, scalable architectures.
Enhancing the developer experience through the maturation of CI/CD concepts, tooling, and TDD practices.
Building and maintaining a diverse tech stack that includes C#,.Net, React, AWS, and Kubernetes.
Developing and implementing technical solution designs that align with long-term engineering frameworks.
Where and how you can work
This role is based in our Vancouver office, where we embrace a hybrid working model. You will have the flexibility to work from home while joining the team in the office for "boost days" (1-2 days a week) to collaborate, socialize, and solve complex problems in person.
Here are some of the things we are looking for
Proven experience delivering and operating complex, large-scale systems (distributed/high-availability environments), with strong fundamentals and the ability to ramp quickly across adjacent technologies (we’re tech-stack agnostic).
You bring a growth mindset and a passion for proactively maintaining and sharing technical knowledge with your peers.
A background in designing and building high-quality software within a range of languages and tools is essential.
You possess the ability to lead major code design decisions and contribute to wider technical solutioning.
Experience with modern engineering practices like automated testing, refactoring, and agile delivery is key to your success.
You enjoy mentoring other engineers and helping them grow their technical skills through supportive coaching.
A deep care for technical excellence and a drive to solve large-scale engineering challenges motivates your daily work.
Apply even if your experience isn't a perfect match! At Xero, we hire based on your skills, passion, and the unique perspective you can bring to enhance our culture and team. We are also tech stack agnostic, so please apply if you've worked with adjacent technologies.
Compensation Philosophy
At Xero, we value the impact and skills you bring to the team. We don’t just hire for a role; we invest in people. We believe in a Total Package philosophy - which means your value isn't just a single number on a paycheck. While base salary is a core component, we look at your compensation through a holistic lens that includes equity, performance incentives, and world-class benefits.
The base salary range for this role in Canada is $155,000 - $205,000 CAD.
Please note that this range represents base salary only. We believe in rewarding our people for their total contribution, which is why we look at compensation through a holistic lens. In addition to base pay, your total package may include:
Variable Pay: Eligibility commissions or equity based on role and performance.
Comprehensive Benefits: World-class health, wellness, and retirement programs.
Xero Perks: Inside Xero Explore our full suite of benefits, from wellbeing initiatives to professional development.
Individual pay is determined by various factors, including geography, level of experience, and the specific skills you bring to the role
Sample Xero interview questions
- 1
Merge Overlapping Intervals Merge overlapping intervals in an array. Input: intervals = [[1,4],[4,5]] Output: [[1,5]] Explanation: The intervals touch exactly at the 4 mark, so they are successfully merged into a single continuous interval.
codingmedium - 2
Diameter of a Binary Tree Find the diameter of a binary tree. Input: root = [1,2] Output: 1 Explanation: The longest path is simply the single edge connecting the root node to its only child.
codingmedium - 3
Iterator over a Binary Search Tree Implement an iterator over a binary search tree. Input: root = [7,3,15,null,null,9,20], calls: next(), hasNext(), next() Output: 3, TRUE, 7 Explanation: The iterator yields the smallest value (3), confirms more nodes exist, then properly yields the next in-order value (7).
codingmedium - 4
Alien Dictionary Order Derive the alien dictionary order from a sorted list of alien words. Input: words = ["z","x","z"] Output: "" (Empty String) Explanation: The letter 'z' cannot come before 'x' and then suddenly after 'x', creating a cycle and making the dictionary invalid.
codingmedium - 5
Encode and Decode Strings Encode a list of strings into a single string and decode it back. Input: strs = ["","hello",""] Output: ["","hello",""] Explanation: Prepends chunk lengths and a delimiter (e.g., "0#5#hello0#") to safely encode and perfectly restore empty strings.
codingmedium
Get started to unlock a personalized interview prep pack for this role.
Similar roles
- Senior Account ExecutiveXero · United States · Hybrid
- Senior Account ExecutiveXero · New York, NY · Hybrid
- FPre-Sales Solutions EngineerFormance · New York, NY · Hybrid
- Engineering Manager, Materials TestHadrian Automation · Los Angeles, CA · Onsite
Lead, Mobile App Software EngineerWhitepages · Seattle, WA · Hybrid- Thermal Engineer (Senior / Staff)ExoTerra Resource · Littleton, CO · Onsite
