Filippo Vicentini is an Assistant Professor and theoretical physicist who builds ML-inspired computational tools to tackle many-body and open quantum systems, bridging rigorous theory with production-ready scientific software. With a decade of research experience across École Polytechnique, EPFL and the Simons Foundation, he invents both classical and quantum algorithms and maintains widely used open-source packages—contributing core features to flagship projects like NetKet and enhancements to JAX and Flax. Comfortable collaborating with experimentalists, he combines deep physics intuition with systems-level engineering, often implementing performance-sensitive back-end changes (including JAX/Flax integrations and complex-number support) that improve accuracy and robustness. His work uniquely blends neural-network encodings of quantum states with hands-on software craftsmanship, and he’s noted for preferring Julia-like ergonomics while advancing Python/JAX ecosystems.
10 years of coding experience
3 years of employment as a software developer
International Center for Fundamental Physics, Erasmus, International Center for Fundamental Physics, Erasmus at Ecole normale supérieure
Master of Science (M.Sc.), Fisica, 110/110 cum laude, Master of Science (M.Sc.), Fisica, 110/110 cum laude at Università degli Studi di Padova
Doctor of Philosophy (PhD), Theory of Strongly Correlated Photonic fluids, Doctor of Philosophy (PhD), Theory of Strongly Correlated Photonic fluids at Université Paris Diderot
Master Course in Plasma Physics, Master Course in Plasma Physics at Technische Universiteit Eindhoven
Machine learning algorithms for many-body quantum systems
Role in this project:
Back-end Developer
Contributions:57 releases, 1548 reviews, 1034 commits in 3 years 8 months
Contributions summary:Filippo implemented several core features and refactored some key functionality within the NetKet project, including the integration of density matrix, operator methods, and the integration of a new JAX-based model, and features to enhance the performance. The user also focused on improving the accuracy and robustness of the existing testing framework, by addressing issues with the test suite and fixing serialization bugs, as well as adding improved support for open systems. These changes involved interacting with core libraries such as jax and flax.
Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more
Role in this project:
ML Engineer
Contributions:9 reviews, 7 commits, 6 PRs in 1 year 10 months
Contributions summary:Filippo made several contributions focused on expanding the functionality of the JAX library, specifically regarding complex number support. They implemented and tested complex number support for the `random.normal` function and fixed related testing issues. Additionally, the user made improvements to the `logsumexp` function to ensure it correctly handles complex numbers. Furthermore, the user added a link to the GitHub repository in the documentation and fixed an issue related to `check_tree` in the custom_linear_solve.
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.