Weaver Goldman
AI/ML Engineer & Data Science Master's Student @ WPI
I'm Weaver, a Computer Science (BS) and Data Science (MS) student at Worcester Polytechnic Institute, building applied AI/ML systems across pharma, medtech, and space research.
Graduating May 2027.
Recent Experience

Adaptive LLM evaluation

Illustration with synthetic data. Naive evaluation asks all 60 questions. Adaptive evaluation asks 23 of them, chosen from the model's earlier answers, and reaches the same confidence. Naive: every question asked 60 / 60 questions Adaptive: most informative questions selected 23 / 60 same confidence

Drift detection

Illustration with synthetic data. The live data's distribution shifts away from the training baseline, and a drift alert fires. Training baseline Live data Drift detected

Internal Regeneron project. The illustrations use synthetic data, and many technical details are withheld.

MLOps & LLM evaluation

Building a scalable monitoring platform for AI/ML models

Regeneron Pharmaceuticals · AI/ML Engineering Intern · Summer 2026

I built a platform that monitors 30+ production AI models and evaluates LLMs. It detects when live data drifts from training data distributions or when model performance unexpectedly degrades, and helps teams drill down to find the cause. Its LLM benchmarks help AI engineers make informed decisions about the best models for their use case.

60%+ lower LLM evaluation cost
at equal confidence, by choosing each question based on the model's past answers
  • Built the platform on AWS with a React dashboard, designed from 13 stakeholder interviews and adopted by 3 pilot teams.
  • Built drift detection that alerts teams when live data changes, using a Random Forest two-sample test alongside metrics like PSI and Jensen-Shannon divergence.
  • Tracked how data subgroups shift over time using Gaussian mixture models, BIC selection, and cost matching.
  • Developed a Python SDK that lets teams send data and run model analysis from any environment.
PythonAWSFastAPIReactvisxscikit-learnPostgreSQLDocker

System overview

Simplified architecture. An engineer's question goes to an AI assistant that orchestrates multiple agents with LangChain and LangGraph. The assistant exchanges requests with internal data sources and log tools over MCP, and with a hybrid retrieval system combining semantic and keyword search. It returns an expert-level analysis in minutes. Engineer's question AI assistant Multi-agent orchestrationLangChain / LangGraph MCP Internal datasources & log tools Hybrid RAG Semantic + keywordretrieval Expert-level analysis in minutes

Internal Medtronic project. This is a simplified view, and many technical details are withheld.

Agentic AI

Building an AI assistant for surgical robot logs

Medtronic · AI Engineering Intern, Minimally Invasive Therapies Group · Summer 2025

I built an AI assistant that analyzes surgical robot logs and answers engineers' questions at an expert level. It coordinates multiple AI agents that pull the logs and context they need from internal data sources.

Tens of hours → minutes
for an expert-level analysis of robot logs
  • Automated recurring log analysis tasks with LLMs, saving the team 400+ hours of manual work a year.
  • Built the agent workflows with LangChain and LangGraph to handle multi-step questions.
  • Connected the assistant to internal data sources and log tools with MCP.
  • Built a hybrid RAG system that combines vector search with keyword search.
PythonLangChain/LangGraphMCPRAGFastAPIDocker
A nerve path traced point by point through a micro-CT scan of an octopus
Perpendicular slices along the traced path, each in a tight bounding box
The straightened volume, with the nerve segmented in blue down its length
The segmented nerve placed back into the full octopus scan
  1. 1 Trace a path through the scan
  2. 2 Slice along it
  3. 3 Segment the straightened volume
  4. 4 Map it back
Full micro-CT scan
2.78 TB
Single bounding box
108.1 GB
Ouroboros extraction
3.2 GB

Bars drawn to scale.

Large-scale 3D data

Segmenting terabyte-scale 3D scans on a laptop

Ouroboros · Penn State College of Medicine · Co-author, manuscript in preparation · 2024 – present

I created the core algorithms for Ouroboros, a tool that segments nerves and vessels in 3D scans too large to load into memory. It extracts only a thin, straightened volume along a traced path, segments it, and maps the result back into the original scan.

