Role Overview
We're looking for a skilled Freelance Research Software Engineer. Your role will be to design and implement a reusable experimental platform for environmental machine-learning research. This platform will operate on the University’s Moriah HPC cluster, empowering users to independently configure, execute, monitor, reproduce, and compare experiments.
Responsibilities
- Design and develop a modular, user-friendly research platform for scientific experimentation.
- Create reproducible pipelines for dataset ingestion, validation, preprocessing, harmonization, and caching.
- Develop a configuration-driven interface for dataset selection, representation, and model training.
- Integrate with Slurm for job management, including submission, monitoring, logging, and failure recovery.
- Implement an experiment tracking and management system in collaboration with the research team.
- Ensure automatic recording of experimental configurations, including code versions and metrics.
- Provide a browser-accessible interface for experiment visualization and comparison.
- Develop standard templates for baseline models and evaluation metrics.
- Ensure the platform is maintainable and extensible for future enhancements.
- Deliver comprehensive documentation and training for both users and developers.
Required Skills
- Strong experience in Python software development.
- Proven expertise in building maintainable scientific computing, data engineering, or ML systems.
- Familiarity with Linux and HPC environments.
- Experience with Slurm or similar job schedulers.
- Proficiency in scientific Python tools like NumPy, pandas, xarray, and Dask.
- Knowledge of machine-learning workflows, preferably with PyTorch.
- Experience with experiment tracking tools such as MLflow, ClearML, Weights & Biases, or similar.
- Proficiency in Git, testing, environment management, and software reproducibility.
- Ability to process large multidimensional datasets.
Nice to Have
- Background in hydrology, meteorology, climate science, or Earth observation.
- Experience with geospatial Python tools like GeoPandas, Rasterio, or rioxarray.
- Familiarity with scientific data formats such as NetCDF, Zarr, and Parquet.
- Knowledge of graph and spatiotemporal datasets.
- Experience with Apptainer/Singularity or other reproducible HPC environments.
- Skills in developing software for researchers or non-specialist users.