MS Computer Science @ Northeastern (April 2026). I build deep learning models and ML systems — motivated by the belief that the best ML work makes the world a better place.
International Conference on Medical Image Computing and Computer-Assisted Intervention (MICCAI), 2026. A controlled encoder ablation showing a 34M-parameter VGG U-Net matches MedT — a transformer purpose-built for small medical datasets — at a ~24× smaller parameter budget, and outperforms pretrained Swin-T by 4.9 Dice points with 2.6× less memory and 1.8× lower inference latency.
Manuscript in preparation. A 12-experiment ablation on a dual-encoder retrieval model over 1.3M Yelp reviews, with a leave-one-out onboarding protocol that prevents test-set leakage on cold users.
Full academic record — education, research, teaching, honors —
download the CV (PDF).
Featured Projects
Two-Tower Recommendation with Cold Start Ablation
Research · Recommender Systems
Found that context features alone outperform the full model on cold-start users by 4.2 NDCG@10 points, while content features remain essential for cold restaurants. A 12-experiment ablation on a Two-Tower dual encoder over 1.3M Yelp reviews.
Cold users: context-only model (day-of-week, distance, restaurant temporal profiles) achieves NDCG@10 of 29.0% — beats the full model's 24.8% and the popularity baseline by 27.2 pp
Cold restaurants: content features are essential — dropping user preferences collapses NDCG@10 from 9.3% → 3.6%; popularity scores 0% by design (no training reviews)
Asymmetric feature importance: dropping user preferences improves cold user performance (24.8% → 28.9%) but cuts cold restaurant performance in half — sparse preference estimates are noisier than situational context
Checkin-matched visit times (UTC → local via per-state IANA timezone mapping) lift warm NDCG@10 by 1.7 pp and cold user by 1.9 pp
Gated fusion underperforms on cold restaurants: content-gated interactions learned on training restaurants don't transfer to unseen ones
Engineering Highlights
On-device feature indexing (no DataLoader, no CPU↔GPU transfer per batch); per-epoch resampling of geographic negatives and Gumbel-max onboarding selections as free data augmentation
Leave-one-out onboarding evaluation prevents information leakage when cold users' only signal comes from test reviews
4-stage data pipeline (extract → preprocess → split → feature prep) with iterative interaction-density filtering and stratified cold start holdout
Vectorized dataset construction dropped from 47s to 8s via numpy bulk operations
Ablation results across three test splits. Context features dominate cold users; content features dominate cold restaurants.
Team of 4 · Primary contributor & project lead — contributed across both towers, pipeline architecture, checkin temporal profiles, and geographic negative sampling
Controlled encoder ablation showing a 34M-param VGG U-Net matches MedT (a transformer purpose-built for small medical datasets) and outperforms pretrained Swin-T on nucleus segmentation in the low-data regime.
VGG U-Net (Dice 0.851) matches ResNet and beats pretrained Swin-T by 4.9 Dice points on PanNuke (5K patches, 19 tissue types)
On MoNuSeg (37 training WSIs), VGG reaches Dice 0.796 — equivalent to MedT's published number with a ~24× larger param budget but no specialized attention mechanism
Pareto-dominant on inference cost: 2.6× less memory and 1.8× lower latency than Swin-T at equal-or-better accuracy
Hypothesized mechanism: spatial-resolution preservation at skip connections + convolutional inductive bias outweighs Swin's pretraining advantage in low-data regime
Implications for edge-deployed microscopy, veterinary/rare-disease research, and non-H&E staining where foundation model pretraining misaligns
Qualitative comparison on MoNuSeg test images. VGG produces tighter boundary delineation; Swin over-segments dense regions and misses isolated nuclei in sparse ones.Training curves across encoder architectures. VGG converges smoothly; Swin-T shows higher variance and slower convergence in the low-data regime.
Imitation learning via continuous-time flow matching on MuJoCo/MetaWorld bin-picking — a neural vector field transports Gaussian noise to expert action distributions via ODE integration. Scales from a proprioceptive single-object baseline to RGBD+language-conditioned action chunking across 3-object scenes.
Flow matching policy: vector field maps (observation, noisy action, flow time τ) → velocity; RK2 integrates from τ=0→1 at inference to produce clean action samples without diffusion's iterative denoising cost
Baseline (expt_1): proprioception-only MLP trained on 100 scripted demos achieves reliable single-object bin-picking — validates the flow matching objective on a tractable case (see demo)
Multi-modal scaling (expt_4): RGBD CNN encoder + per-object text embedding extends the policy to 3-object scenes; 400 demos required to cover combinatorial object arrangements
Action chunking (expt_6): predicts 8 consecutive actions (d_act 4→32) to improve temporal coherence; compounding error on the harder 3-object task highlights open generalization challenges
Baseline (expt_1): proprioception-only policy completes single-object bin-picking from 100 scripted demos.Action chunking (expt_6): 8-step prediction on the harder 3-object task — temporal coherence improves over single-step, but 3-object generalization is an open problem.
Interpretable ML model (EBM) predicting annual ridership at ~500 US Amtrak stations and surfacing where increased service would have the greatest impact — with an interactive map for exploring underservice ratios and running what-if frequency scenarios.
PythonEBM (InterpretML)Gradient BoostingGTFSUS Census ACSFoliumStratified Group CVStreamlit
Key Findings
EBM achieves R² = 0.76 / RMSE 0.84 (log scale) via 5-fold stratified group cross-validation, with stations clustered geographically to prevent leakage between nearby stops
Interactive map colors every Amtrak station by demand ratio (actual ÷ predicted ridership) and lets users adjust weekly departures to estimate ridership impact
Features span 6 categories: geography, intermodal connectivity, service frequency, demographics (ACS), land use (colleges, tourism), and station type
Identified top-20 city pairs most likely to benefit from increased service frequency
Major hubs (NYC Penn, Chicago Union) systematically underpredicted — documented as a known limitation of additive cross-sectional modeling at convergence points
A live public tracker that continuously ingests NJ Transit's GTFS-Realtime feed and recomputes on-time performance at stricter thresholds than the agency's own 6-minute definition — NJT reports 88%, independent measurement puts it at 80.6% within 5 minutes, a 7.3 pt gap.
TypeScriptCloudflare WorkersGTFS / GTFS-RealtimeSQLTime-Series IngestionStatistical Change DetectionData Viz
What It Measures
The definition gap: NJT counts a train on time within 6-minute of schedule at its final terminal. Recomputing the same trains from the live feed gives 80.6% at 5 minutes and 95.4% at 15 — a single headline percentage hides the distribution.
Full delay distribution rather than one rate: median 1m 18s against a P90 of 9m 22s, plus time-of-day and day-of-week heatmaps that locate when the tail actually falls.
Change detection with a significance gate — week-over-week line movements are only called out when the swing is unlikely to be chance, so low-frequency lines need a larger shift to qualify.
Connection reliability: for a given transfer, the share of days the outbound train was still catchable given the inbound's actual arrival; transfers under 30 observations are marked preliminary.
Honest empty states: no synthetic sample data — measured views read "no data yet" until enough real trains are observed, and a Health page tracks coverage gaps in NJT's published months.
Engineering
Continuous per-train arrival collection on Cloudflare Workers, running unattended since July 2026 with scheduled ingest.
Joins three feeds of differing cadence — GTFS static schedule, monthly published performance reports back to 2017, and the live realtime stream — into one queryable store.
Every figure is labelled by provenance (NJT official vs. independently measured) so the two are never silently mixed.
A parametric pipeline that generates to-scale before/after pedestrian safety visualizations for real intersections from field measurements, NJDOT road data, and OpenStreetMap geometry — producing 2D plan views and 3D renders where every dimension traces to a source.
Four-phase pipeline: audit and validate road-network geometry → build curb lines and corner fillets from site configuration → apply design treatments and render 2D comparisons → export to JSON for Blender 3D rendering.
Sourced, not guessed: building heights from property tax assessor records, crosswalk positions from OSM survey data, footprints from OSM outlines, signal configurations verified against street-view imagery — the guiding rule is never to substitute a generic geometric assumption where real data exists.
Quantified outcomes rather than illustrations: crossing distance reduction measured from geometry, time-in-roadway computed at the MUTCD pedestrian speed of 3.5 ft/s across actual travel-lane widths, turn speed from the AASHTO curve formula at tightened corners, and parking impact counted from paint geometry.
Regression and property-based testing (pytest + Hypothesis) caught real defects a visual review would not: a 15 sq ft disagreement between the 2D and 3D crossing bands, driveway openings rendered inconsistently across views, and a drawing-extent setting silently determining junction membership.
An interactive map of vehicle crashes and pedestrian/cyclist incidents in Hopewell Borough, NJ, paired with a field-surveyed inventory of 84 crosswalks across 44 locations and a repaving priority score built to inform local infrastructure decisions.
Field survey: 84 crossings graded in person with 72 photographs — 22 good, 32 fair, 10 bad, and 20 unmarked.
Priority scoring that combines proximity to documented crash harm, survey deficiency grades, street repaving cycles, and surveyor recommendations into a ranked repaving order.
Crossing geometry derived from OSM footway=crossing ways where they exist and computed from road centerlines where they don't.
Live data path: crash reports flow from a published Google Sheet CSV straight into a single-file Leaflet front end, so the map stays current without a rebuild; Python scripts regenerate the crosswalk JSON and photo set after survey corrections.
Multi-agent system for autonomous artist–venue matching with production-grade orchestration, semantic vector search, memory management, and safety guardrails.
Delivered business case for AI Code Assistant product. Defined requirements with cross-functional stakeholders and oversaw multiple product iterations on agentic AI development tools.
LineVision
Software Engineer Co-op · 2024
Owned internal web app, expanded APIs and database schema, improved data pipeline performance by 1000× for staff scientists.
PlateMate
Co-Founder & CTO · 2025–Present
Leading ML architecture and engineering for AI-powered food recommendation platform. Collaborative filtering, RAG search, vector similarity.
Northeastern University
Lead Lab TA · 2022–2025
Led weekly labs for 40+ students in Fundamentals of Computer Science 1 & 2. Conducted office hours and graded assignments.
Education
Northeastern University
M.S. Computer Science · April 2026
Applied Deep Learning, Deep Learning, Machine Learning, Algorithms, Empirical Research Methods, Web Development, Computer Graphics
Northeastern University
B.S. Computer Science & Mathematics · May 2025
AI4Impact, Matrix Methods in Machine Learning & Data Analysis, Macroeconomics, Systems Security, Object-Oriented Design, Statistics & Stochastic Processes