Projects

Agentic AI

University of California, San Diego

Sep 2025 – Jun 2026

Retired

GenePattern Module Toolkit

Multi-agent AI pipeline that automates wrapping and deploying bioinformatics CLI tools as production-ready GenePattern modules. Point it at a tool's git repository, documentation and example data, then a hierarchical pipeline of researcher, planner and six artifact-specific agents handles the rest, coordinated by a supervisor agent with structured escalation. Fine-tuned LoRAs trained on synthetic data at the San Diego Supercomputer Center. Increased GenePattern module production by ~500%.

Agentic AI LoRA Pydantic AI Python

University of California, San Diego

Apr 2025 – Jun 2026

Retired

GenePattern Copilot

Agentic AI assistant for GenePattern and bioinformatics research, combining RAG-based question answering with direct platform control. Built on an MCP server wrapping the GenePattern REST API, enabling the agent to launch jobs, retrieve results and explore analyses on the user's behalf. Migrated from LangChain/LangGraph to Pydantic AI for superior structured output handling and reliability.

RAG MCP Pydantic AI LangChain

University of California, San Diego

May 2025 – Mar 2026

Retired

GenePattern MCP Server

MCP server exposing the GenePattern REST API as 52 type-safe tools, so any MCP client can launch bioinformatics analyses, monitor cloud jobs, browse module manifests and retrieve results on a researcher's behalf. Built on FastMCP with Docker deployment and bearer-token auth. Provides the platform control layer underneath GenePattern Copilot.

MCP Agentic AI FastMCP Python

Open Source

Jul 2026 – Present

Active

Agent Template

Opinionated starting point for building AI agents in Python. A setup script allows you to select one of three agent patterns: single, supervisor or tool-calling. Ships with an eval suite spanning pass/fail, dataset and LLM-as-judge cases. Logfire provides observability. Request and token limits can be set on every run. Unit tests run against a stub model, no API key needed.

Agentic AI Pydantic AI Evals Python

Open Source

Aug 2026 – Present

Active

Content Agent

Local agent with a web interface that drafts on-brand social posts and email newsletters for several brands, each with its own voice, audience and content history so successive drafts don't repeat themselves. Separate agents handle Bluesky, LinkedIn, post repurposing and newsletters, with review and editing before anything ships through the SkyPilot API. Runs against a local Ollama model by default.

Agentic AI FastAPI HTMX Ollama

Open Source

Jul 2026 – Present

Active

OSS Notifier Agent

Scheduled agent that watches a configured set of GitHub repositories and uses an LLM to triage newly opened, unassigned issues for whether a first-time contributor could realistically take them on. Then emails a digest of the ones that qualify. Runs entirely on GitHub Actions with no server to host. Built on Agent Template, with its own eval fixtures covering the triage.

Agentic AI Pydantic AI GitHub Actions Python

Research Software & Developer Tooling

Broad Institute of MIT and Harvard

Oct 2014 – Jul 2025

Retired

GenePattern Notebook

Jupyter environment that renders GenePattern analyses as interactive widgets, letting researchers interleave narrative, figures and genomic analysis without writing code. A core component of the g2nb project and the subject of peer-reviewed publications in Cell Systems and Cancer Research. Maintained across eleven years and 66 releases on PyPI, with a Docker image for full-stack deployment.

Jupyter Python Bioinformatics Open Source

University of California, San Diego

Oct 2019 – Oct 2024

Retired

nbtools

Framework for building Jupyter tooling that non-programmers can use. A decorator turns any Python function into an interactive form, and a toolbox interface registers those tools as discoverable steps inside a notebook. Ships as a JupyterLab extension written in TypeScript alongside a Python package, distributed through PyPI and npm. A core component of the g2nb project.

Jupyter TypeScript Python Open Source

Broad Institute of MIT and Harvard

Jun 2016 – Mar 2023

Retired

jupyter-wysiwyg

Rich text editor for markdown and HTML cells in Jupyter, letting researchers format notebook prose without writing markup. Integrates TinyMCE into JupyterLab's cell lifecycle and main menu, maintained across seven years of upstream changes. Adopted by SUSE Linux and distributed through its YaST package manager. Published on PyPI and npm.

JupyterLab TypeScript TinyMCE Open Source

Broad Institute of MIT and Harvard

Jan 2011 – Jul 2025

Retired

GenePattern Server

Core contributor to the GenePattern platform, a web application exposing hundreds of genomic, bioinformatic and machine learning tools to researchers who don't write code. Built its REST API, which the platform's Python client and MCP server both wrap, revised its AJAX frontend and implemented its GenomeSpace integration linking GenePattern to Galaxy, IGV, Genomica and Cytoscape. Thousands of commits across fourteen years.

Java JavaScript Bioinformatics Open Source

Broad Institute of MIT and Harvard

May 2015 – Jan 2024

Retired

GenePattern Python Library

Official Python client for GenePattern, wrapping the platform's REST API so that users and downstream tools can submit jobs, inspect task manifests and pull results programmatically. An optional pandas-backed module loads result files into dataframes. Maintained across nine years and 28 PyPI releases. The layer the platform's notebook widgets and MCP server were later built on.

Python REST API Bioinformatics Open Source

University of California, San Diego

Jul 2016 – Jun 2026

Retired

igv-jupyter

Jupyter extension that embeds igv.js, the Integrative Genomics Viewer, directly into notebooks, so researchers can explore an interactive genome browser inline against their own tracks and loci instead of exporting data to a separate tool. Principal contributor across a decade of development alongside the IGV team, writing a little over half of the project's commits. Published on PyPI.

Jupyter JavaScript Genomics Open Source

Other Projects

Open Source

Aug 2026 – Present

Active

Savings Calculator

Client-side calculator that models a household's assets, debts, income, expenses and property events, then projects net worth forward as either a deterministic accounting or a 1,000-trial Monte Carlo simulation over bootstrapped market returns. Retirement shortfalls draw down through a cost-basis-aware waterfall across taxable, tax-deferred and Roth accounts. Pure JavaScript. Nothing leaves the browser.

JavaScript Monte Carlo Web Workers Financial Modeling

Tab Creations

Aug 2021 – Present

Active

Saga Machine for Foundry VTT

Full Saga Machine game system implementation for Foundry Virtual Tabletop, covering character sheets, actor logic, bundled compendium content and localization. Includes experimental backwards support for four earlier Tab Creations titles including Shadows Over Sol. Maintained across five years and tracked through successive Foundry major releases.

JavaScript Foundry VTT Tabletop RPG Open Source