Software Developer
Job Description
Company: European Bioinformatics Institute, UK.
About this job
Technologies
java, javascript, linux, jira, rdbms
We are looking for a talented full stack software developer to work on cutting edge tools for genome annotation as part of the Ensembl project (www.ensembl.org).
Apollo (https://github.com/GMOD/Apollo) is a web-based platform used by researchers worldwide to annotate genome sequences with genes and other features important for their biological interpretation. The project has recently expanded and is now a collaboration between the University of Berkley, the Wellcome Sanger Institute, and the Ensembl group at EMBL-EBI. As part of the Ensembl Applications team, you will work closely with developers and stakeholders at all three sites to produce the exciting next generation of Apollo.
Your role
You will be working closely with Annotators in the Section to connect the Apollo annotation tool to Ensembl databases, thus creating a tool which they can use in their day-to-day work.
You will help develop the next generation of the Apollo platform and will enable the embedding the tool into a rich ecosystem of genome annotation activities at EMBL-EBI.
Specific projects on the development roadmap you will contribute to include: (a) developing seamless connectivity with Ensembl databases and APIs; (c) adding enriched functionality and support for the deep annotation of complex genomes such as human; (c) implementing new features for comparative genome annotation.
You will be expected to work with a reasonable degree of autonomy and regularly present your work back to collaborators and stakeholders to gather feedback. There will also be the opportunity to be involved in planning the direction of the development with teams from the collaborating Institutes.
You have
- MSc in Computer Science (or a related field), equivalent qualifications or experience.
- Experience with collaborative development tools such as GitHub, Jira and Confluence
- Experience of developing software in a Linux environment
- Significant programming experience – especially Java and/or JavaScript
- Practical experience of RDBMSs (such as MySQL or PostGres)
- Familiarity and experience of methodologies such as Scrum, XP and ‘Agile’
- Experience of containerisation and cloud-oriented software deployment
- A desire to write quality, maintainable code
- Ability to transform requests from non-technical users into working features
- Excellent communication skills
You might also have
- Experience with large biological datasets
- Experience with ‘NoSQL’ database systems (e.g. graph databases, document stores)
- Experience of developing with Groovy or Grails
- Experience of creating and managing CI / CD pipelines
- Experience of deploying applications using Kubernetes
- Experience of working on large scale collaborative projects