About me

I'm an applied mathematician and engineer working on data-driven simulation of physical systems. I combine reduced-order modelling, data assimilation, and machine learning with physics-based solvers across diverse engineering and scientific applications. Ultimately, I want to develop technologies that help us understand and address the challenges of climate change and contribute to a more sustainable future for everyone.

What I do

Simulation Systems

Reduced-order models for the efficient solution of large-scale problems

I build cheap alternatives to the traditional, expensive simulation pipelines evaluating real-world physical systems, such as weather forecasting. Instead of requiring hours' (or days') worth of computations, reduced-order models take minutes to run, while still capturing the essential physics of the problem.

Forecasting Pipelines

Data assimilation and uncertainty quantification for digital twins

These techniques combine sparse, noisy observations with a physical model to produce unknown quantities of interest and their uncertainty. A typical example: given a few imperfect measurements of wind speed and humidity in a given region, what is the most likely state of the atmosphere, and how confident can we be in that estimate? To answer this, I develop Bayesian methods, variational approaches and other staples of modern data science.

Scientific Software

Building performant, reliable software for the scientific community

I develop performant scientific software that is designed to deliver meaningful results across a range of engineering and scientific applications. As I tackle primarily large-scale physical problems, HPC capabilities are a central feature of the code I write. I build with reproducibility and documentation from the outset, and I make my work open source so that it can be used, extended, and built upon by anyone interested.

Machine Learning

Developing modern approaches for scientific applications

The massive availability of data has opened up new opportunities for machine learning techniques. These present valid alternatives to traditional physics-based approaches, as they enable the discovery of patterns and relationships even in highly nonlinear regimes. Although it can sometimes be difficult to keep up with a field that seems to develop almost daily, I try to stay on top of these developments and actively explore and implement new methods in my research. As there is still a lot to discover, this is an exciting area to work in: there is still plenty of room to figure out what really works, when, and why.

Current work

Digital twins for offshore renewable energy

Right now that's DigiOcean4Solar, an NWO Vidi project that's building a digital framework to simulate how waves, wind, and floating solar platforms interact at the scale of a whole farm. One island's wake changes the conditions the next island downstream has to be designed for, and modelling the whole farm as a system is what makes that visible ahead of time. I work on the forecasting and uncertainty quantification side of the project, while also developing reduced-order models to make these incredibly expensive simulations computationally feasible. By bringing all these pieces together, we aspire to create an actual digital ocean for solar farms: a virtual farm whose state is known in near real time, continuously updated using information from remote sensors such as satellites.

Selected Work

Software I currently develop

GridapROMs.jl

GridapROMs.jl

Reduced-order modelling toolkit for parameterised PDEs

Repository of reduced-order models written in Julia. It tackles a wide range of applications, from electromagnetics to nonlinear fluid dynamics, from problems defined on moving geometries to ones partitioned across multiple processors in HPC-friendly environments. Speedups of several thousand times over full-order simulations are possible with these algorithms.

Opal.jl

Opal.jl

Data assimilation across ODEs, PDEs, and reduced-order surrogates

Data assimilation framework written in Julia. It tackles a wide range of problems, from ordinary differential equations to high-dimensional partial differential equations, from full-order models to reduced-order surrogates. Kalman, particle, and variational filters sit behind one interface, with add-ons for localisation, inflation, and bias correction, and direct integration with ROM pipelines for efficient simulation.

Working Style

I care about turning mathematically sound ideas into scientific software that is reliable, scalable, and useful beyond the problem it was originally designed to solve
Current domain Offshore renewable energy and environmental risk
Core methods Reduced-order modelling, filtering, UQ, scientific ML
Main languages Julia, Python, C++, MATLAB
Output style Open-source libraries, papers, reproducible workflows

Highlights

Recent trajectory

2026 - present

TU Delft, DigiOcean4Solar

Developing digital-twin and large-scale multiphysics frameworks for offshore floating solar farms, with a forecasting and uncertainty quantification layer that feeds into how a farm's layout and structures get designed.

2022 - 2025

PhD in Applied Mathematics, Monash University

Built reduced-order methods, novel tensor-based compression workflows, unfitted finite element techniques, and scientific software for parameterised PDEs, especially in the context of computational fluid dynamics.

2020 - 2021

R&D internship at CSEM (Swiss Center for Electronics and Microtechnology)

Worked on topology optimisation for compliant aerospace mechanisms under manufacturing and stress constraints, connecting numerical methods to engineering requirements.

Thoughts

A few things I've learned along the way

Research doesn't end with the method

A mathematical method is only the beginning. I care about turning it into software that is clear enough to understand, robust enough to reuse, and flexible enough to apply beyond the problem that motivated it. Good architecture, testing, examples, and performance are part of the research too.

Sometimes the best optimisation isn't more computing power

In GridapROMs.jl, a simple change in the order of for loops turned out to matter more than parallelising them. Looping over mesh cells on the outside and handling every parameter value together on the inside, through a lazy evaluation structure built on Gridap's lazy-array machinery, reuses local finite-element caches across parameter values and cuts memory use dramatically without changing the underlying mathematics. A useful reminder that performance often starts with looking carefully at how a computation is organised.

Simple models can be surprisingly powerful

Reservoir computing is a good example. Only the linear readout of an echo state network needs training, so it skips the expensive automatic differentiation most machine learning methods rely on and stays cheap to retrain. Echo state networks are also naturally suited to capturing time-evolving processes, which makes them a good fit for bias correction, where the model has to keep adapting as new observations arrive.

There is still a lot we don't know

Machine learning algorithms used as reduced-order modelling tools are developing incredibly quickly, and it can be difficult to keep up. I try to stay close to these developments and explore them in my research, but I don't think we are near having a method that we understand well enough to trust reliably for every problem. There is still plenty to learn about where each approach holds up, where it doesn't, and why.