experiences
mostly computational science. machine learning, and research software engineering...
Below are my “formal” work experiences. I also contribute to several open-source scientific software, and I consider that as an “experience” too (see /opensource). I have also mentored several students and researchers who are new at writing code for research/scientific software (see /service).
TL;DR
- Assistant Research Software Engineer | August 2024 - Present | Centre for Advanced Research Computing, University College London
- Research Fellow (bachelor’s thesis) | January 2024 - August 2024 | CERN, Princeton University, IRIS-HEP
- Visiting Student Researcher (Mitacs Globalink Research Intern) | June 2023 - August 2023 | McMaster University
- Research Fellow | June 2022 - September 2022 | Institute for Research and Innovation in Software for High Energy Physics, Princeton University
- Technical Writer and Open-Source Developer | May 2022 - October 2022 | FluxML, Julia Programming Language
- Google Summer of Code Developer | May 2021 - September 2021 | PyBaMM (Python Battery Mathematical Modeling), NumFOCUS
Full-time experience
Assistant Research Software Engineer
Centre for Advanced Research Computing, University College London
Dr. Sam Cunliffe
August 2024 - Present | London, United Kingdom
- Developing course contents and jekyll/pyodide infrastructure for “Research Software Engineering with Python.”
- Adding GPU (CuPy) and autodiff (JAX) support to full-universe simulations for cosmology (GLASS).
Research experience
Research Fellow (bachelor’s thesis)
CERN, Princeton University, IRIS-HEP
Dr. Jim Pivarski (Princeton University)
January 2024 - August 2024 | Geneva, Switzerland
- Thesis titled “Computational upgrades to the high energy physics analysis pipeline for future LHC/HL-LHC runs.”
- Added autodiff (JAX) support to Python-based HEP ecosystem, and distributed (Dask) and symbolic (SymPy) computing support to vector manipulations.
- Implemented non-uniform rebinning for boost-histogram and developed a new package for histograms on CUDA. Migrated the vector manipulation backend of the analysis framework (Coffea) used at Fermilab and CMS.
Visiting Student Researcher (Mitacs Globalink Research Intern)
McMaster University
Prof. Jacques Carette
June 2023 - August 2023 | Hamilton, Ontario, Canada
- Worked with functional programming, type theory, and logic to add proofs and algorithms for data containers and mathematical operations in Agda’s standard library.
- Significantly reduced library’s compile time by refactoring the existing API and simplifying the dependency graph.
Research Fellow
IRIS-HEP, Princeton University
Dr. Henry Schreiner (Princeton University), Dr. Jim Pivarski (Princeton University)
June 2022 - September 2022 | Remote
- Co-authored a Python-based Lorentz vector manipulation library with support for ragged data and JIT compilation.
- Worked on Scientific Python’s developer guides and tools, and fixed bugs in the Scikit-HEP ecosystem.