I am currently a tech lead on ML for protein engineering (lead optimization) at Cradle Bio, and wrote much of the open-source scientific JAX ecosystem (see below). I hold an honorary lectureship at Imperial College London. I previously worked at Google X, and received my PhD from Oxford on neural differential equations.
My current interest is AI+biology. Right now that mostly means antibody engineering. I also moonlight on many other topics in scientific ML. (Numerics, neural ODEs, soil moisture, black hole simulations, ...) I am also known for having strong opinions on the importance of good software development! :)
-
Equinox: elegant neural networks in JAX.
-
Diffrax: numerical ODE/SDE solvers in JAX.
-
jaxtyping: shape/dtype annotations for arrays. (Also supports PyTorch etc, despite the name!)
Tip
Click to expand: a full list of other libraries for JAX / Python / publishing / etc.
-
Lineax: linear/least-squares solvers.
-
Optimistix: root finding, least squares, etc.
-
sympy2jax: optimise your symbolic expressions via gradient descent!
-
Quax: multiple dispatch in JAX!
-
ESM2quinox: ESM2 implemented in JAX.
-
tinyio: Ever used asyncio and wished you hadn't? A tiny (~300 lines) event loop for Python.
-
patdb: A fast, pretty, TUI/REPL Python debugger. Includes syntax highlighting, support for re-raised and grouped exceptions, and is robust to asyncio/threading/multiprocessing.
-
Wadler-Lindig: A better Python pretty-printer, based upon the theory of Wadler and Lindig.
-
action_update_python_project: GitHub CI/CD to automatically deploy Python projects to PyPI and GitHub when a version is bumped.
-
typst-pyimage: A Typst extension adding support for generating figures using inline Python code.
-
typst-marimo: Typst extension, adding support for generating figures and processing values using a companion Marimo notebook.
-
typsy: Classes/structs, pattern matching, safe counters... and more! Your one-stop library for programming tools not already in core Typst.
-
MkPosters: Write academic posters in Markdown, style them with CSS, save them to PDF. No wrestling with LaTeX.
-
mkdocs_ipynb: Use
*.ipynbfiles (Jupyter notebooks) when building documentation with MkDocs. -
mkdocs_include_exclude_files: Include or exclude specific files when building documentation with MkDocs.
- FromFile.jl: An improved import+include system for Julia. Makes your files self-contained and easier to understand.
- Personal website: kidger.site
- Google scholar: here
- Bluesky:
- Twitter:
- Neural ODE/SDE textbook: arXiv/2202.02435






