Get more replies from employers
Send a job-specific resume in minutes.
The Morgridge Institute for Research invites applications for a Research Software Engineer to advance modern software engineering within long-running research collaborations. The role sits at the nexus of research, large-scale computing, and national cyberinfrastructure projects, focusing on the Pelican Platform for data delivery across the US.
You will work with Morgridge Research Computing and UW‑Madison's CHTC, contributing to high-throughput computing initiatives and mentoring interns.
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.
Job Type: Full‑time
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 interact 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.
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.