Java/Groovy Software Engineer
What You'll Do
- Contribute to design, develop and maintain the next generation of Nextflow language, interpreter, engine runtime and configuration system.
- Collaborate with the development team to implement new features and enhance the performance, scalability, and usability of Nextflow.
- Participate in code reviews, providing constructive feedback and ensuring adherence to best practices, code quality, and documentation standards.
- Actively engage with the Nextflow open-source community, addressing user queries, troubleshooting issues, and incorporating user feedback into product improvements.
- Stay abreast of the latest trends and advancements in computational biology, workflow management, and open-source technologies, bringing new ideas and innovations to the team.
- Contribute to the development of Nextflow-related documentation, tutorials, and training materials to facilitate adoption and ensure a smooth user experience.
- Collaborate with other teams, such as bioinformatics and product management, to understand user requirements, identify areas for improvement, and prioritize feature development.
- Bachelor's or Master's degree in Computer Science, Software Engineering.
- Experience in software development using Java and Groovy.
- Knowledge of language design principles, DSL concepts, and grammar development.
- Strong understanding of software engineering best practices, including object-oriented design, design patterns, and clean code principles.
- Excellent problem-solving skills and the ability to work independently as well as collaboratively in a fast-paced, agile development environment.
- Proficiency in using version control systems (e.g., Git), continuous integration tools, and containerization technologies (e.g., Docker, Singularity).
- A passion for open-source software, reproducibility in scientific research, and making a positive impact in the scientific community.
- Strong communication skills, with the ability to articulate complex technical concepts to both technical and non-technical stakeholders.
Nice to have
- Prior work experience in implementing grammars, parsers, and code generators to support DSL usage and manipulation.
- Prior experience with DSL frameworks and tools such as Groovy DSL, Xtext, ANTLR, or similar.
- Bachelor's or Master's degree in Computer Science, Bioinformatics, Computational Biology, or a related field. PhD is a plus.
- Experience working with bioinformatics tools, genomic data analysis, and scientific workflows is highly preferred.
- Familiarity with other languages like Python, Go or Rust is desirable.