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 virology, advanced multi-scale fluorescence and electron microscopy, metabolism and regenerative biology. Through public programming, we work to inspire scientific curiosity in everyday life.
Job Purpose:
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 it’s using agentic AI to enhance a codebase, making data transfers more robust, 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. The initial projects will focus on development of the Pelican Platform, which is used for a distributed data delivery and transfer system across the US.
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 cyberinfrastructure projects such as 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, and the Pelican Platform. Combined, the teams have about 25 staff members, operate 25,000 computing cores and over 300 GPUs, and interacts with over 100 external universities – ensuring there are always interesting challenges in distributed systems.
The team heavily leverages agentic AI as part of the development workflows: understanding of system fundamentals (thinking through components may interact, potential failure points, designing testing regimes) and reviewing code changes are more important than writing code in a specific language.
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 distributed systems code bases (typically languages include Go but C++ and Python are also used) to make them more robust or implement new functionality.
- Assist the operations team in debugging distributed systems and to deploy newly-developed features.
- As aligned with experience, lead student software engineering interns on specific semester-long projects.
- Provide assistance with other projects, as necessary to support the overall mission and goals of the Morgridge Institute for Research
Requirements
To perform this job successfully, an individual must be able to perform each primary duty satisfactorily. Some of the duties can be learned through on-the-job training. The requirements listed below are representative of the knowledge, skill, and/or ability required. Reasonable accommodation may be made to enable individuals with disabilities to perform the primary duties.
Education and Experience:
- A Bachelor’s degree in Computer Science, Mathematics, Physics, or biological sciences; Master’s degree preferred.
- 1+ years of working with software engineering, preferably in a research environment; 3+ years preferred.
- Programming experience in either Go, Python or C++; Go preferred.
- Experience in utilizing large-scale computing environments such as batch or cloud is preferred.
Knowledge, Skills and Abilities Required:
- Strong systems design and programming skills.
- Experience in writing design documents as part of feature design
- Ability to keep projects organized in a project management / issuer tracker system such as JIRA.
- Familiarity of software development environments like GitHub and modern CI/CD tooling such as GitHub Actions or Jenkins.
- Knowledge of working with the following technologies and environments is desired: HTCondor, Containers/Kubernetes, Pelican, or federally-funded cyberinfrastructure.
To apply:
Qualified individuals interested in this opportunity are required to submit a cover letter and resume via the link below.