Research Software Engineer
Role details
Job location
Tech stack
Job description
project's requirements, your responsibilities may include: Core Engine Development: A core part of the role will be contributing to the underlying C++ codebase, focusing on physics engine development, performance optimization, and musculoskeletal modelling capabilities. Language Interoperability: Developing seamless Python bindings to C++ using tools like nanobind, ensuring excellent language interop and a Pythonic user experience without sacrificing performance. Greenfield Innovation: Taking ownership of standalone sub-projects and novel ideas leveraging OPynSim, driving self-managed, clean-slate software development. Quality Assurance: Implementing rigorous unit testing workflows using GoogleTest for C++ and pytest for Python to ensure software reliability and robustness. Writing Documentation, Examples, and Specifications: Authoring clear technical specifications and user-facing documentation using Sphinx to empower the global research community and polish the project's
Requirements
outputs. Research Integration: Collaborating directly with researchers to embed OPynSim into active research pipelines, gathering feedback to iteratively improve the software. Job requirements This role strongly requires: A master's or PhD degree in a STEM field, or equivalent professional experience in engineering scientific/research/3D software. Provable familiarity with software development (e.g. courses taken, work experience, example code/projects). Expertise in any of these topics is highly desirable: Developing software for larger systems with legacy compatibility concerns. Especially systems written in C++/Python. C++ and its surrounding ecosystem (e.g. CMake, googletest, stdlib). Python and its surrounding ecosystem (e.g. PyPi, numpy, pandas, polars, pytest). Especially idiomatic Python API design, and the specifics of the Python language. Language interoperability and foreign function interface (FFI) design. Especially using nanobind and pybind11 to create Python
Benefits & conditions
Pulled from the full job description
- Professional development assistance
- Pension plan, reflected in ME's outstanding, state-of-the-art education, which trains students to become responsible and socially engaged engineers and scientists. We translate our knowledge and insights into solutions to societal issues, contributing to a sustainable society and to the development of prosperity and well-being. That is what unites us in pioneering research, inspiring education and (inter)national cooperation. . Do you want to experience working at our faculty? These videos will introduce you to some of our researchers and their work. Conditions of employment Duration of contract is 1 year Temporarily with a posibility for extension A job of 32-40 hours per week. A salary based on Scale 09 of the CAO for Dutch Universities with a salary between €3708 - €5057 gross per month based on a fulltime contract (38 hours), plus 8% holiday allowance and an end-of-year bonus of 8.3%. An excellent pension scheme via the ABP. The possibility to compile an