2.8 TB → 3.2 GB
for an octopus nerve cord, processed in 6 minutes on a laptop
  • Built the original slicing pipeline, which fits a B-spline to Neuroglancer annotations and samples slices along the path.
  • Split the path into tight bounding boxes and processed them in parallel download, slice, and write queues, making it ~40× faster.
  • Mapped segmentations of the straightened volume back into the original scan at full resolution.
  • Released it as a desktop app (Electron and React) with a Dockerized Python backend and a plugin system for segmentation methods.
PythonNumPy/SciPyCloudVolumeMultiprocessingDockerElectronReact/TypeScriptNeuroglancer

GPU memory per training step

Line chart of training-step GPU memory against graph size. At 100 nodes, MG-Diff uses 50.4 GB, DiGress 46.0 GB, SparseDiff 31.2 GB, and Scale-MGD 8.5 GB. At 200 nodes every baseline runs out of an 80 GB GPU, while Scale-MGD uses 17.3 GB. 0 20 40 60 80 GB 2050100200 Nodes per graph 80 GB GPU limit MG-Diff, DiGress, SparseDiff · 200 nodes · out of memory Baselines: out of memory MG-Diff · 20 nodes · 2.2 GB MG-Diff · 50 nodes · 12.8 GB MG-Diff · 100 nodes · 50.4 GB DiGress · 20 nodes · 2.0 GB DiGress · 50 nodes · 11.9 GB DiGress · 100 nodes · 46.0 GB SparseDiff · 20 nodes · 1.3 GB SparseDiff · 50 nodes · 7.8 GB SparseDiff · 100 nodes · 31.2 GB Scale-MGD (ours) · 20 nodes · 1.7 GB Scale-MGD (ours) · 50 nodes · 4.2 GB Scale-MGD (ours) · 100 nodes · 8.5 GB Scale-MGD (ours) · 200 nodes · 17.3 GB MG-Diff 50.4 GB DiGress 46.0 GB SparseDiff 31.2 GB Scale-MGD (ours) 17.3 GB
Training-step GPU memory (GB) by graph size
Model20 nodes50 nodes100 nodes200 nodes
MG-Diff2.1812.8450.44Out of memory
DiGress211.8646.02Out of memory
SparseDiff1.347.7731.16Out of memory
Scale-MGD (ours)1.734.28.5117.25

Measured on synthetic graphs with an 80 GB A100 GPU.

Deep learning research

Scaling diffusion models to large graphs

WPI MQP · Team of 4 · Advised by Profs. Murai & Mangoubi · 2025 – 2026

Graph diffusion models generate molecules and networks for drug discovery, but their memory grows with the square of the number of nodes. I led development of two models that reduce this cost. Scale-MGD trains with near-linear memory, and SparserDiff makes an existing model's edge sampling much faster and lighter.

Up to 116× faster
and up to 89× less memory in SparserDiff's edge sampling, compared with SparseDiff on the Ego dataset
  • Designed Scale-MGD as masked diffusion over a noisy edge list. It was the only model to train on 200-node graphs.
  • Replaced SparseDiff's quadratic edge sampling with an O(n + m + k) algorithm in SparserDiff.
  • Profiled five diffusion models at each stage (noising, model pass, training, sampling) to find where the memory goes.
  • Built RedditWalk, a benchmark sampled from a network of 46,668 subreddits, which revealed accuracy problems in existing models.
PythonPyTorchGraph neural networksDiffusion modelsCUDA / A100Profiling
The Generate Flash Cards tool, prompting the teacher to upload a PDF lesson plan
1 Upload a lesson plan
A searchable tree of Namibian curriculum subjects and chapter sections
2 Align to curriculum
A generated flashcard asking the student to correct a comma splice
3 Generate content
WordPress plugin FastAPI on Cloud Run Gemini + Pydantic AI

LLM products

Building AI tools for teachers in Namibia

#TeamGraduate AI · Technical lead, WPI IQP · Jan – May 2026

I led the development of AI tools that turn teachers' lessons into flashcards, diagrams, and quizzes aligned to Namibia's national curriculum. The tools run inside #TeamGraduate's existing e-learning system, next to the lessons teachers already edit.

