Skip to content

Work · research & projects

What I’ve built,
and figured out.

A decade of curiosity, roughly: molecular machine learning, total synthesis at the bench, deep learning systems, and a long tail of things made because they were interesting.

Research & work

Three years at the bench in the Stoltz Lab at Caltech, then molecular machine learning at Soley Therapeutics — chemistry from both sides of the screen.

work May 2025 — Present South San Francisco / Remote

AI Intern — Molecular Machine Learning

Soley Therapeutics · under Dr. Ankur Gupta

  • Developed a new explainability technique for molecular ML models and showed its use in lead optimization (manuscript in progress, 10K+ lines).
  • Finetuned hundreds of models on public + proprietary data to predict target candidate profiles and accelerate drug discovery.
  • Built a generative-AI chemistry pipeline for novel molecule generation and lead optimization.
  • Implemented and benchmarked ideas for better molecular property-prediction foundation models.
  • Automated a model-benchmarking framework across 22 ADMET datasets (TDC) with cross-fold validation.
  • Automated CDD protocol creation with Selenium — a 100+ hour manual task done in 5–6 hours.
research Summers 2022 & 2023 Pasadena, CA

Summer Research Intern

Caltech — Stoltz Lab · with Dr. Scott Virgil

  • Completed 16 consecutive steps toward an intermediate of a diterpenoid total synthesis.
  • Completed 10-step (korormicin) and 8-step (ineleganolide) fragment syntheses.
  • Ran DFT modeling (ORCA) to determine selectivity in a late-stage stereoinversion.
  • Built StremLigand, software for cataloguing catalysts & ligands.
  • Designed and 3D-printed a replacement HPLC autosampler part, saving ~$250/part.
StremLigand ↗
research 2020 — 2022 Remote

Assistant Researcher

Caltech — Center for Catalysis · with Dr. Scott Virgil

  • Wrote software to remotely automate robotic autosamplers (Python, VBA, M68k assembly).
  • Reverse-engineered M68K assembly to write more efficient lab routines.
  • Screened lanthanide–ligand catalysts for an asymmetric reduction.

At the bench & in silico

“A fragment of ineleganolide — then teaching a model to plan the route itself.”

ineleganolide · a polycyclic norcembranoid diterpene

Selected projects

16 projects 7 fields 14 with source / live links

Trennen

★ Featured Chemistry

Predicting the direction of optical rotation for chiral molecules with a T-Net architecture — distilling 8M+ PubChem molecules to ~27K optically active ones, with DFT polarizability tensors (B3LYP/def2-SVP).

Python Machine LearningChiralityDFTRDKit

AMC Trainer

★ Featured Education

An interactive math-competition trainer built with my brother Ethan — adaptive AMC practice now used by 20K+ people across 50+ countries.

TypeScript WebEducationCloudflare

Pathfinder

★ Featured AI/ML

A scenic-routing algorithm (modified A*) over San Mateo County — semantic segmentation of 250K+ Street View images on TPUs, with earth-curvature-aware heuristics and TIGER/Line road graphs.

Python Deep LearningComputer VisionGeospatial

fibprimes

★ Featured Music

A C program that turns the patterns of Fibonacci numbers and primes into MIDI music. Reached the front page of Hacker News.

C CMIDIGenerative

DRL for Total Synthesis

Chemistry

A proposal to plan total-synthesis routes with deep reinforcement learning — the bench meets the search tree.

Deep RLSynthesisProposal

Pacman + Bitcoin Miner

AI/ML

A Pacman game with a built-in Bitcoin miner in 3000+ lines of Java — placed top 15 of ~1400 students in Berkeley’s CS61B.

Java JavaAIGames

zipfai

AI/ML

A study of Zipf’s law across 200+ GB of text — all of Wikipedia, Project Gutenberg, and more.

Python NLPData

obsidian-vault-sync

Tools

Streaming, REST-based GitHub sync for Obsidian that works on iOS for vaults of any size, images included — fixing a long-standing crash in a popular plugin.

TypeScript TypeScriptiOSObsidian

thunderbird-mcp

Tools

A Model Context Protocol server for Thunderbird — letting AI agents read, search, and act on email through a clean tool interface.

TypeScript MCPEmailAutomation

Gas Town

Systems

A multi-agent orchestrator that coordinates a fleet of LLM agents working toward a shared goal — routing tasks, sharing state, and merging results.

Python AgentsLLMOrchestration

Simple Bible Audio

Tools

A clean, distraction-free Bible audio player built in Swift and shipped on the App Store.

Swift SwiftiOSAudio

Three-Body Invariants

Physics

Searching for conserved quantities in the chaotic three-body problem via automatic generation of candidate symbolic expressions.

Python PhysicsSymbolicSearch

Polyphenols in Tea

Chemistry

Quantifying polyphenols in tea and kombucha with Fast Blue BB and a custom 3D-printed high-throughput cuvette plate.

SpectroscopyChemistry3D Printing

Oscillations

Physics

An interactive visualizer for damped harmonic oscillators — tune the damping and watch the phase portrait respond.

JavaScript PhysicsVisualization

musalpha

Music

Hear language as music — mapping the structure of text onto sound.

AudioLanguage

squanmate

Tools

A Square-1 trainer, solver, and analysis tool — for the speedcubing habit.

PuzzlesAlgorithms