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 /teaching).
TL;DR
- Assistant Research Software Engineer | August 2024 - Present | Advanced Research Computing Centre, 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
Advanced Research Computing Centre, University College London
Dr. Sam Cunliffe
August 2024 - Present | London, United Kingdom
- “Generalist” staff member in the Research Software Engineering group of the Advanced Research Computing Centre. Mostly involved with the HPC, DevOps, and Education sub-groups, open-source research theme, and Python tooling.
- Adding GPU (CUDA) and automatic differentiation support to large-scale cosmological simulations (GLASS) for ESA’s Euclid space mission (GPU embedded Computational Science and Engineering grant by EPCC + Euclid space mission grant by the UKSA).
- Involved in migrating and re-architecturing (mostly on the observability, metrics, and monitoring side) UCL’s XNAT deployment from VMs to ARC’s private kubernetes infrastructure (Condenser).
- See /teaching for teaching and community activities.
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.”
- Worked on autodiff (JAX) support for Awkward Arrays, added symbolic (SymPy) computing support to vector manipulations, and extended autodiff and distributed computing support to a few other libraries.
- 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.