Senior Software Engineer - Core Pipelines

We are seeking a skilled Software Engineer with a passion for translating manual tasks into fully automated reproducible workflows to join our Core Pipelines team.

The Core Pipelines team is responsible for building and operating scientific workflows underpinning the analyses and visualisations that enable our scientists to make the scientific insights that are at the core of our business. They are part of the wider Core Technology team, who design and deliver company-wide data services and data technology.

Team members will be expected to gather requirements, design systems, plan and
estimate implementation work, and produce quality code – all in close collaboration with colleagues. We value well-crafted software and clean architecture, developed through a steady process of incremental change. We reserve 10% of our working time for the exploration of new ideas, and share what we have learned with each other through mentorship, pair programming, and tech talks. We work in productive partnerships with our data scientists, statisticians, and domain experts to advance our understanding of the human wiring diagram.

Our current technology stack includes systems and tools written in C, C++, Go, Javascript, Python, R, and Rust and run in a GNU/Linux environment. We rely on scientific workflow engines to run reproducible data analyses expressed declaratively in WDL / CWL. We continuously strive to optimise workflows and infrastructure through instrumentation and monitoring. We are excited by the ongoing challenge of translating cutting-edge scientific analyses into fully automated reproducible processes. We run our internal systems on an OpenStack-based private cloud and are transitioning many of our workflows to run in a public cloud setting. A sizeable High Performance Computing (HPC) facility also powers our scientific research. We have a strong culture for Continuous Integration and Delivery (CI/CD) as well as scientific regression testing and benchmarking.

Key tasks

  • Develop, maintain, and operate automated workflows for scientific analyses.
  • Craft software to support running reproducible workflows in both private and public cloud settings.
  • Investigate efficiency issues, and refactor analysis tools and/or workflows to lower costs.

Responsibilities

  • Developing reproducible scientific workflows and supporting software systems using good software development practices (including distributed source code management, code review, testing, and pair programming).
  • Gathering requirements, designing systems, planning/estimating implementation work, and producing quality code.
  • Conducting performance measurement and profiling of workflow jobs using Linux-based operating systems and tools.
  • Mastering new technologies and techniques, while always aiming to choose the right tool for the task at hand.
  • Working in productive partnerships with data scientists, statisticians, and domain experts.
  • Devoting 10% of your working time to explore new ideas, and share what you learn through mentorship, pair programming, and tech talks. 
  • Communicating with members of the Genomics plc team to provide training and updates on activities and issues arising.
  • Providing training and mentorship to junior team members.

Essential skills

  • Demonstrable skill coding in at least two relevant languages.
  • Critical thinking and attention to detail.
  • Good communication skills, including the ability to communicate complex ideas to an audience with a range of technical backgrounds.

Essential qualifications and experience

  • Experience in composing robust and reproducible data analysis workflows.
  • Substantial experience coding using multiple languages.
  • Dedication to lifelong learning and a willingness to teach and learn from peers.
  • Enthusiasm for problem solving.
  • A track record of using good software development practices to facilitate collaborative work.
  • Experience with performance measurement and profiling of applications using Linux-based operating systems and tools.
  • Some experience with DevOps practices (e.g. continuous integration, continuous testing, release automation, infrastructure as code).

Desirable skills and experience

  • Experience with declarative workflow languages (e.g. CWL, WDL).
  • Experience conducting performance measurement and profiling of applications using Linux-based operating systems and tools.
  • Experience developing workflow management systems and associated tools.
Usually responds within a week

Or, know someone who would be a perfect fit? Let them know!

Already working at Genomics plc?

Let’s recruit together and find your next colleague.

email
@genomicsplc.com
Teamtailor

Applicant tracking system by Teamtailor