DevOps Engineer (Infrastructure and Automation)
Our purpose
Small business makes the world go 'round – it's the heart of the global economy. At Xero we want millions of small businesses to thrive through beautiful software, advice and connections. We aim to make being a small business more efficient and profitable, and more enjoyable too.
How you'll make an impact
The DevOps Engineer works in a cross-functional product development team that includes Infrastructure Engineers, Developers, QAs, Designers and Product Managers. The primary purpose of the role is to enable and empower development teams to deliver and support infrastructure services through the supply of reusable automation, tooling, and education.
This role will be responsible for ensuring infrastructure tooling and automation is an enabler of organizational agility. This is an infrastructure coding role, so assisting development teams in achieving 'infrastructure as code' automation pipelines and providing them with infrastructure 'blueprints' or templates so they can deploy services themselves is a large part of the role. Also essential is solid experience in code deployment pipelines (CI/CD). The role will need to have knowledge and experience of relevant technologies used throughout the SDLC, such as source control systems (in particular Git), build tools (such as TeamCity, Jenkins, Bamboo etc.), deployment tools (such as AWS CodeDeploy, Octopus Deploy, etc.) and monitoring tools (such as Cloudwatch, Nagios, Datadog, etc).
This role is also responsible for ensuring the products that the cross-functional team is responsible for are available, secure, scalable, robust, high performing and cost effective to serve both Xero customers and partners. This will require knowledge and experience across a broad set of technology domains including networking, OS (especially Windows Server), Web servers (especially IIS), Linux and containerization. It will also require knowledge of PaaS and IaaS services offered by AWS (especially EC2,, S3, RDS and ECS).
What you'll do
- Support Product Development teams to build amazing tooling and work to up-level the capabilities of the team generally in infrastructure and code deployment automation
- Create an environment that enables and promotes regular small deployments to production, assisting the team to move to continuous deployment
- Assist with the release process and develop tooling to automate repeated tasks
- Identify and promote opportunities to enhance the use of technologies and apply Xero's development standards and help grow and promote patterns, practices and standards to improve deployment automation
- Assisting with developing tooling and improving processes to automate monitoring and metrics to maximize the feedback the team get from production
- Ensure that infrastructure architecture supports applications that are highly available and perform continuously well
- Identify and promote opportunities to enhance the use of emerging infrastructure and PaaS technologies where they support Xero's strategy and business needs
- Help monitor infrastructure and application performance in production and work with development teams to optimize performance and troubleshoot performance problems
- Help grow and promote patterns, practices and standards to improve the non-functional aspects of data components
- Contribute infrastructure expertise to the product development process.
- Design and implement infrastructure solutions during product development
- Mentor product team members from other disciplines about infrastructure and raise awareness of infrastructure and operational concerns as a key consideration of product development
Success looks like
- Product development agility, velocity & quality
- Performance and reliability of automation and monitoring tools
- Ability to release software changes cheaply and easily
- Product availability, reliability and security
- Product performance
- Cost to serve reductions
Qualifications and Experience
- BS in Computer Science, Computer Engineering, Information Science or equivalent and/or appropriate industry experience
- Hands-on experience managing cloud infrastructure (AWS preferably) in a high-availability environment, preferably Windows and SQL Server technologies. Infrastructure as Code.
- Ideally experience with improving release processes and deployment pipelines using approaches like blue/green deployments, canary releases and testing in production
- Successful track record of providing tooling and support for multiple development teams and/or large-scale distributed systems
- Ideally 3+ years working in a DevOps, Release Engineering, or similar role
- 3+ years of coding / scripting experience, preferably with Ruby, PowerShell, C#, .Net, or Java, but our focus is more on comprehension and experience with coding best-practices and techniques
- Experience with Test-driven or Spec-driven testing and QA practices
- Experience with relational databases a big plus
- Comfortable with Agile methodologies such as kanban and scrum.
What we offer
The opportunity to be part of a growing global success story; a fun, fast-paced work environment and a relaxed, supportive team which encourages personal growth; competitive salary, shares in the company; generous 4-weeks of PTO, 5 wellness days, standard holidays and office closure between Christmas and New Year's; flexible work arrangements and a plush new office environment in downtown Denver.