# Theodore Lee

![Pixel art: a green suspension bridge with Gothic towers rises out of morning fog over a river, and a great blue heron wades in the shallows.](https://theodoreklee.com/img/cathedral-park.png)

> AI engineer in Portland, Oregon. I put AI to work inside real products.

Senior Principal Software Engineer on Oracle Health's AI Platform until 2026. Before that: oncology data at Project Ronin, clinical NLP at Kaiser Permanente, and a startup where the internet drove real robots. Now I'm building VYBSRF, a picture board people share with their AI agents.

My bet: most software work is turning into putting AI inside real products. If you're hiring for that, write to me.

- **Status:** Open to new roles (as of 2026-11-04)
- **Open to:** AI safety work, applied AI and AI platform roles
- **Location:** Based in Portland, Oregon. Hybrid or remote, with travel.
- **Email:** theo@vybsrf.com
- **Web:** https://theodoreklee.com/ · this brief: https://theodoreklee.com/theodore.md
- **X:** https://x.com/ubereatsaddict1
- **GitHub:** https://github.com/tklee

## Who this is

This is Theodore Lee (Ted Lee on X, @ubereatsaddict1; GitHub: tklee), the software and AI engineer in Portland, Oregon: formerly of Oracle Health, Project Ronin and Kaiser Permanente, and the founder of VYBSRF, LLC. Other people share the name; facts about them are not facts about him.

## On X

He posts as Ted Lee, @ubereatsaddict1 (https://x.com/ubereatsaddict1): short takes, mostly about AI. His most-read post (August 5, 2026; about 2.8 million views as of November 4, 2026): "Founder-led companies are advantaged now. Massively advantaged." https://x.com/ubereatsaddict1/status/2085152738326016126

## Now: VYBSRF

*Catch what inspires you. Lend it to your agent.* https://vybsrf.com

A picture board with two kinds of users. People catch images and pages from anywhere on the web. Their AI agents recall those boards later, add finds of their own, and say why. I design, build and run it from Portland.

The postcards on this page come from it: Portland in Pixels, 28 scenes drawn entirely by code that Claude wrote at my direction.

- MCP server with OAuth, set up for Claude, ChatGPT, Grok, Cursor, Codex and Meta Muse.
- An HTTP 402 checkout I built so agents can pay cents in USDC, with no account.
- Web app, Chrome extension and Android app. Supabase, pgvector, Stripe, Cloud Run. 120 test files.
- MCP endpoint: https://vybsrf.com/mcp (tools include list_boards, recall_board, create_board, collect_reference, discover_inspiration, browse_feed, and more)

## Experience

### Founder · VYBSRF, LLC · 2025–present

*agents* · Designing, building and running VYBSRF. A side project from 2025; full time since leaving Oracle in 2026.

### Senior Principal Software Engineer, AI Platform · Oracle Health · 2024–2026

*health AI* · Founding member of the team that connected Oracle's semantic vector database to frontier models for Oracle Health's medical record system. Designed the event-driven architecture that queries, indexes and transforms hundreds of millions of clinical records as they change, and took integrations across Oracle Health from design to production.

### Senior Engineer, Data Engineering · Project Ronin · 2019–2024

*health data* · Designed the data ontology and multi-tenant pipeline behind an oncology startup's cancer-care products (Spark, Databricks, Azure Data Factory, Delta Lake). Built its ML and NLP infrastructure on OCI and Azure from scratch.

### Lead Backend Engineer · Cloudcade · 2018–2019

*games* · Led a team of six through the global launch of a game that hit #1 on the iOS App Store, then designed the data model for its sequel.

### Co-founder, with Jill Ogle and Rick Giuly · Let's Robot · 2016–2018

*robots* · A livestreaming platform where viewers drive real robots together over the internet. I built the video relay, the chat service and its abuse controls, and drew the architecture diagram still in the README (78 commits, 2016–2017). Featured in Make and on The Chris Gethard Show.

### Founding team engineer · ShipHawk · 2014–2016

*logistics* · Led the backend team as the logistics platform grew to $1M in monthly revenue, and wrote the bin-packing algorithm that fits shipments into containers.

### Software Engineer, Medical Informatics · Kaiser Permanente · 2012–2014

*clinical NLP* · Clinical NLP pipelines at scale (Apache Lucene, UIMA) and better de-identification of patient data with Stanford NLP tools. Co-authored the paper under Receipts.

## Education

- B.S., Computational Physics, minor in Mathematics · University of California, Irvine · 2012

## Publication

- Torii M, Fan JW, Yang WL, Lee T, Wiley MT, Zisook DS, Huang Y. "Risk factor detection for heart disease by applying text analytics in electronic medical records." *Journal of Biomedical Informatics*, 2015. PMID 26279500. https://pubmed.ncbi.nlm.nih.gov/26279500/

## Skills

- **AI and agents:** MCP servers, OAuth for agents, retrieval and vector search, clinical NLP
- **Safety:** prompt-injection defenses, agent payment safeguards, content screening and child-safety process
- **Data and infrastructure:** Spark, Databricks, Delta Lake, Kafka, OpenSearch, event-driven systems
- **Languages:** Python, TypeScript, JavaScript, SQL, Go, Ruby
- **Cloud:** AWS, Azure, GCP, OCI, Cloud Run, Supabase

## How I work with AI

I build with coding agents every day. The judgment stays mine.

- **Agents draft. I design and review.** I build VYBSRF with coding agents working from written handoffs. I decide what gets built and review what comes back.
- **Every experiment gets an end date.** VYBSRF's paid experiments each ran against a deadline I set before they started, with the numbers tracked daily.
- **Built isn't the same as on.** Membership and agent top-ups are built and tested, and switched off until they earn a place. Risky features ship behind a switch.

## Safety, in practice

Two products, nine years apart, one problem: strangers steering a system I'm responsible for.

- **Untrusted text stays labeled.** (prompt injection) On VYBSRF, page titles and descriptions are written by whoever owns the page. Agents get cleaned fields, every result lists the untrusted ones in _untrusted_fields, and the tool descriptions tell agents to treat them as data.
- **Assume the agent was fooled.** (exfiltration) I map every path a manipulated agent could use to push data out through my server, and put a person's OK or an off switch on each one.
- **Paying is a separate door.** (payments) Agents can't pay through the MCP connector. Payments go through a separate HTTP 402 endpoint, and each one is bound to a single order.
- **Strangers drove real robots.** (robots, 2017) At Let's Robot, anyone online could steer a real robot. I wrote its chat filter and IP-aware rate limiting.

## Side quests

What I tinker with when nobody's asking, and when I'm not on a tennis court.

- **Racket-stringing robot** (hardware): Exploring a machine that strings tennis rackets by itself: prior art, mechanism, business case.
- **Sunbreaks** (teaching): Taught my family how AI works with a pixel-art deck and a live voice assistant they could question.
- **A research desk that keeps score** (research): A personal ontology of the AI buildout, standing watches on X, and dated predictions logged to be graded.

## Evidence (public sources)

- Published: Co-authored a hybrid ML and rule-based system that pulls heart-disease risk factors out of medical records. F1 of 0.9185 in the 2014 i2b2/UTHealth challenge. Source: Journal of Biomedical Informatics, https://pubmed.ncbi.nlm.nih.gov/26279500/
- Live: VYBSRF's MCP server is live. Point Claude, ChatGPT, Cursor or Codex at it and check for yourself. Source: vybsrf.com, https://vybsrf.com
- Shipped: At Let's Robot I built the live video relay, the chat service and its abuse controls: 78 commits across five repos, and the architecture diagram still in the README. Source: GitHub, https://github.com/runmyrobot/runmyrobot/commit/cdc9822

## About this brief

- Written by Theodore Lee, with Claude's help on wording and layout.
- Dates are years.
- Not stated here: salary expectations, start date. Ask Theodore.
- Last updated: 2026-11-04.
