I am an MSc in computational science and engineering student at EPFL - École Polytechnique Fédérale de Lausanne / Swiss Federal Technology Institute of Lausanne. I also work part-time as a junior machine learning engineer (MLE) at Logitech, Switzerland (Video AI/ML team). Previously, I was an MLE intern at Logitech (Cognitive AI team), where I wrote novel gaze tracking algorithms for their next-generation webcams.
In my past life (before joining EPFL), I was a research software engineer (RSE) at UCL’s Advanced Research Computing Centre, where I worked on automatic differentiation, HPC, and DevOps projects. In the same life (even before UCL), I worked as a RSE at CERN (under the Princeton Institute for Computational Science and Engineering), doing similar things for computational high-energy physics software. 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 high-performance computing and software engineering (/teaching).
Apart from the experiences above, I have also dabbled with functional programming and type + proof theory, applied machine learning (for science and social good), technical writing for ML frameworks, and mathematical modeling of batteries (/experiences). Moreover, I maintain different parts (infrastructure, developer tooling, code, docs, …) of several open-source scientific software and developer tools (/opensource). I used to have time to actively “develop” these software, but now I can barely find time to do routine maintenance.
I am currently interested in Machine Learning Engineering (Computer Vision and HCI, Systems for ML, MLOps), High-Performance Computing (Scientific Computing, Numerical and Data-Intensive Computational Methods), and Software Engineering (Python, for and not for science). I advocate for and am extremely passionate about open-source and open-science.
news
Aug 17, 2026
After an amazing 6 months with Logitech’s Cognitive AI team as an MLE intern, I have joined Logitech’s Video AI/ML team part-time as a Junior Machine learning Engineer.
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!
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.
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).
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!
I will be supervising Google Summer of Code students under PyBaMM, NumFOCUS, on projects involving, but not limited to, documentation, DevOps, parameterisation, and visualization.
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 physicists
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 vectors
Chopra, Saransh, Schreiner, Henry, Rodrigues, Eduardo, Eschle, Jonas, and Pivarski, Jim
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 population
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.
talk to me about machine learning engineering, HPC, scientific computing, and open-source scientific software!
You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.