Agentic Twin
A production AI agent with tool access to my resume, repositories, research and coursework, available by text chat or real-time voice.
- Retrieval-augmented generation over 8,300+ chunks in Neon pgvector, with on-function bge-small embeddings so search runs at zero API cost.
- Tool-calling agent built with the Vercel AI SDK: Gemini as the primary model with automatic fallback to Groq-hosted open models.
- Real-time voice through a LiveKit agent on Gemini Live that calls the same retrieval tools mid-conversation.
- Every tool is exposed in the chat as a / command, so visitors can query the knowledge base directly.
TypeScriptNext.jsAI SDKGeminiRAGpgvectorTransformers.jsLiveKitPython
AI Safety · Agent Evaluation
Private researchSSRP Safety Oracle
A benchmark that grades autonomous coding agents on safety as well as correctness, built on top of SWE-bench style tasks.
- Passive safety telemetry for DeepSWE agents running on mini-swe-agent: agents run unrestricted while oracles observe silently.
- Two orthogonal grades per trial: the functional test result and an independent safety report.
- Detects honeytoken leakage, out-of-scope actions, test tampering, integrity violations and deceptive reporting.
PythonSWE-benchLLM AgentsDockerShell
Code available on request
AI Safety · Interpretability
ResearchAI-SWE Safety Lab
Activation-steering experiments that locate the "refusal direction" inside open-weight LLMs and inject it at inference time.
- Extracts refusal-vs-compliance directions from hidden states of TinyLlama-1.1B and Qwen2.5-Coder-3B across layers 10–25.
- Steers generation with forward hooks and measures over-refusal on harmless coding prompts.
- Visualizes how steered prompts move between refusal and compliance clusters with PCA.
PythonPyTorchHugging FaceInterpretabilityPCA
Medical AI · Deep Learning
ResearchCardiovascular Age from ECG & VCG
Research at Houston Methodist estimating cardiovascular age from 12-lead ECGs and 3D vectorcardiograms.
- Trained ResNet50 models on MIMIC-IV and PTB-XL to estimate cardiovascular age and structural cardiac health.
- Found the VCG-derived age gap to be a stronger ICU mortality biomarker than standard ECG (HR = 1.22, Cox proportional hazards).
- Explained predictions with Captum feature attribution, and built CardioVectorLib for ECG-to-VCG reconstruction.
PythonPyTorchResNetCaptumSurvival AnalysisSignal Processing
ElectroVector
An iOS app that digitizes photographed 12-lead ECG scans and converts them into vectorcardiograms.
- Captures ECG printouts with the camera and digitizes the waveforms with ML models served from a Flask backend.
- Transforms digitized signals into 3D vectorcardiogram representations for cardiac analysis.
SwiftSwiftUIPythonPyTorchFlaskAWS
Computer Vision · Healthcare
AI Medical Labeler
SAM2-powered pre-labeling for Label Studio that makes medical image annotation faster and cheaper.
- Cut manual image annotation time by 60% by pre-labeling images with a Medical SAM2 backend.
- Click-prompted interactive segmentation, with full-image auto-segmentation when no prompts are given.
- Fully Dockerized so clinics and labs can deploy it without ML expertise.
PythonPyTorchSAM2Label StudioDocker
Computer Vision · Full Stack
MedAnnotate
A locally hosted annotation platform for healthcare teams with SAM2 and SAM3 assisted labeling.
- FastAPI backend with JWT auth, projects and multipart dataset uploads; React and TypeScript annotation UI.
- Optional local SAM2/SAM3 service for point- and text-prompted pre-labeling, so patient data never leaves the machine.
PythonFastAPIReactTypeScriptSAM2SAM3
Generative Models · Research
ResearchDiffusion Models as Markov Chains
Denoising diffusion models built from scratch, studied through the lens of Markov chains and stochastic processes.
- Implements forward noising and learned reverse processes for 1D and 2D distributions.
- Verifies reconstructions statistically and with interactive step-by-step visualizations.
PythonPyTorchDiffusionProbability
Bayesian Variational Autoencoder
A Bayesian VAE that models uncertainty in both latent variables and network weights.
- Encodes inputs as distributions regularized toward a Gaussian prior, with Bayesian priors on the weights.
- Trained and evaluated on MNIST with reconstruction and latent-space visualizations.
PythonPyTorchVAEBayesian Inference
Agent Issue Safety Classifier
Classifies and clusters GitHub issues from AI coding tools to surface safety failures.
- Regex taxonomy for privacy leaks, destructive actions, crashes, hangs and resource exhaustion.
- Unsupervised TF-IDF + K-Means clustering, compared against an LLM-based classifier.
Pythonscikit-learnNLPLLMs
Expectation-Maximization from Scratch
Educational implementations of EM for latent-variable models, with an accompanying blog post.
- Covers the classic two-coin problem and Gaussian mixture model clustering.
PythonNumPyGaussian Mixtures