Como Desarrollador Java, reportarás a Alberto Uña, nuestro Jefe de Software, y trabajarás con nuestro equipo de Desarrollo.
Serás el principal desarrollador Java de nuestro proyecto CellBase, uno de los componentes principales de la “suite” OpenCB (https://github.com/opencb/ ). Cell Base se sitúa como la base de datos principal utilizada por los médicos y centros de investigación para la anotación de variantes genéticas, permitiendo un diagnóstico genético más rápido. CellBase permite una anotación de alta calidad al integrar y almacenar diversas fuentes de datos biológicos y clínicos en una potente base de datos NoSQL. Además provee una API uniforme y estructurada que facilita el acceso a los datos integrados de la forma más eficiente.
Actualmente, la base de datos de CellBase agrega más de 50 fuentes de datos biológicos referentes, ocupando en torno a un Terabyte y está creciendo a un ritmo excepcional. Como desarrollador de CellBase, trabajarás para crear nuevas funciones y agregar nuevas fuentes de datos, lo cual permitirá mantener y mejorar su posición puntera como herramienta de anotación genómica, seguir el ritmo de desarrollo del resto de componentes y satisfacer las demandas de nuestros clientes.
Nuestra plataforma está basada en Java. Actualmente estamos migrando nuestro desarrollo de Java 8 a Java 11. Las plataformas de bases de datos en las que se apoya CellBase son MongoDB y Neo4J. Usamos Junit como framework para nuestros tests unitarios. Uno de nuestros principales objetivos será el ampliar la cobertura de los mismos.
OpenCB (CellBase y el resto de componentes) se despliega en la nube utilizando Kubernetes y contenedores Docker, con Maven y Github Actions para CI/CD. Actualmente nuestros despliegues son gestionados por nuestros equipo de DevOps, pero aprenderás todo sobre nuestro pipeline y formarás también parte de estos procesos.
Se valorarán conocimientos en bioinformática.
Nuestro equipo de desarrollo sigue un enfoque ágil para la gestión y planificación de nuestro trabajo, con standups regulares y retrospectivas de sprint. Serás el experto en el componente que contribuirá de manera directa y ayudará a priorizar las características y a tomar decisiones de arquitectura.
Utilizamos una arquitectura dirigida por componentes, con la expectativa de migrar a microservicios a medida que crecemos. Nos ayudarás a garantizar que este proceso sea un éxito.
Por último, somos un equipo pequeño que se prepara para un crecimiento significativo. Prevemos la necesidad de crear equipos para cada componente de nuestra plataforma, lo que significa que liderarás el equipo a medida que este vaya creciendo.