Research Software Engineer

The Morgridge Institute for Research
Madison, WI, United States
about 1 month ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Experience required
1 year minimum
Working hours
Regular working hours
Job source

Tech stack

Computing Platforms JIRA C++ (Programming Language) Cloud Computing Computer Programming Continuous Integration Software Debugging Software Design Documents Distributed Systems Github Integrated Development Environments Python (Programming Language)
+4 more
Software Engineering Kubernetes Information Technology Jenkins

Job description

  • 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., * 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.

Working Conditions and Physical Effort:

  • Work is normally performed in a typical office environment.
  • Day-to-day, no or very limited physical effort is required.
  • No or very limited exposure to physical risk.

About the company

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.

Apply for this position

This job is hosted externally. Click below to view the full posting and apply.

Apply on www.indeed.com

Good distractions

Talks and stories from around this role — technically off-topic, practically not.

3:05 min

Integrating an assistant application with Jira software

Felix Augenstein · LIVE

6:36 min

Funding open source through GitHub Accelerator and Sponsors

Stormy Peters · World Congress 2023

1:02 min

Applying an ETL methodology to infrastructure configuration management

Axel Barbier · World Congress 2023

2:09 min

Defining scientific software development in research facilities

Ingvord Ingvord · World Congress 2024

5:47 min

Integrating user stories and test automation via Jira tools

Christoph Ruggenthaler · LIVE

1:20 min

Identifying multi-disciplinary talent for developer experience engineering roles

Hazal Mestci +1 · Coffee With Developers

Videos

See all

Related articles

See all