Research Software Engineer
The Organization
As an independent research organization, the Morgridge Institute for Research explores uncharted scientific territory to discover tomorrow’s cures. In affiliation with the University of Wisconsin-Madison, we support researchers who take a fearless approach to advancing human health in emerging fields such as regenerative biology, metabolism, virology and biomedical imaging. Through public programming, we work to inspire scientific curiosity in everyday life.
More information and to apply: https://morgridge.org/job-posting/research-software-engineer/
Description:
The Research Software Engineer (RSE) will work to bring modern software engineering techniques and approaches to research projects at the institute as part of long-running engagements and collaborations between scientists. At Morgridge, the RSE will sit at the nexus of exciting research, large-scale computing, and national cyberinfrastructure projects. Whether its bringing a codebase up to production quality, designing programmatic interfaces, or making workloads run more effectively across thousands of cores, the RSE will have a diversity of challenges and help advance Morgridge’s goals of Fearless Science. Potential projects will be diverse, including computational Cryo-EM, storage management for distributed computing, natural language processing, and single-cell RNAseq; projects can be tailored based on the candidate.
The position will work in the Morgridge Research Computing theme and with the Center for High Throughput Computing (CHTC) at the UW-Madison; these groups are led by PIs who lead distributed computing project such as the OSG and the Partnership to Advance Throughput Computing (PATh), a major NSF investment in the vision that high throughput computing can make an outsized impact on science. Combined, the teams have about 25 staff members, operate 25,000 computing cores, and over 100 GPUs – ensuring there are always local resources to draw upon for projects.
Primary Responsibilities:
Interact with scientific group leaders and the Research Computing leads to identify pressing software engineering challenges and scoping / architecting / implementing / supporting a program of work to solve them.
Develop on research codes (typically, C, C++, or Python; but Julia and R are also in use) to make them more robust or sustainable.
Integrate or optimize computing workloads on the identified projects with the HTCondor-, Kubernetes-, or SLURM-based services operated by CHTC and Research Computing.
Effectively communicate with the research teams, mentoring them on best practices for software engineering and emerging topics in the research cyberinfrastructure field (e.g., container management, CI/CD, available national-scale computing services to leverage).
As aligned with experience, lead student software engineering interns on specific semester-long projects.
Provide consulting to Morgridge research teams to help improve the competitiveness of external grant proposals.
Provide assistance with other projects, as necessary to support the overall mission and goals of Morgridge Institute for Research