Hi, I'm Sam! I'm a fourth-year B.S. Data Science student at Northeastern University.
I enjoy backpacking, skiing, scuba diving, playing piano or soccer, watching FC Barcelona,
hanging out with my cats, and approaching complex data science and machine learning problems!
I'm an App Developer at Bain Capital, building internal tools, MCP servers, and agent
pipelines that speed up how our teams ship software. At Generate
(generatenu.com)
I'm Chief of the Data branch, leading 3 teams, 6 technical leads, and 30 members.
Before that I was at NExT Consulting (nunext.dev),
building Stream with Via Separations, an AWS-hosted ETL platform for thousands of live sensors behind a custom Grafana site.
I'm a teaching assistant for Database Design (CS3200) with Professor Mark Fontenot at Khoury College,
and I do research with the SHAC Lab (peellelab.org),
directed by Jonathan Peelle. Feel free to reach out on LinkedIn or by emailing me directly!
Data Tech Lead at Generate for a track shoe sensor startup, leading a team of 9 and advising the founder on product architecture and hardware-software integration. Mobile and web app that lets coaches pull data off insole sensors, with custom visualizations and anomaly detection models on top. Built with FastAPI and React, deployed on Railway, Supabase, and GCP.
Research at Northeastern's Speech, Hearing, and Communication Lab, labeling spoken words in film by whether the speaker's mouth is visible so audio and visual cues can be separated in fMRI neuroimaging analysis. The pipeline pulls face and lip landmarks with YOLOv8 and MediaPipe, then models temporal speech cues with a custom RNN over aligned word transcripts. Runs on the Discovery HPC cluster with CUDA to handle full video datasets.
Desktop app built at Water Horizons that lets researchers query their own paper library and surface relevant articles they don't have yet. RAG pipeline over FAISS semantic search, backed by either OpenAI or a local Ollama model so sensitive libraries can stay offline. Electron front end on a FastAPI backend with SQLite, Zotero sync, and Google Scholar scraping, packaged into a distributable installer.
Python
TypeScript
RAG
Electron
04
Live
Quoridor
Full implementation of the board game Quoridor with online multiplayer over WebSockets, accounts, Elo ratings, leaderboards, puzzles, and a ladder of bots to play against. React and FastAPI, running on Azure Container Apps with Supabase for auth and Postgres, shipped through GitHub Actions with per-PR preview environments and auto-applied migrations. The strongest opponents run the C++ MCTS engine listed further down, compiled into a Python wheel in the backend image.
Plugin for the herdr terminal multiplexer that shows live Claude Code cost and quota per pane, plus a workspace overlay ranking panes by spend. Parses Claude Code's JSONL transcripts and prices input, output, cache read, and cache write tokens separately. Standard library only, and it installs itself into Claude Code's statusLine hook with a config backup and automatic rollback if validation fails.
Knowledge graph tool that builds a custom ontology for whatever documents you hand it. An LLM proposes the ontology from your papers, you edit it, then everything is re-ingested into a graph you can query in chat with citations back to the source text. FastAPI with cognee and pgvector, Neo4j, and a React front end rendering the graph with Cytoscape, across five services under Docker Compose.
C++20 Quoridor engine and Monte Carlo tree search bot with no external dependencies. Uses UCB1 and PUCT selection, heuristic-guided rollouts, root parallelization across threads, and action pruning that cuts Quoridor's ~130 move branching factor down to 15-25. Wins about 90% of games against a strong Dijkstra-based heuristic bot at a two second budget, measured with an Elo and SPRT evaluation harness. Also builds to WebAssembly.
Word2Vec written from scratch and trained on a Simple English Wikipedia dump, then pointed at the word game Contexto. Includes the whole pipeline (download, preprocess, tokenize, filter, train) plus a guess strategy layer that picks the next word from the embedding space, and a Gradio app for playing along.
Machu Picchu — June '24Meteora Monasteries — Nov '23Thessaloniki — Sept '23Alaskan Glacier — June '24Swiss Alps — Nov '23Virginia Evening — April '25Cool Cat in Cayman — March '25Rainbow Mountain — May '24Greek Ruins — Nov '23Meteora Mountains — Nov '23Peruvian Coast — June '24Mount Olympus — Oct '23Sunset at Fisher's — May '25Andean Peaks — June '24Swiss Skiing — Nov '23
Games
I enjoy making games and I'm actively improving Quoridor and its AI model!