Research Software Engineer
Morgridge Institute for Research · Madison, WI · 4 days ago
EngineeringFull-time
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
- 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.