# Engineer
**Company:** [Xero](https://scaleengineer.com/companies/xero)
Join Xero as a Full Stack Engineer to build robust, scalable cloud-based accounting software serving millions of small businesses globally. You'll work on infrastructure reliability, API development, and modern engineering practices while collaborating with a high-performing team that values code quality, security, and continuous learning. This role offers hands-on technical challenges across the development lifecycle, from architecture and implementation to production support and on-call responsibilities.
**Role:** Full Stack Engineer
**Seniority:** Mid
**Locations:** CAN: VAN (333 Seymour St)
**Salary:** 130000–150000 CAD
[Apply](https://jobs.ashbyhq.com/xero/81a89a5c-3e4d-4669-899b-2eea4bd19ed6)
Canonical: https://scaleengineer.com/jobs/xero/engineer-81a89a5c
---
## Responsibilities

- Full Lifecycle Software Development: Transform complex, ambiguous problems into robust, high-quality software solutions. Participate in shaping technical architecture, writing production-grade code, implementing comprehensive testing strategies, and troubleshooting issues across the entire development lifecycle to ensure customer reliability.
- Cloud Infrastructure Reliability & Scalability: Strengthen the reliability and scalability of Xero's cloud-based infrastructure. Work on improving system performance, implementing resilience patterns, and ensuring the platform can handle millions of concurrent users managing their accounting operations.
- API and Service Development: Design, develop, and maintain APIs and microservices that power Xero's wider product ecosystem. Ensure APIs follow RESTful principles, maintain backward compatibility, and provide clear documentation for internal and external developers integrating with the platform.
- Production Operations and On-Call Support: Participate in an on-call rotation sharing responsibility for keeping Xero's products running 24/7. Respond to production incidents, troubleshoot system failures, implement emergency fixes, and conduct post-incident analysis to prevent recurrence.
- Engineering Practices Improvement: Contribute to evolving team engineering standards and developer efficiency practices. Share knowledge freely with teammates, conduct code reviews with empathy, and advocate for process improvements such as test-driven development and trunk-based deployment strategies.
- AI and Developer Tooling Integration: Explore practical applications of AI-powered tools to streamline engineering workflows and boost team productivity. Mentor teammates on effective AI tool usage, implement automation opportunities, and stay current with emerging developer productivity technologies.
- Security and Risk Assessment: Proactively identify and mitigate application and infrastructure security vulnerabilities before they impact customers. Implement security best practices across the codebase, conduct security-focused code reviews, and stay informed about emerging security threats in cloud platforms.
- Cross-Functional Collaboration: Work closely with product managers, designers, and other engineering teams to understand customer needs and technical requirements. Participate in design discussions, provide technical feasibility assessments, and ensure alignment on quality standards and timelines.

## Requirements

### education

- {"name":"Computer Science or Related Field","description":"Bachelor's degree in Computer Science, Software Engineering, or related discipline. Alternatively, equivalent professional experience demonstrating strong fundamentals in algorithms, data structures, and software design principles."}
- {"name":"Continuous Learning Mindset","description":"Demonstrated commitment to ongoing professional development through certifications, conference attendance, open-source contributions, technical blog writing, or self-directed learning in emerging technologies and best practices."}

### technical

- {"name":"Multi-Language Programming Proficiency","description":"Demonstrated hands-on experience with one or more modern programming languages. Strong ability to debug complex issues across different technology stacks and write maintainable, performant code that follows best practices."}
- {"name":"Full Stack Development Capability","description":"Competency across frontend, backend, and infrastructure layers. Experience designing and building web applications, REST APIs, and working with cloud platforms. Ability to understand system interactions from database to user interface."}
- {"name":"Test-Driven Development (TDD)","description":"Regular practical experience writing tests before implementation. Proficiency with testing frameworks and a mindset that prioritizes test coverage, automated testing, and continuous integration to ensure code quality and regression prevention."}
- {"name":"Trunk-Based Development","description":"Experience with modern version control workflows using trunk-based development or continuous integration patterns. Comfortable with feature flags, automated deployments, and rapid iteration cycles rather than long-lived feature branches."}
- {"name":"Cloud Platform Experience","description":"Hands-on experience working with cloud infrastructure and services. Familiarity with concepts like containerization, microservices, serverless architectures, or managed databases. Understanding of cloud security and cost optimization."}
- {"name":"Security Awareness","description":"Proactive mindset around application and infrastructure security. Knowledge of common vulnerability types, secure coding practices, authentication/authorization patterns, and ability to identify and escalate security risks during code reviews."}
- {"name":"AI Tools Proficiency","description":"Practical experience leveraging AI-powered development tools such as code assistants, automated testing generators, and documentation tools. Ability to effectively prompt AI systems and critically evaluate their outputs for production use."}

### experience

- {"name":"Production Software Development","description":"Track record of developing, deploying, and maintaining software in production environments. Experience responding to production issues, implementing monitoring, and iterating based on real-world customer feedback and usage patterns."}
- {"name":"Scalable Systems Development","description":"Experience building or maintaining systems handling significant scale. Understanding of performance optimization, caching strategies, database query optimization, and architectural patterns for reliable, scalable applications."}
- {"name":"On-Call and Incident Response","description":"Comfort participating in on-call rotations and responding to production incidents. Experience with incident triage, root cause analysis, and post-incident reviews. Demonstrated reliability and ownership when critical systems require immediate attention."}
- {"name":"API Design and Development","description":"Experience designing and building RESTful or GraphQL APIs. Understanding of API versioning, documentation, deprecation strategies, and considerations for external developers consuming your APIs."}
- {"name":"Cross-Functional Collaboration","description":"History of working effectively with product, design, and other engineering teams. Ability to translate requirements into technical solutions and communicate technical constraints and tradeoffs to non-technical stakeholders."}

## Skills

### required

- {"name":"Object-Oriented Programming (OOP)","description":"Strong grasp of OOP principles including encapsulation, inheritance, polymorphism, and SOLID design principles. Ability to design and implement well-structured, maintainable code using these concepts."}
- {"name":"Database Design and Optimization","description":"Understanding of relational database design, SQL query optimization, and indexing strategies. Experience working with both relational and non-relational databases. Ability to identify and fix N+1 query problems and performance bottlenecks."}
- {"name":"API Development and Integration","description":"Proficiency designing and building RESTful APIs with proper HTTP semantics, error handling, and authentication. Experience integrating third-party APIs and building resilient client code that handles network failures gracefully."}
- {"name":"Software Testing and QA","description":"Hands-on experience writing unit tests, integration tests, and end-to-end tests. Familiarity with testing frameworks, mocking libraries, and test automation. Understanding of testing strategies and coverage metrics."}
- {"name":"Version Control (Git)","description":"Proficiency with Git and collaborative development workflows. Comfortable with branching strategies, pull requests, code reviews, and resolving merge conflicts. Understanding of commit hygiene and meaningful commit messages."}
- {"name":"Linux/Unix System Administration Basics","description":"Comfortable working in Unix/Linux environments. Familiarity with command-line tools, shell scripting, file permissions, and basic system administration concepts needed to debug and deploy applications."}
- {"name":"Problem Debugging and Troubleshooting","description":"Strong analytical skills to systematically debug complex issues across full technology stacks. Experience using debuggers, logging frameworks, monitoring tools, and applying scientific troubleshooting methodologies."}
- {"name":"Security Best Practices","description":"Working knowledge of secure coding practices including input validation, output encoding, CSRF protection, secure authentication, and handling sensitive data. Awareness of OWASP Top 10 vulnerabilities."}

### preferred

- {"name":"Microservices Architecture","description":"Experience designing, building, or maintaining microservices-based systems. Understanding of service boundaries, inter-service communication patterns, distributed tracing, and challenges of distributed systems."}
- {"name":"Containerization (Docker, Kubernetes)","description":"Hands-on experience with Docker for containerizing applications. Familiarity with Kubernetes orchestration, container networking, and deployment strategies in containerized environments."}
- {"name":"Cloud Platform Services (AWS, Azure, GCP)","description":"Experience working with major cloud providers' managed services. Familiarity with compute options (EC2, App Service, Compute Engine), databases (RDS, Cosmos DB, Cloud SQL), and serverless offerings."}
- {"name":"CI/CD Pipeline Implementation","description":"Experience designing and implementing continuous integration and continuous deployment pipelines. Familiarity with tools like Jenkins, GitHub Actions, GitLab CI, or similar. Understanding of automated testing in CI/CD contexts."}
- {"name":"Monitoring and Observability","description":"Experience implementing application monitoring, logging, and distributed tracing. Familiarity with tools like Prometheus, ELK Stack, Datadog, or New Relic. Understanding of SLIs, SLOs, and error budgets."}
- {"name":"SaaS Product Development","description":"Background building or maintaining Software-as-a-Service applications. Understanding of multi-tenancy, subscription billing, feature flagging, and the operational challenges of maintaining always-on platforms."}
- {"name":"FinTech or Accounting Domain Knowledge","description":"Familiarity with accounting principles, financial software requirements, or fintech operations. Understanding of compliance requirements, data integrity concerns, and regulatory considerations in financial applications."}
- {"name":"Open Source Contributions","description":"Active participation in open-source projects. Demonstrated ability to work in collaborative environments, understand existing codebases, and contribute quality code aligned with project standards."}

## Tech stack

### tools

- {"name":"Docker","description":"Container platform for packaging applications and dependencies. Essential for consistent deployment across development, testing, and production environments."}
- {"name":"Kubernetes","description":"Container orchestration platform for managing containerized applications at scale. Industry standard for cloud-native deployments."}
- {"name":"Git","description":"Distributed version control system essential for collaborative software development. Industry-standard tool for code repository management."}
- {"name":"Jenkins/GitHub Actions","description":"CI/CD automation tools for implementing continuous integration and continuous deployment pipelines. Automate testing, building, and deployment processes."}
- {"name":"Terraform","description":"Infrastructure-as-Code tool for provisioning and managing cloud infrastructure. Enables reproducible and version-controlled infrastructure deployments."}

### others

- {"name":"RESTful API Design","description":"Architectural approach for building scalable APIs using HTTP standards. Understanding of resource modeling, HTTP methods, status codes, and hypermedia."}
- {"name":"Microservices Architecture","description":"Design pattern for building applications as suites of small, independently deployable services. Enables scalability, resilience, and independent technology choices."}
- {"name":"DevOps and Infrastructure Automation","description":"Practice of automating infrastructure provisioning, configuration management, and deployment pipelines. Bridges development and operations teams."}
- {"name":"Test-Driven Development (TDD)","description":"Development methodology of writing tests before implementation. Improves code design, reduces bugs, and provides confidence in refactoring."}
- {"name":"Cloud Computing (AWS/Azure/GCP)","description":"Experience building and deploying applications on major cloud platforms. Understanding of cloud-native patterns and managed services."}

### databases

- {"name":"PostgreSQL","description":"Advanced open-source relational database with excellent reliability, performance, and advanced features like JSON support, full-text search, and extensibility."}
- {"name":"MySQL","description":"Widely-deployed relational database known for performance and reliability. Common choice for web applications and SaaS platforms."}
- {"name":"Redis","description":"In-memory data store used for caching, session management, real-time analytics, and message queuing. Critical for high-performance applications."}
- {"name":"MongoDB","description":"NoSQL document database offering flexibility for unstructured data. Popular for applications requiring horizontal scalability and schema flexibility."}
- {"name":"Elasticsearch","description":"Distributed search and analytics engine used for full-text search, logging, and real-time analytics. Essential for scalable search functionality."}

### languages

- {"name":"Python","description":"Versatile backend language widely used in web development, data processing, and systems automation. Popular for rapid prototyping and scalable backend services."}
- {"name":"JavaScript/TypeScript","description":"Essential for full-stack development. TypeScript provides type safety for large-scale applications. Used for both frontend and backend development in Node.js environments."}
- {"name":"C#/.NET","description":"Enterprise-grade language used in many SaaS platforms. Increasingly popular with .NET Core for cross-platform backend development and microservices architectures."}
- {"name":"Java","description":"Widely-used for building scalable backend systems. Strong ecosystem for distributed systems, microservices, and enterprise applications. Excellent performance and tooling."}
- {"name":"Go","description":"Modern language gaining traction for cloud infrastructure and backend services. Known for simplicity, fast compilation, and excellent support for concurrent programming."}

### frameworks

- {"name":"React","description":"Leading frontend framework for building interactive user interfaces with component-based architecture. Strong ecosystem and community support."}
- {"name":"Node.js","description":"JavaScript runtime enabling full-stack JavaScript development. Excellent for building high-performance, I/O-intensive web applications and APIs."}
- {"name":"Django/Flask","description":"Popular Python frameworks for rapid web development. Django provides batteries-included approach while Flask offers lightweight flexibility for APIs and microservices."}
- {"name":"Spring/Spring Boot","description":"Comprehensive Java framework ecosystem ideal for building enterprise-grade microservices and APIs with dependency injection and transaction management."}
- {"name":".NET Core","description":"Modern, cross-platform framework for building scalable APIs, web applications, and cloud-native services with strong performance characteristics."}

## Benefits

### benefits

## Compensation

- **max:** 0
- **min:** 0
- **currency:** 
- **stockOptions:** false

## Interview process

### steps

## Full description
**The role / impact**

You'll take on complex, sometimes ambiguous problems and turn them into robust, high quality software that customers can rely on. Your work will span the full lifecycle, from shaping technical solutions and writing quality code through to testing, troubleshooting and keeping systems running smoothly in production. Every decision you make will be grounded in customer outcomes and a genuine care for doing things properly.

Beyond the code, you'll help shape how the team works. You'll share feedback with empathy, support others as they grow, and contribute ideas that improve engineering practices across the wider team. You'll also take part in an on call roster, sharing responsibility for keeping our products running around the clock.

**The team / how they connect**

You'll join a close knit engineering team that works across the full stack to build and maintain software our customers depend on every day. The team collaborates closely with product, design and other engineering groups, sharing knowledge freely and holding each other to a high standard of quality. Decisions are made together, with a strong bias towards clarity and getting the right things done quickly.

**The team is currently working on / Initially, you will focus on**

* Strengthening the reliability and scalability of our cloud based infrastructure
* Improving engineering practices and developer efficiency across the team
* Exploring practical ways to use AI tools to streamline everyday engineering work
* Building and maintaining APIs and services that support our wider product ecosystem

**Where and how you can work**

We support flexible, hybrid working, with time together in the office balanced against the flexibility to work in the way that suits you best. We know good work happens in different places and at different times, so we focus on outcomes rather than hours at a desk. Specific office expectations and any regular in person days will be discussed with you as part of the hiring process.

**Here are some of the things we are looking for**

* You'll bring hands on experience with one or more programming languages, along with the confidence to debug across a technology stack
* Practical use of AI tools to boost your own productivity and streamline how you work comes naturally to you
* A specialism in a particular area of the development stack, paired with genuine curiosity to keep learning, is part of who you are
* Test driven and trunk based development are practices you use regularly, not just concepts you know about
* Spotting application and infrastructure security risks before they become problems is something you actively look out for
* Taking part in an on call roster and sharing in the responsibility for reliable products is something you're comfortable with

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.
