Saransh Chopra
academics by day, open-source by night
I am a master’s (computational science and engineering) student at EPFL (École Polytechnique Fédérale de Lausanne / Swiss Federal Technology Institute of Lausanne). At the moment, I am interning with the Cognitive AI team at Logitech, Switzerland.
Before joining EPFL, I was a research software engineer at UCL’s Advanced Research Computing Centre, where I worked on HPC and DevOps projects. Even before UCL, I worked as a research software engineer at CERN (under the Princeton Institute for Computational Science and Engineering), writing software for computational high-energy physics. I hold an undergraduate degree in computer science and mathematics from the University of Delhi. Besides writing code, I am also quite fond of teaching courses and workshops, broadly on scientific and high-performance computing, software engineering, and numerical mathematics (/teaching).
Apart from the experiences above, I have also dabbled with functional programming and type theory, more computational high-energy physics and numerical mathematics, applied machine learning (for science and social good), technical writing for ML frameworks, and mathematical modeling of batteries (/experiences). Moreover, I develop and maintain different parts (infrastructure, developer tooling, code, docs, …) of several open-source scientific software (/opensource).
I am specifically interested in Computational Mathematics (Numerical Methods, Type and Proof Theory, Automatic Differentiation), Scientific Computing (High-Performance Computing, Data-Intensive Computational Methods, DevOps), and Applied Machine Learning (for Science, social good, and more). I advocate for and am extremely passionate about open-source and open-science.
news
| Feb 27, 2026 | Abstract titled “step2point: Enhancing data preparation for point-cloud-based fast simulation” accepted at the 28th International Conference on Computing in High Energy and Nuclear Physics as an oral presentation. |
|---|---|
| Feb 16, 2026 | I have joined Logitech’s Cognitive AI team in Switzerland as an AI Engineering intern. |
| Nov 1, 2025 | I have been invited to speak at the RSE Career Talks Panel at ETH Zurich (RSE Swiss). |
| Oct 7, 2025 | Conference proceedings for CHEP (27th International Conference on Computing in High Energy and Nuclear Physics) 2024 titled “A new SymPy backend for Vector: Uniting experimental and theoretical physicists” published in EPJ Web of Conferences. |
| Sep 8, 2025 | I have joined École Polytechnique Fédérale de Lausanne (Swiss Federal Technology Institute of Lausanne - EPFL) as a master’s (computational science end engineering) student!!! This means that I am no longer a research software engineer at UCL’s Advanced Research Computing Centre :( |
| Jul 30, 2025 | Abstract titled “Navigating through Research Software Engineering as an undergraduate” accepted at the Swiss RSE in action, EnhanceR Symposium 2025 as a show-and-tell session (could not attend as the visa arrived late). |
| Jul 16, 2025 | Abstract titled “Using Python’s array API standard for ESA’s Euclid mission” accepted at the Swiss Python Summit as a standard talk. |
| Jul 16, 2025 | I will be attending Google Summer of Code’s Mentor Summit (as NumFOCUS’ second delegate) in Munich later this year. Ping me if you’re attending too! |
| Jun 30, 2025 | I have been promoted to Research Software Engineer at the Advanced Research Computing Centre, University College London. |
| Jun 17, 2025 | I have been selected for (and will be attending) the Swiss National Supercomputing Centre’s Summer University on Effective High-Performance Computing and Data Analytics. |
| May 29, 2025 | I will be leading/helping with “python-tooling: transforming Python scripts into a Python package with good software engineering practices” and “First contribution to open-source software” workshops at UCL’s Festival of Digital Research, Innovation & Scholarship. |
| May 25, 2025 | First-author paper titled “Vector: JIT-compilable mathematical manipulations of ragged Lorentz vectors” published in the Journal of Open Source Software. |
| Apr 7, 2025 | Abstract titled “Differentiable Computation with Awkward Array and JAX” accepted at the 5th MODE workshop on Differentiable Programming for Experiment Design as a standard talk. |
| Feb 3, 2025 | I will be attending PyBaMM Battery Modelling Conference (and helping with the training) in February, thanks to a generous grant provided by the conference. Ping me if you will be around! |
| Jan 26, 2025 | I will be attending FOSDEM and CHAOSSCon in February. Ping me if you will be around! |
| Jan 17, 2025 | At UCL, I am now partly funded by the UK Space Agency’s EUCLID UK to work on GLASS (Generator for Large Scale Structure). |
| Sep 7, 2024 | At UCL, I am now partly funded by the GPU embedded Computational Science and Engineering grant from the Edinburgh Parallel Computing Centre to implement GPU and autodiff support for GLASS (Generator for Large Scale Structure). |
| Aug 16, 2024 | I have joined UCL’s Advanced Research Computing Centre as an Assistant Research Software Engineer! |
| Aug 9, 2024 | I will be attending PyHEP.dev and RSECon in August and September, thanks to the generous grants provided by both the conferences. Ping me if you will be around! |
| Aug 1, 2024 | I have graduated from University of Delhi’s Cluster Innovation Centre (department rank 2; CGPA 9.505/10). |
| Jul 11, 2024 | Article titled “Predicting efficacy of antiseizure medication treatment with machine learning algorithms in North Indian population” published in Epilepsy Research. |
| Jun 29, 2024 | Abstract titled “A new SymPy backend for vector: uniting experimental and theoretical physicists” accepted at the 27th International Conference on Computing in High Energy and Nuclear Physics as a poster. |
| Jun 5, 2024 | Abstract titled “A new SymPy backend for vector: uniting experimental and theoretical physicists” accepted at the 7th International Workshop on Python in High Energy Physics (PyHEP) as a standard talk. |
| Mar 12, 2024 | I have joined the NumFOCUS Affiliated Project Selection Committee (APSC). |
| Feb 22, 2024 | I will be supervising selected Google Summer of Code applicants working with the sub-orgs - PyBaMM (Python Battery Mathematical Modelling) and OSL (Open Science Labs) - under NumFOCUS (umbrella org). |
| Jan 11, 2024 | I have joined CERN + Princeton Institute for Computational Science and Engineering (PICSciE) / Princeton Research Computing Group as a Research Software Engineer! |
| Oct 9, 2023 | Abstract titled “What’s new with Vector? First major release is out!” accepted at the 6th International Workshop on Python in High Energy Physics (PyHEP)) as a lightning talk. |
| Sep 13, 2023 | I have been added to Astropy’s GitHub organisation for developing a pre-commit hook for them! |
| Sep 10, 2023 | I now maintain asmeurer/removestar and conda-forge/removestar-feedstock. |
| Aug 9, 2023 | I have joined Open Science Labs Incubator and I now maintain osl-incubator/scicookie. |
| Jun 5, 2023 | I have started working on agda-stdlib under Prof. Jacques Carette at McMaster University as a Mitacs Globalink Research Intern. |
| Feb 22, 2023 | I will be supervising selected Google Summer of Code applicants working with the sub-orgs - PyBaMM (Python Battery Mathematical Modelling) and OSL (Open Science Labs) - under NumFOCUS (umbrella org). |
| Feb 20, 2023 | Lightning talk titled “Lessons learned while working as a technical writer at FluxML” accepted at JuliaCon 2023. |
| Dec 7, 2022 | I have joined PyBaMM’s Steering Council! |
| Oct 2, 2022 | I have joined FluxML’s GitHub organisation. |
| Sep 6, 2022 | I now maintain scikit-hep/vector and conda-forge/vector-feedstock. |
| Aug 22, 2022 | Abstract titled “Constructing HEP vectors and analyzing HEP data using Vector” accepted at the 5th International Workshop on Python in High Energy Physics (PyHEP)) as a notebook talk. |
| Aug 9, 2022 | Abstract titled “Compiling Awkward Lorentz Vectors with Numba” accepted at the 21st International Workshop on Advanced Computing and Analysis Techniques (ACAT) in Physics Research as a poster session. |
| Jun 21, 2022 | I have been awarded (one of the 500 recipients over the world) the Shubhra Kar Linux Foundation Training (LiFT) Scholarship in the “Developer Do-Gooders” category for my work on open-sorce scientific software. |
| Jun 12, 2022 | I will be leading a talk at PyCon APAC 2022. |
| Jun 1, 2022 | I have started working as a Research Fellow at IRIS-HEP - Princeton Research Computing with the Analysis Systems group (Scikit-HEP), under Dr. Henry Schreiner and Dr. Jim Pivarski. |
| May 26, 2022 | I have started working as a technical writer at FluxML under Julia Season of Contributions. |
| May 19, 2022 | I will be leading a talk at EuroPython 2022 on the topic “Code coverage through unit tests running in sub-processes/threads: Locally and automated on GitHub”. |
| Mar 2, 2022 | I have received a grant to lead a workshop at PyCon Italia 2022 in-person. |
| Feb 21, 2022 | Scientific software paper accepted in the Journal of Open Source Software - liionpack: A Python package for simulating packs of batteries with PyBaMM. |
| Feb 1, 2022 | I will be supervising Google Summer of Code students under PyBaMM, NumFOCUS, on projects involving, but not limited to, documentation, DevOps, parameterisation, and visualization. |
| Nov 18, 2021 | PyBaMM’s contributor community received the Faraday Institution Collaboration Award! |
| May 27, 2021 | Won a hackathon conducted by Elastic out of 2500+ participants! |
| May 17, 2021 | Started working as a Google Summer of Code student developer with PyBaMM (Python Battery Mathematical Modeling), NumFOCUS, under Dr. Valentin Sulzer, Dr. Ferran Brosa Planela, and Dr. Robert Timms. |
| Aug 31, 2016 | Discovered an asteroid having a fixed orbit around Sun by analysing the data provided by the Pan-STARRS laboratory!! Asteroid temporarily named as - 2016 JC20 P10vKdL. |
selected publications
- A new SymPy backend for Vector: Uniting experimental and theoretical physicistsChopra, Saransh, and Pivarski, JimEPJ Web Conf. 2025
Vector is a Python library for 2D, 3D, and Lorentz vectors, especially arrays of vectors, to solve common physics problems in a NumPy-like way. Vector can currently perform numerical computations, and through this paper, we introduce a new symbolic backend that extends Vector’s utility to theoretical physicists. The numerical backends of Vector enable users to create pure Python object, NumPy arrays, and Awkward arrays of vectors. The object and Awkward backends are also implemented in Numba to leverage Just-In- Time (JIT) compiled vector calculations. The new symbolic backend, built on top of SymPy expressions, showcases Vector’s ability to support far-flung cases and allows SymPy methods and functions to work on vector classes. Moreover, apart from a few software, high energy physics has maintained a strict separation between tools used by theorists and experimentalists, and Vector’s SymPy backend aims to bridge this gap, providing a unified computational framework for both communities.
- Vector: JIT-compilable mathematical manipulations of ragged Lorentz vectorsChopra, Saransh, Schreiner, Henry, Rodrigues, Eduardo, Eschle, Jonas, and Pivarski, JimJournal of Open Source Software 2025
Mathematical manipulation of vectors is a crucial component of data analysis pipelines in high energy physics, enabling physicists to transform raw data into meaningful results that can be visualized. More specifically, high energy physicists work with 2D and 3D Euclidean vectors, and 4D Lorentz vectors that can be used as physical quantities, such as position, momentum, and forces. Given that high energy physics data are not uniform, vector manipulation frameworks or libraries are expected to work readily on non-uniform or ragged data, data with variable-sized rows (or a nested data structure with variable-sized entries); thus, the library is expected to perform operations on an entire ragged structure in minimum passes. Furthermore, optimizing memory usage and processing time has become essential with the increasing computational demands at the Large Hadron Collider (LHC), the world’s largest particle accelerator. Vector is a Python library for creating and manipulating 2D, 3D, and Lorentz vectors, especially arrays of vectors, to solve common physics problems in a NumPy-like (Harris et al., 2020) way. The library enables physicists to operate on high energy physics data in a high level language without compromising speed. The library is already in use at LHC and is a part of frameworks, like Coffea (Gray et al., 2023), employed by physicists across multiple high energy physics experiments.
- Predicting efficacy of antiseizure medication treatment with machine learning algorithms in North Indian populationKaushik, Mahima, Mahajan, Siddhartha, Machahary, Nitin, Thakran, Sarita, Chopra, Saransh, Tomar, Raj Vardhan, Kushwaha, Suman S., Agarwal, Rachna, Sharma, Sangeeta, Kukreti, Ritushree, and Biswal, BibhuEpilepsy Research 2024
Purpose This study aimed to develop a classifier using supervised machine learning to effectively assess the impact of clinical, demographical, and biochemical factors in accurately predicting the antiseizure medications (ASMs) treatment response in people with epilepsy (PWE). Methods Data was collected from 786 PWE at the Outpatient Department of Neurology, Institute of Human Behavior and Allied Sciences (IHBAS), New Delhi, India from 2005 to 2015. Patients were followed up at the 2nd, 4th, 8th, and 12th month over the span of 1 year for the drugs being administered and their dosage, the serum drug levels, the frequency of seizure control, drug efficacy, the adverse drug reactions (ADRs), and their compliance to ASMs. Several features, including demographic details, medical history, and auxiliary examinations electroencephalogram (EEG) or Computed Tomography (CT) were chosen to discern between patients with distinct remission outcomes. Remission outcomes were categorized into ‘good responder (GR)’ and ‘poor responder (PR)’ based on the number of seizures experienced by the patients over the study duration. Our dataset was utilized to train seven classical machine learning algorithms i.e Extreme Gradient Boost (XGB), K-Nearest Neighbor (KNN), Support Vector Classifier (SVC), Decision Tree (DT), Random Forest (RF), Naïve Bayes (NB) and Logistic Regression (LR) to construct classification models. Results Our research findings indicate that 1) among the seven algorithms examined, XGB and SVC demonstrated superior predictive performances of ASM treatment outcomes with an accuracy of 0.66 each and ROC-AUC scores of 0.67 (XGB) and 0.66 (SVC) in distinguishing between PR and GR patients. 2) The most influential factor in discerning PR to GR patients is a family history of seizures (no), education (literate) and multitherapy with Chi-square (χ2) values of 12.1539, 8.7232 and 13.620 respectively and odds ratio (OR) of 2.2671, 0.4467, and 1.9453 each. 3). Furthermore, our surrogate analysis revealed that the null hypothesis for both XGB and SVC was rejected at a 100 % confidence level, underscoring the significance of their predictive performance. These findings underscore the robustness and reliability of XGB and SVC in our predictive modelling framework. Significance Utilizing XG Boost and SVC-based machine learning classifier, we successfully forecasted the likelihood of a patient’s response to ASM treatment, categorizing them as either PR or GR, post-completion of standard epilepsy examinations. The classifier’s predictions were found to be statistically significant, suggesting their potential utility in improving treatment strategies, particularly in the personalized selection of ASM regimens for individual epilepsy patients.
