Student Research Assistant

  • project:

    Computational Cardiac Modeling

  • position:

    Hiwi position

  • institute:

    Institute of Biomedical Engineering

  • starting date:

    asap

  • contact:

    Dr-Ing. Tobias Gerach

Download as PDF

We are looking for student to join the openCARP team as a HiWi, replacing and extending the legacy “param” tool with a modern code‐generation utility that supports nested C++ structs. This role combines hands‐on software tooling, and open‐source collaboration, offering valuable research and development experience in scientific software engineering.

Motivation
We aim to modernize the parameter interface in openCARP by replacing the outdated “param” tool with a flexible, maintainable solution that can generate multi‐level struct definitions. This upgrade will improve code consistency, reduce manual boilerplate, and streamline the workflow for all openCARP users. As part of the development team, you will gain practical experience in designing domain‐ specific languages, parser development, and integrating with C++ build systems—skills highly valued in both academia and industry.

Task
You will develop a tool that replaces “param” in openCARP with a more modern code generation utility that:
1. Takes a parameter specification (reusing the current “.prm” format or another expressive data-description language such as YAML or JSON), but with support for nested, hierarchical definitions (i.e. structs within structs, potentially to arbitrary depth).
2. Produces C++ (or header + source) code that:
  • Defines the corresponding nested struct types.
  • Implements parsing, validation, default-value logic and documentation for each field.
  • Hooks into your command-line or configuration framework so users can set parameters via flags, files, or environment variables.
3. Integrate the generated code into the build system Requirements
  • Preferably enrolled in a Master’s program in Computer Science (or closely related field).
  • Experience in C++ (modern standards) and with build systems (CMake).
  • Good command of software engineering practices: version control (Git), unit testing, and code reviews.
  • Experience with Python and CI/CD are helpful.

Requirements
• Preferably enrolled in a Master’s program in Computer Science (or closely related field).
• Experience in C++ (modern standards) and with build systems (CMake).
• Good command of software engineering practices: version control (Git), unit testing, and code reviews.
• Experience with Python and CI/CD are helpful.