Register now After registration you will be able to apply for this opportunity online.
This opportunity is not published. No applications will be accepted.
Biomedical Software Engineering - focusing on Continuous Integration, Distribution, and Linux Dependency Management
We develop Python-based Open Source pipelines which enable cutting-edge modelling and visualization of functional brain imaging data. As our pipelines grow in scope, we are looking to meet more stringent software engineering standards, and improve our distribution model with regard to accessibility.
As part of this project you will address information technology challenges highly relevant to work in start-ups, academic research, technology development, and biomedical imaging in particular. You will work with state-of-the art software and computational infrastructures, and be given abundant resources in both operational costs and tutoring in order to fulfill your goal.
**This project affords numerous opportunities:**
* Gain insight into biomedical research and the software engineering opportunities it offers.
* Learn to shape free and open source projects, and become accustomed to Git and the world of collaborative coding.
* Understand the advanced package management capabilities of Gentoo Linux, and how they can be used to improve software and research.
* Receive proficient tutoring in Linux, Python, and Git, as needed.
* Enhance your practical ability with Linux.
.
**To adequately tackle the challenges of this project you should have:**
* *some* previous experience working on Linux.
* *some* previous experience coding in either Bash or Python.
* a *basic* understanding of software testing and management.
.
**Though not mandatory or assumed, the following would be a significant plus:**
* prior experience with the Gentoo Linux distribution
* prior experience with integration testing
* prior experience with Git
* prior experience with Docker
.
**Research Context and Technical Details:**
As part of our work we perform data processing, analysis, and modelling – from the raw signal reconstruction, all the way to 3D visualization rendering.
This process encompasses filtering, adaptive nonlinear image transformation, hierarchical statistical modelling, machine learning, and visualization design.
As is obvious in our case, but also representative of biomedical research in general, data analysis workflows are remarkably complex and have extensive dependency requirements.
Very often, such complexity is disregarded and obscured, strongly compromising transparency, re-usability, sustainability, and collaborative potential.
We overcome this challenge by drawing on insights from reproducible science, and free and open source software engineering.
Our packages are written in an easily extendable and understandable language style (functional Python), shared for full transparency, controlled with regard to versioning, and outfitted with a test suite.
To tackle the dependency challenge we employ Gentoo Linux, a distribution which allows very clear and precise specification of dependencies – as documented in our relevant publication ( http://riojournal.com/articles.php?id=12095 ) at the Gentoo conference ( http://www.youtube.com/watch?v=7PAm6ND4S-E ).
Currently, we are working on making our software more easily accessible, and more sustainable for development, building on preexisting tools developed in our lab (e.g. gebuilder, a single-purpose system image generator: http://chymera.eu/docs/dominik_semesterarbeit.pdf ).
As part of this project you will address information technology challenges highly relevant to work in start-ups, academic research, technology development, and biomedical imaging in particular. You will work with state-of-the art software and computational infrastructures, and be given abundant resources in both operational costs and tutoring in order to fulfill your goal.
**This project affords numerous opportunities:**
* Gain insight into biomedical research and the software engineering opportunities it offers. * Learn to shape free and open source projects, and become accustomed to Git and the world of collaborative coding. * Understand the advanced package management capabilities of Gentoo Linux, and how they can be used to improve software and research. * Receive proficient tutoring in Linux, Python, and Git, as needed. * Enhance your practical ability with Linux.
.
**To adequately tackle the challenges of this project you should have:**
* *some* previous experience working on Linux. * *some* previous experience coding in either Bash or Python. * a *basic* understanding of software testing and management.
.
**Though not mandatory or assumed, the following would be a significant plus:**
* prior experience with the Gentoo Linux distribution * prior experience with integration testing * prior experience with Git * prior experience with Docker
.
**Research Context and Technical Details:**
As part of our work we perform data processing, analysis, and modelling – from the raw signal reconstruction, all the way to 3D visualization rendering. This process encompasses filtering, adaptive nonlinear image transformation, hierarchical statistical modelling, machine learning, and visualization design.
As is obvious in our case, but also representative of biomedical research in general, data analysis workflows are remarkably complex and have extensive dependency requirements. Very often, such complexity is disregarded and obscured, strongly compromising transparency, re-usability, sustainability, and collaborative potential. We overcome this challenge by drawing on insights from reproducible science, and free and open source software engineering. Our packages are written in an easily extendable and understandable language style (functional Python), shared for full transparency, controlled with regard to versioning, and outfitted with a test suite. To tackle the dependency challenge we employ Gentoo Linux, a distribution which allows very clear and precise specification of dependencies – as documented in our relevant publication ( http://riojournal.com/articles.php?id=12095 ) at the Gentoo conference ( http://www.youtube.com/watch?v=7PAm6ND4S-E ).
Currently, we are working on making our software more easily accessible, and more sustainable for development, building on preexisting tools developed in our lab (e.g. gebuilder, a single-purpose system image generator: http://chymera.eu/docs/dominik_semesterarbeit.pdf ).
Implement the required (largely pre-existing) software technologies to ensure the wide-spread usability and long-term sustainability of our core pipeline package.
Our work should allow continuous integration to function reliably.
Additionally, the same images used for continuous integration testing should be accessible to users wishing to execute our software in a virtualization environment.
To fulfill this end result you need to:
* understand key usage examples of our software and write user-friendly demonstrations.
* set up code coverage estimation for the test suite and extend the test suite to >80% coverage.
* establish sustainable environment-image generation (e.g. Docker images providing the required environment for the software).
* establish a test-suite which is aware of dependency changes.
* improve and maintain some of the current scientific software packages
Implement the required (largely pre-existing) software technologies to ensure the wide-spread usability and long-term sustainability of our core pipeline package.
Our work should allow continuous integration to function reliably. Additionally, the same images used for continuous integration testing should be accessible to users wishing to execute our software in a virtualization environment.
To fulfill this end result you need to:
* understand key usage examples of our software and write user-friendly demonstrations. * set up code coverage estimation for the test suite and extend the test suite to >80% coverage. * establish sustainable environment-image generation (e.g. Docker images providing the required environment for the software). * establish a test-suite which is aware of dependency changes. * improve and maintain some of the current scientific software packages