Problem: Can learning from individual crystal edits improve band-gap targeting
over successive editing attempts?
Approach: Extended LLMatDesign's crystal-editing workflow with SFT and GRPO
training. Programmatic checks, learned relaxation, and GNN band-gap predictions determine
one scalar reward per proposal; evaluation allows up to seven attempts per material.
Result: RL increased target hits for Qwen and Minitron and decreased them
for Llama and Phi. Qwen reached 14.8% with the original reward versus 11.1% after SFT; two
exploratory reward variants reached 15.6% and 15.7%. Each setting used one training run, and
post-edit outcomes rely on a learned band-gap predictor. A co-first-author manuscript is in
progress; code is open source.
LiverMatch · Applied Machine Learning for Liver Transplantation
Semester project
Problem: Variability in liver-offer acceptance can delay allocation and complicate
donor-recipient decision-making.
Approach: Used OPTN/SRTR data to explore donor characterization and graft-failure
risk with clustering, neural classification, regression, and survival analysis.
Result: Selected GMM over unreliable K-means behavior and evaluated exploratory
survival models, with significant sample-size and class-imbalance limitations.
Problem: Global maritime infrastructure increasingly exposes NMEA navigation
and control protocols to the open internet, but there is no clear picture of how much exposure
exists or how it maps to real vessels and operators.
Approach: Investigated vulnerabilities in global maritime infrastructure
by identifying internet-exposed vessels and navigational hardware.
Result: Used NMEA 0183/2000 protocol signatures to build automated tooling
that queries Censys and Shodan and maps the attack surface of maritime cyber-physical systems.
Research Infrastructure & Tools
Atlas
Apr. 2025 – Present
Problem: Over the first half of my research project, I spent more time building
post-training infrastructure than using it. Bash scripts piled up for SFT, RL, debugging, and
evaluation, and every change meant hand-editing them again: switching between single-GPU and
distributed jobs, constraining sample size for debug runs, and coordinating multi-array chunk
evaluation and data generation across clusters.
Approach: I built Atlas as a general-purpose orchestration layer between my
project and the cluster. I supply job templates; Atlas handles SLURM headers, array chunks,
run IDs, GPU monitoring, learning rate sweeps, and the rest of the boilerplate for scaling training
and evaluation jobs.
Result: A job runner that removed most of the friction from HPC workflows—one
interface to launch and manage training jobs at scale without rewriting bash for every configuration
change.
SymbolicGym: Unified RL Platform for Symbolic Reasoning
Apr. 2025 – June 2025
Problem: RL agents that manipulate symbolic and logical structures — SAT formulas,
proofs, algebraic expressions — didn't have a shared platform to train and evaluate against;
every project was reinventing its own environment, reward, and state representation from scratch.
Approach: I built SymbolicGym, a modular framework connecting RL agents (PPO,
DQN, MARL) to symbolic reasoning tools (Z3, SymPy, Minisat), with reward functions for syntax,
semantics, and domain-certificate verification, plus GNN state encodings for logical formula
trajectories.
Result: A working, open-sourced platform that let me iterate on reward design
and interpretability for logic-solving RL agents across multiple solvers.
Architecture & code
SymbolicGym architecture: unified RL platform for symbolic reasoning.
Problem: I was curious about the outbound network activity from applications—what
requests and responses were actually leaving the device, and what sensitive data might be in
them.
Approach: I built Cartographer, an MITM proxy that intercepts HTTP/HTTPS traffic,
analyzes requests and responses, detects sensitive information (PII), and surfaces captured
traffic in a reviewable UI.
Result: A network traffic monitoring and analysis tool with MITM proxy capabilities
for intercepting, inspecting, and visualizing application network behavior.