DevOps Engineer - K8s / Cassandra / Kafka / NATS / JVM

Overview

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.

Package:

  • 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

About Yapster:

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

Technology stack
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

Desirable education/certifications:

  • A demonstrable understanding of computer architecture and operation - whether this has been acquired through formal education or otherwise isn’t important.

Diversity policy:

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 hr@yapster.info with DevOps Engineer application in the subject line.