The Lopez laboratory at Vanderbilt University School of Medicine, Department of Biochemistry, seeks a self-motivated candidate to maintain and build our research software suite to support all aspects of ongoing computational research. The qualified candidate will work in a multi-disciplinary research environment to assist investigators in transitioning their algorithms from prototype code to fully-fledged, production-quality, user-friendly code, and maintain and update code on an ongoing basis. The candidate will work across the software development life cycle, including software design, coding, testing, deployment, and maintenance. The candidate will work with teams comprised of faculty, postdoctoral researchers, graduate students, and undergraduate students to support ongoing research. The candidate will also support lab operations and outreach activities as necessary.
The Lopez lab works in the general area of systems biochemistry and molecular biology, a dynamic field that seeks to understand complex biological systems by integrating data about biochemical components from large quantitative data and building predictive models to develop novel theories and accelerate discovery.
Duties and Responsibilties:
Contribute to scientific software development within a research environment and accelerate software growth from prototype to production:
Respond to and resolve support queries relating to lab software, e.g. on support forums and GitHub issues. This includes independently finding and resolving bugs and issues with code.
Add and improve unit and integration tests using continuous integration (automatic testing) to achieve a high level of test coverage.
Use continuous deployment where possible, e.g. to automatically release new software package versions.
Refactor code for maintainability and to meet software engineering best practices.
Improve and harden existing code by adding additional test cases, development of new features
in response to lab and community needs, improving and simplifying installation procedures, and increase reproducibility and reliability of software across different end-user computing platforms.
Add to and improve technical and user documentation, adding worked examples and tutorials where appropriate.
Improve interoperability with related scientific software via APIs and through collaboration with peers.
Developing/improving user interfaces (command line, graphical, web-based).
Maintain documentation and keep up-to-date as needed.
Maintain software releases for the community (e.g. via GitHub, PyPI, Anaconda, Docker Hub).
Teaching and instruction of software developed within the lab:
Present overviews and tutorials to internal and external audiences.
Develop, implement, or present tutorials, presentations, and workshops.
Assist with systems administration
Software installation, configuration, and updates.
Hardware installation and upgrades.
Internal Number: 2000841
About Vanderbilt University
Vanderbilt University is a center for scholarly research, informed and creative teaching, and service to the community and society at large. Vanderbilt will uphold the highest standards and be a leader in the quest for new knowledge through scholarship, the dissemination of knowledge through teaching and outreach, and the creative experimentation of ideas and concepts. In pursuit of these goals, Vanderbilt values most highly intellectual freedom that supports open inquiry, equality, compassion, and excellence in all endeavors.