Projects & Explorations
Each of these has its own piece written about it: what the problem actually was, what got decided, and what I would not claim.
Project Postcard
One place, one issue, every month: an email travel magazine written and illustrated by an AI pipeline where the only human step is approve or reject.
Sole author: product, pipeline architecture, evaluation design, implementation
- Cloudflare Workers
- Cloudflare Workflows
- Cloudflare D1
- Cloudflare R2
ThreatForge
Threat models that live in the repository they describe, written as YAML you can review in a pull request.
Sole author: product direction, Rust and TypeScript implementation, release engineering
- Tauri v2
- Rust
- React 19
- TypeScript
Kinnections
The server stores a map of your relationships and cannot read a byte of it. Every decision in this paid, encrypted product had to survive that.
Sole author: product, cryptography design, full-stack implementation, billing and operations
- Next.js
- React 19
- TypeScript
- Web Crypto API
Runmark
Request definitions as files in your repository, run by one engine that serves a developer's terminal and a coding agent over MCP.
Sole author: product, CLI and MCP design, execution engine, release
- TypeScript
- Node.js
- Zod
- YAML
This portfolio
The site you are reading: two complete experiences over one corpus, where the conversational one is optional and the indexable one is not a fallback but a peer.
Sole author: product architecture, design direction, and full-stack implementation
- Astro
- React
- TypeScript
- Zod
Customizing an AI agent that speaks in a shared room
Notes on the problem I lead at Microsoft: making Teams Facilitator configurable when everything it says is visible to every participant. About the shape of the problem, not the unreleased implementation.
Lead engineer, Customization, Microsoft Teams Facilitator
- TypeScript
- React
- Prompt engineering
- LLM orchestration
Split my Meal
An even split punishes whoever ordered the salad. This iOS app apportions tax and tip to what each person actually had, and keeps the meal afterwards.
Sole author: design, SwiftUI and SwiftData implementation, App Store submission
- Swift
- SwiftUI
- SwiftData
- MapKit
Estimate my Mortgage
Most mortgage calculators answer one payment. This iOS app holds several estimates side by side, because the real question is which combination you want.
Sole author: design, SwiftUI implementation, App Store submission
- Swift
- SwiftUI
- Core Data
- MapKit
Also built
Earlier work that reached people but does not have a piece written about it. Listed without links: several are unmaintained, and a site that has drifted is worse evidence than the record of having built it.
CollabHive2025
A discovery and collaboration platform for passion projects, built as a web client and a separate API.
Judge GPT2024
A quiz that measures how well people distinguish real news from generated fake news, in four languages, collecting results as training data for misinformation detection.
Focus Timer2023
A focus timer built as an app inside Microsoft Teams.
Split my Trip2022
A web app for settling complicated shared expenses across a group trip. The idea that later became a native app.
P Sane Creations2022
An online gallery and shop for an artist's work.