50 → 6 min
to create a lesson's flashcards, diagram, and quiz (87.7% faster) with comparable quality
  • Built a WordPress/LearnDash plugin with Gutenberg blocks for adding AI-generated content to lessons.
  • Built a FastAPI service on Cloud Run that turns PDFs, slides, and YouTube transcripts into structured content with Gemini.
  • Used an LLM pipeline to organize the national syllabus into a curriculum tree and match textbook chapters to it.
  • Wrote teaching best practices into each content type's prompts and refined the UI in design sessions with teachers.
PythonFastAPIPydantic AIGeminiCloud RunDockerWordPress/PHPReactGitHub Actions
A scatter plot of 57,516 trajectories to Jupiter, launch energy against launch date, colored by flyby sequence
1Filter trajectories
The 3D view of one trajectory to Jupiter, looping past Venus and Earth before reaching Jupiter's orbit
2Visualize in 3D

The full 571 MB dataset, by launch window

The 571 MB trajectory dataset split into blocks by target planet and five-year launch window, each block sized by its data. The Jupiter search for 2030 to 2034 downloads only its own 21 MB block. 2030–342035–392040–442045–492050–542055–59 Venus Venus, 2030–2034 · 7.0 MB Venus, 2035–2039 · 6.8 MB Venus, 2040–2044 · 6.8 MB Venus, 2045–2049 · 7.0 MB Venus, 2050–2054 · 7.1 MB Venus, 2055–2059 · 7.1 MB Mars Mars, 2030–2034 · 4.1 MB Mars, 2035–2039 · 4.6 MB Mars, 2040–2044 · 4.4 MB Mars, 2045–2049 · 4.2 MB Mars, 2050–2054 · 4.7 MB Mars, 2055–2059 · 4.3 MB Jupiter Jupiter, 2030–2034 · 21.0 MB Jupiter, 2035–2039 · 21.5 MB Jupiter, 2040–2044 · 22.2 MB Jupiter, 2045–2049 · 21.8 MB Jupiter, 2050–2054 · 22.6 MB Jupiter, 2055–2059 · 20.6 MB Saturn Saturn, 2030–2034 · 22.4 MB Saturn, 2035–2039 · 25.0 MB Saturn, 2040–2044 · 26.1 MB Saturn, 2045–2049 · 23.3 MB Saturn, 2050–2054 · 21.3 MB Saturn, 2055–2059 · 24.6 MB Uranus Uranus, 2030–2034 · 20.3 MB Uranus, 2035–2039 · 22.8 MB Uranus, 2040–2044 · 22.1 MB Uranus, 2045–2049 · 20.2 MB Uranus, 2050–2054 · 23.1 MB Uranus, 2055–2059 · 20.6 MB Neptune Neptune, 2030–2034 · 17.5 MB Neptune, 2035–2039 · 18.2 MB Neptune, 2040–2044 · 14.9 MB Neptune, 2045–2049 · 18.5 MB Neptune, 2050–2054 · 15.8 MB Neptune, 2055–2059 · 16.6 MB

The search above downloads only the highlighted 21 MB (4%).

Data engineering & visualization

Building a mission planning tool for interplanetary trajectories

PLASMA · WPI Laboratory of Spaceflight and Planetary Exploration · Under contract with NASA JPL · 2024 – present

I built PLASMA, a web app that enables users to search millions of precomputed interplanetary trajectories. Users can visualize each trajectory in 3D, as well as options for launch vehicles and planetary approach.

6.5M trajectories
available for interactive visualization.
  • Made repeat searches load without waiting on the server by caching the data in the browser and querying it with DuckDB WASM.
  • Organized the cached files with hive partitioning by planet, launch year, and resolution, to avoid fetching unneeded data.
  • Kept panning and zooming smooth across 325,000 points by drawing plots with WebGL (about 1 ms per pan or zoom, down from 300 ms).
  • Built an animated 3D view with Three.js, showing planet orbits, flybys, and arrival.
PythonFastAPIDuckDBParquetReact/TypeScriptWebGL / three.jsDockerGitHub Actions
Learn More
© 2026 Weaver Goldman