Jonathan Heek is a research scientist with 11 years of experience bridging production-grade ML engineering and core research, currently based in Amsterdam and working at Anthropic. He spent over seven years at Google as a Research Software Engineer, contributing to foundational JAX and Flax code—improving training checkpointing, convolutional ops, and gradient behavior—which highlights expertise in both numerical kernels and training infrastructure. Trained at Cambridge (MPhil in Machine Learning, Speech and Language Technology) and with a multidisciplinary honours background in CS, math, and physics, he combines rigorous theory with practical systems skills. His open-source contributions to widely used projects like JAX and Flax show a focus on reliability, performance, and developer ergonomics for ML at scale. Jonathan’s early competitive programming background (Dutch IOI team) underpins a talent for algorithmic problem solving and clean implementations. He is especially adept at turning low-level numerical fixes into tangible improvements in large ML codebases, improving both stability and maintainability.
11 years of coding experience
10 years of employment as a software developer
Master of Philosophy - MPhil, MPhil in Machine Learning, Speech and Language Technology, Master of Philosophy - MPhil, MPhil in Machine Learning, Speech and Language Technology at University of Cambridge
High School, Sciences, High School, Sciences at Guido de Bres, Amersfoort, The Netherlands
Honours Degree, Computer Science, Mathematics, and Physics, Honours Degree, Computer Science, Mathematics, and Physics at University College Roosevelt
Flax is a neural network library for JAX that is designed for flexibility.
Role in this project:
Backend Developer & DevOps Engineer
Contributions:6 releases, 478 reviews, 410 commits in 3 years
Contributions summary:Jonathan implemented checkpointing to the imagenet training script, introducing new logic for saving and restoring model checkpoints. This work involved integrating the flax.training.checkpoints module and enhancing the training loop. The user also removed examples/utils, suggesting a cleanup and refactoring effort. These changes indicate the user contributed to improving training stability and maintainability of the flax codebase.
Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more
Role in this project:
ML Engineer
Contributions:2 reviews, 1 commit, 5 PRs in 1 day
Contributions summary:Jonathan primarily contributed to the JAX library, focusing on numerical computation and machine learning functionality. Their work included modifying the `conv_general_dilated` function, fixing issues related to gradients in `jax.nn.elu`, and exposing remote device transfer functionality. These contributions suggest a focus on improving the core computational capabilities and usability of the library for machine learning tasks.
pytorchpythonjitautomatic-differentiationgpu
Find and Hire Top DevelopersWe’ve analyzed the programming source code of over 60 million software developers on GitHub and scored them by 50,000 skills. Sign-up on Prog,AI to search for software developers.