Work
More than ten years of distributed systems and scientific computing, from the Large Hadron Collider to climate.
Experience
-
2022 – now
Head of Engineering · Chloris Geospatial, Boston
Chloris measures forest carbon from satellite imagery. I joined as one of two engineers and now lead the engineering team.
- Built a petabyte-scale geospatial data platform whose Dask workloads, on thousands of AWS workers, produce Chloris's commercial product: global carbon-stock maps spanning 25 years.
- Engineered the production ML pipeline behind those maps, from satellite feature generation through model training to continental-scale distributed inference.
- Designed the engine behind Chloris's customer-facing carbon statistics for 72 countries. It aggregates arbitrary regions across the global Sentinel-2 grid (about 20,000 tiles in differing projections) without reprojecting pixels.
- Made spatially correlated confidence intervals on carbon aggregates tractable at continental scale, by approximating an O(N²) error-covariance sum over hundreds of millions of pixels with a banded stencil.
- Now re-architecting the pipeline: Dagster-orchestrated builds of sharded Zarr cubes, GPU inference for PyTorch models on optical and radar time series, and versioned products in a STAC catalog.
-
2016 – 2022
PhD candidate, then postdoc · UCLA and CERN
My thesis analyzed collisions in the Compact Muon Solenoid (CMS) detector at the Large Hadron Collider. Bunches of protons cross 40 million times a second, far too often to record every event: particles from one crossing are still leaving the detector when the next one happens. A chain of fast triggers decides, in real time, which collisions are worth keeping.
A sharper muon trigger. I designed a C++ pattern-recognition algorithm that doubles the position resolution of the low-level hits used to reconstruct muons, so the trigger can better tell an interesting collision from a common one. Its lookup tables were deployed to the detector's FPGA firmware at no added latency, and run in LHC Run 3.
A search for long-lived particles. I searched for a neutral particle that travels some distance before decaying into two muons, a possible dark-matter signature. Custom reconstruction and data-driven background estimates, written in C++ and distributed Python on the CERN grid, narrowed quadrillions of collisions to a few tens of candidates. The resulting limits were world-leading (JHEP 05 (2023) 228).
-
2014 – 2016
Software Engineer, Physics and Algorithms · Mevion Medical Systems, Littleton, MA
- Developed real-time algorithms that modulate proton-beam position on a 250 MeV synchrocyclotron used for cancer treatment.
- Built a GEANT4 particle-transport simulation farm on AWS for radiation-field modeling and verification.
- Simulated and tested a water-cooled, dual-axis magnet prototype.
Education, awards and papers
- Education
- PhD in Physics, UCLA, 2022
- MS in Physics, UCLA, 2017
- BA in Physics, Boston University, 2014, cum laude
- Awards
- Breakthrough Prize in Fundamental Physics, 2025, awarded to the LHC collaborations (as a CMS member)
- AWS Certified Machine Learning – Specialty, 2023
- CERN EcoActions Hackathon, 2021, second place
- Papers
- CMS Collaboration, “Search for long-lived particles decaying to a pair of muons in pp collisions at √s = 13 TeV”, JHEP 05 (2023) 228
- CMS author since 2019
- W. Nash, C. Grefe, “Beam Profiling through Wire Chamber Tracking”, LCD-Note-2013-009, 2013
- Notes
- Comprehensive exam notes: roughly everything a physics undergraduate should know, written while studying for UCLA’s doctoral exam
- Profiling nuisance parameters: an exact solution for the multinomial likelihood, from a statistics course project
- Outreach
- CERN Open Days, 2019
- UCLA Exploring Your Universe, 2017 and 2018
Tools
- Languages
- Python, C++, JavaScript, shell
- Data and ML
- PyTorch, LightGBM, scikit-learn, Dask, Dagster, NumPy, pandas, Numba, Xarray, Zarr, GDAL, STAC
- Infrastructure
- AWS, Kubernetes, Docker, Terraform, GitLab CI, SQL
- Physics
- ROOT, GEANT4, HTCondor, Monte Carlo methods