DevOps Engineer - K8s / Cassandra / Kafka / NATS / JVM
Reporting to our CTO, you will be helping to deploy the Yapster service. We are looking for a smart and capable DevOps engineer to join our team and help us build the product faster and more robustly. Each day will present new challenges, requiring continual learning on the job.
Annual salary of up to £55k (dependent on experience)
28 days annual leave
Flexible working as standard
Regular social events and personal development opportunities
Fun, friendly office environment in the heart of Soho
Yapster’s mission is to empower people working in roles traditionally underserved by productivity-boosting enterprise software. We’re already working with some of the best names around - think Ann Summers, Caffe Nero, Krispy Kreme, and Next - to do just that.
After closing a significant round of private investment at the end of last year, we’re gearing up for rapid growth in 2019. With your help, our mobile messaging platform will be used and loved by millions of frontline workers across the world in the coming years.
Based in the heart of Soho, we’re a friendly, fun team united by a passion for building a first class product and company culture. You can expect to work alongside brilliant people and join a fast-paced culture in which everyone relishes getting ‘stuck in’.
The dev team:
Yapster’s dev team currently consists of 6 engineers (including the CTO), but, as yet, no specific DevOps role. We are self-motivated, enthusiastic and bring a wealth of different experience - we strive to be welcoming of new viewpoints and the increased problem-solving capability they bring to our development process. We have historically been currently quite un-siloed, with application engineers taking on DevOps tasks, but Yapster’s infrastructure and customer base has grown to the point that we need a focused DevOps engineer. We are mostly working remotely with a regular office-day in London each week (for those who can reach London easily enough) - this has advantages for achieving flow and minimising interruption, but we are also wanting to establish a more office-based dev team presence, so if you prefer to work from our office that’s also an option.
Major Responsibilities / Accountabilities:
Working with the CTO to:
Define and manage Yapster’s cloud environments
Deploy Yapster’s services to the cloud environments
Implementing pervasive monitoring and alerting for current and potential ops issues
Defining capacity-related metrics and capacity planning
Yapster is delivered as a mobile and web app, and there is a REST API and streaming service on the backend, altogether forming an asynchronous messaging platform. It’s built on modern storage and messaging components, and implemented in Clojure and ClojureScript.
Our major foundational components are:
persistent messaging - Apache Kafka
primary data store - Apache Cassandra
non-persistent events - gnatsd
REST API - JVM / Clojure
Streaming service - JVM / Clojure / Kafka Streams
Yapster is currently deployed on DC/OS hosted on AWS (although we’d like to leverage the traction that Kubernetes has recently achieved with cloud providers and move away from DC/OS and on to K8s)
Required skills and experience - technical:
Cassandra clusters - deploying, monitoring, backup & restore, scaling, migrating. An understanding of Cassandra’s key concepts and how they relate to reliability, performance and capacity
Kafka clusters - deploying, monitoring, scaling, cloud-based backup & restore. An understanding of Kafka’s key concepts, relating and how they relate to reliability, throughput, capacity
JVM applications - deploying, monitoring, scaling
AWS (or Azure, Google Cloud) - automatically defining, deploying, monitoring and scaling AWS infrastructure
InfoSec considerations - encryption at rest, encryption in transit, firewalls, information lifecycles
Docker - we deploy as much as we can in containers
Kubernetes - deploying container-based applications to K8s on AWS
Automated configuration management and orchestration - Terraform, Chef/Puppet/Ansible/SaltStack etc
Required skills and experience - personal:
Good written and oral communications skills
Able to work with little direct supervision (though there will be plenty of support available, it won’t always be co-located)
Able to work effectively in a team environment where team members may not be co-located
Self motivated and proactive
Excellent problem-solving skills
Interested in better ways of doing things, yet remaining aware of the realities of delivering features to customers
Flexible approach to day to day tasks and coping with a challenging workload
A demonstrable understanding of computer architecture and operation - whether this has been acquired through formal education or otherwise isn’t important.
We aspire to build a team that properly reflects the communities we serve and welcome applications from people with diverse perspectives and backgrounds.
How to apply
Please send your CV to firstname.lastname@example.org with DevOps Engineer application in the subject line.