Numerical software. Time integration, solver internals, and the occasional tool.
Google Summer of Code 2026 at SciML, under NumFOCUS.
Research with the Chair of Computational Mathematics, TU Hamburg, and the Numerical Analysis Group, Oxford.
375+ merged pull requests to projects maintained by others, 214 of them in SciML.
Portfolio · LinkedIn · Codeforces
❦
The purpose of computing is insight, not numbers.
Richard W. Hamming, Numerical Methods for Scientists and Engineers, 1962
- PETScDiffEq.jl - PETSc's TS time integrators behind the SciML
solveinterface: explicit RK, Rosenbrock-W, BDF, Gauss IRK, ARK IMEX and DAE solvers, with PETSc's discrete adjoint for sensitivities. Registered in General, and the package I spend most maintenance time on. - scrollcraft - scroll-animation site builder. Launched as a paid SaaS, since made free and open source; also a Claude Code plugin.
- kitbash - one open format for AI agent skills, compiled to ten coding agents, with the standing token cost of each output measured at build time. On npm and Homebrew.
- Amazon ML Challenge 2026 - business entity resolution across 10 million noisy multilingual records against 1.7 million reference businesses: 0.988642 public F0.5 among 8,269 teams, built in 44 hours on one laptop with team Inno8. Write-up.
- Assay.jl - Bayesian inference from first principles: MCMC, SMC and ADVI implemented rather than imported, with the SBC and Geweke checks that prove the numbers are right.
- OrdinaryDiffEq.jl - the ODE, DAE and DDE time integrators, and where most of my work lives. The spectral deferred correction family with adaptive steps and the MIN-SR diagonal sweepers, the explicit MRI-GARK multirate methods, the order-10 MSRK10 tableau, and correctness fixes across the Rosenbrock, FIRK and ESDIRK solvers.
- SciMLBenchmarks.jl - eight index-2 and index-3 DAE benchmarks from the Bari test set, funded by the SciML Small Grants Program, plus work-precision runs for the multirate and stiff families.
- PETSc.jl - wrapper fixes found while building PETScDiffEq.jl.
- Elsewhere in the stack: ExponentialUtilities.jl, ModelingToolkit.jl, SciMLOperators.jl, NonlinearSolve.jl, LinearSolve.jl, SciMLSensitivity.jl, DiffEqNoiseProcess.jl, SciMLBase.jl, Documenter.jl, EvoTrees.jl, SymbolicRegression.jl and ArrayInterface.jl.
- omi - the open-source AI wearable. Crash and data-loss fixes in the app, from wiped SD card recordings to decoders that one bad entry could take down, and the bot that runs its community support queue.
- Pasteur Labs - Tesseract with its PyTorch and JAX bindings, and Mosaic: dtype checks at the runtime boundary, gradients through list-valued fields, and adjoints for FEniCS solvers.
- ZoneMinder - output escaping, accessibility, PHP 9 forward-compatibility and schema fixes in the video surveillance stack.
- Irksome - Runge-Kutta time stepping for finite element problems in Firedrake, with Oxford's Numerical Analysis Group.
- openpilot - comma.ai's driver assistance system. Its test runner was skipping every parameterized test class; now they run.
- tt-metal - Tenstorrent's kernel stack. The ttnn kernel sources that shipped missing from the package, experimental ops included.
- Music Blocks - Sugar Labs' visual music programming environment for children.
- Cloud native - apiserver-network-proxy (Kubernetes SIG) and Meshery.
- GSoC 2026 final report - what a summer of tableau-ification and multirate integrators actually produced.
- singhharsh.in - notes on numerical methods, open source, and the things I build.