I write the solvers that decide where to take the next step.

period 7.63
Van der Pol, x'' = μ(1 - x²)x' - x, as a phase portrait. The ticks are the vector field, each dot is a trajectory following it, and they all fall onto the same limit cycle in amber. Drag μ to reshape it; the period is measured from the cycle.
  • University of OxfordNumerical Analysis Group, on Irksome
  • TU HamburgSpectral deferred correction in OrdinaryDiffEq.jl
  • Google Summer of Code · SciML240+ merged pull requests in open source

I work on numerical time integration: the solvers that carry a differential equation forward and decide, at every step, how far they can safely go. I maintain solvers in OrdinaryDiffEq.jl as a Google Summer of Code contributor with SciML, mentored by Chris Rackauckas, and I am bringing spectral deferred correction into it with Daniel Ruprecht's group at TU Hamburg. I am also a research intern with Patrick Farrell's Numerical Analysis Group at Oxford, working on Irksome, the Runge-Kutta library for Firedrake.

I wrote PETScDiffEq.jl, which puts PETSc's time integrators behind the SciML interface. Away from numerics I build developer tools, like kitbash and scrollcraft.

The purpose of computing is insight, not numbers.
Richard W. Hamming, Numerical Methods for Scientists and Engineers, 1962
  • May 2026 - PresentOpen Source Developer (Google Summer of Code 2026)NumFOCUS - SciML
  • Aug 2026 - PresentResearch CollaborationTU Hamburg - Chair of Computational Mathematics
  • Sep 2026 - Jun 2027Research InternUniversity of Oxford - Numerical Analysis Group
  • 2026Funded ContributorSciML Small Grants Program (NumFOCUS)

Selected work

all projects
  • SaaS · Sarvam Startup Program

    ScrollCraft

    An AI scroll-animation site builder I launched as a paid SaaS, then made free and open source.

    Next.js 16 · React 19 · TypeScript · Canvas · Sarvam LLM

  • Competition · team Inno8

    Amazon ML Challenge 2026

    Business entity resolution across 10 million noisy multilingual records: 0.988642 public F0.5 among 8,269 teams.

    Python · LightGBM · DuckDB · PyTorch · Multilingual E5

  • Tesseract Hackathon 2026

    impact-adjoint

    Exact gradients through impact events, computed in Julia and served into a single jax.grad.

    Julia · JAX · Tesseract · NumPyro · Docker

  • New SciML package · author and maintainer

    PETScDiffEq.jl

    PETSc's time integrators behind the SciML solve interface. I wrote it and maintain it.

    Julia · PETSc · SciML · MPI

  • Open source · SciML

    OrdinaryDiffEq.jl

    SciML's differential-equation solvers in Julia, and where most of my open source work lives.

    Julia · SciML · Numerical methods

Writing

all posts