Software Engineer in Tools and Infrastructure (Kubernetes, AWS, Open-source)

eLife is seeking a Software Engineer in Tools and Infrastructure to work on the development, automation, monitoring, architecture and testing of systems we are co-developing with other non-profits and publishers.
eLife jobs

Closing date for applications is February 22, 2020.

This role is specifically to work across all our teams and help them build publishing software designed for reuse open-source software. You’ll have the chance to work with our service provider partners and other publishers to devise the simplest way to test and deploy our products, while being a key part of the Technology Team in supporting development, build pipelines, automated testing and deployed infrastructure. This is a unique opportunity to have a significant role in the coordination, development and adoption of our software systems and help make them available for the scientific community.

You’ll join a small and enthusiastic team who are passionate about continuous improvement and software quality. Things like TDD/BDD, continuous delivery, strong collaboration and DevOps are part of our culture. We’re looking for someone to add to the team who can bring a deep understanding automated testing and modern infrastructure practices, and help lead understanding in this area.

Experience and attributes

You care about software systems and you believe development involves a lot more than just computers, configs and code. You know getting the best out of a system comes from strong collaboration with the people using it; both on the user side and with the other people in your team. You have worked on infrastructure, testing and operations of web services and applications. You have spent time using cloud computing and appreciate the flexibility it brings, and you keep up-to-date with new services on offer evaluating them as an extension to the applications you help nurture. You care about open-source software and see the value in contributing to the community so that you can help make a difference.

Specific responsibilities

The current generation of eLife infrastructure is built on Kubernetes and is used consistently across the organisation to build and test open source products, run demos and deploy them for eLife’s existing production systems. The main deployment target is AWS with GCP and cloud agnosticism coming as a close second. We’d be interested in you if you’re from any background as long as you have a keen understanding of good DevOps practices. Here’s a summary of some of the technology we’re currently using, but we’re open to new ideas:

  • Infrastructure is defined in code and automated using Terraform and Helm.
  • Portable, open server technology (Vagrant, Docker, Docker Compose, Kubernetes, Nginx).
  • Open languages and frameworks (Node.js, Express, React, Redux, Webpack, SASS, Python).
  • Open-source continuous integration and testing (Selenium, Jenkins, Jest, Pytest).
  • Relational and document databases (Postgres, Redis, Elasticsearch).
  • Monitoring, logging and metrics (New Relic and Loggly).
  • Messaging (SQS, RabbitMQ)

We know not to spend time doing something that has been done well before, so use hosted web services and existing tools when we can, unless it makes our software less open and not as easy to reuse.

Terms and conditions

The post is a permanent position, 37.5 hours per week, and offers a competitive basic salary and benefits. The post holder will be required to work at the eLife office in Cambridge (UK), and applicants must be able to demonstrate the right to live and work in the UK to be considered for the vacancy.

How To Apply

Please send your CV and a covering letter explaining your enthusiasm for this position and why you are a great person for this role to