Senior Operations Engineer - Leading SaaS product at FreeAgent (Edinburgh, UK) (allows remote)
At FreeAgent we help freelancers and micro-businesses be more successful by putting them in control of their company finances.
We have built an award-winning online accounting product that offers full end-to-end compliance, from time tracking to tax return filing. We’re based in beautiful Edinburgh and we’re growing from strength to strength with over 55,000 paying customers and strong YoY growth. Our NPS is off the charts - customers love what we do!
We’re looking for a talented Operations Engineer to come and work on the FreeAgent app, internal services and supporting infrastructure. You’ll be working as part of our Infrastructure team, squashing single points of failure, fixing bottlenecks, profiling load and solving interesting scaling and automation problems.
Our Infrastructure team is responsible for the application in production at all levels in our stack. Being this flexible means we’ve achieved near 100% uptime over the past year (99.98%) whilst performing daily code deployments, countless database migrations and, every quarter, a complete DR flip between our physical data-centres. We’re happy with this, and we’re looking for people who can help us keep going!
Responsibilities
Desired Skills and Experience
- Support the smooth running and uptime of our external and internal production systems
- Support the path-to-production for our frequent changes to application code and data
- Maintaining our disaster-recovery and data backup processes
- Conduct peer reviews of infrastructure and configuration changes
- Be actively involved in the continuous evolution of our systems and infrastructure, from small tweaks to epic changes
- Work alongside the wider engineering team planning and developing new features
- Participate in our 24/7 emergency on-call rota
- Ensure no single points of failure are introduced so out-of-hours calls stay rare
- Management of virtualised Unix / Linux servers. We’ve been using containers in production for years on our own hardware, running SmartOS.
- Configuration management technologies - we don’t configure servers by hand, instead we use puppet
- Production problem solving and performance optimisation - things break or slow down and it’s good to find out why. We accept that nothing can be perfect and value the time spent digging deep to really try and understand issues
- Hands on low-level networking - we run our own servers and network gear in multiple data centres and use dynamic routing protocols to ship traffic between logically isolated networks of virtual machines
- Good understanding of common network protocols - and someone who can find their way around an RFC
- Good communicator - we’re all constantly learning and like to encourage the sharing of knowledge across our engineering team
- Security conscious - you understand the importance of security best practices, know your BEAST from your HEARTBLEED and know how to establish a robust set of defences
- Nearly all of our code is written in Ruby and all of our code is checked into git
- Ideally some production experience managing relational databases. We run MySQL and have databases with multi-million rows, perform routine online schema changes and periodic DR tests and rely on master-master replication to keep our site online throughout
- We use RabbitMQ behind the scenes, having used this before would be a definite plus
- We run ElasticSearch for in-app user-searching and also to store many terabytes of log data
- 33 days annual leave, including public holidays, increasing year on year
- Family friendly policies
- Childcare vouchers
- Professional development and training
- Contributory Pension
- Private Health Insurance
- Group Life Assurance
- Income Protection
- Cycle to Work scheme