Senior Software Engineer - Core Pipelines
Core Technology · Cambridge
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.
- 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.
- 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.
- 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.