Projects

Software Packages

BHPTNRSurrogate

Reduced-order waveform models for intermediate mass-ratio black-hole binaries

I led development of surrogate models trained on black-hole perturbation theory and numerical-relativity data across multidimensional physical parameter spaces. The software combines reduced-order modeling, empirical interpolation, and Gaussian process regression in separate training, validation, and inference components.

I integrated the models with the SXS Collaboration's surrogate infrastructure and the gwsurrogate ecosystem, and produced automated tests, documentation, and tutorial notebooks to support use by researchers outside the development team.

I also profiled the model-evaluation path, traced avoidable work to repeated model loading and sequential per-mode calculations, and redesigned those paths with caching and vectorized computation while preserving regression checks for numerical behavior.

  • Python
  • NumPy
  • SciPy
  • Gaussian process regression
  • SVD
  • empirical interpolation
  • pytest
  • GitHub Actions
  • HPC

SEOBNRv4CE

Waveform uncertainty quantification for Bayesian inference

SEOBNRv4CE augments an existing gravitational-wave model with a learned representation of calibration uncertainty. I modeled amplitude and phase deviations across frequency and physical parameter space, then integrated uncertainty-aware waveform generation into the bilby Bayesian inference pipeline.

Validation on simulated signals in Advanced LIGO detector noise showed an approximately 1.5-fold reduction in normalized parameter bias at high signal-to-noise ratio. The project was released as a pip-installable package with tests, technical documentation, and worked tutorials.

  • Python
  • Gaussian process regression
  • Bayesian inference
  • bilby
  • pytest
  • pip packaging

Independent Projects

Anti-Money Laundering Detection with Temporal GNNs

Graph-based detection on 9.5 million transactions

I proposed the architecture and led technical development of a temporal graph neural network for the SAML-D anti-money-laundering benchmark. The model combined GraphSAGE representations with GRU-based temporal modeling to detect suspicious activity in a dataset where only 0.10% of transactions were positive.

The system achieved 0.85 PR-AUC, a 45.1% improvement over the XGBoost baseline. We also selected an operating point of 81% precision at 81% recall to connect model evaluation with investigation capacity and detection coverage. The project was selected as a top project in The Erdős Institute Deep Learning Bootcamp.

  • Python
  • PyTorch
  • GraphSAGE
  • GRU
  • XGBoost
  • imbalanced classification
  • reproducible experiment pipelines

GW Galaxy Catalogue REST API

Searchable access to the GLADE+ galaxy catalogue

I built and deployed a containerized REST API serving approximately 100,000 galaxies from the GLADE+ catalogue. The service supports sky-coordinate cone searches, redshift and luminosity-distance filters, and paginated queries.

The data layer uses PostgreSQL with Q3C spatial indexing. I also built a validated ingestion pipeline for VizieR catalogue exports and an automated test suite covering response schemas, pagination, range validation, cone-search geometry, and error handling.

  • Python
  • FastAPI
  • PostgreSQL
  • Q3C
  • SQLAlchemy
  • Pydantic
  • Docker
  • pytest

Career Copilot Lite

Local-first semantic matching for job searches

Career Copilot Lite is a Chrome extension for capturing, organizing, and comparing job postings. I built an on-device semantic matching workflow using sentence-transformer embeddings and ONNX Runtime Web, with an asymmetric coverage score that measures how well a resume addresses the content of a job description.

The extension stores data locally in IndexedDB and includes workflow features for status tracking, filtering, tags, and notes. An optional bring-your-own-key language-model step can clean job descriptions and extract structured fields without making cloud processing a requirement.

  • JavaScript
  • Chrome Manifest V3
  • ONNX Runtime Web
  • Transformers.js
  • IndexedDB