All Posts
33 of 33 posts
Strudel Bench · Part 5
arrival
Eight sections, 62 parts, 28 instruments, and two wills that never merge. One piece of music taken apart: what carries it, and what it cannot do.
11 min read
Strudel Bench · Part 4
Mixing as a scene
A mix is where things are, not how loud they are: one hall, a position each, levels by role, a played feel, and a tool that measures whether it worked.
15 min read
Strudel Bench · Part 3
Knobs in the code
A tour of the Compose page: three views on one source string that all write back through one door, and the four controls that only change what you hear.
13 min read
Strudel Bench · Part 2
Say darker
Twenty-nine English words, each a set of deltas on a song's numeric axes: how they apply, what they refuse, what saturates, and how much reads back.
14 min read
Strudel Bench · Part 1
A language on top of Strudel
Strudel is a fine instrument and a poor score. What strudel-bench adds: named sections, parts with baselines, twelve knobs per part, a layer you can decompile.
18 min read
Finances · Part 4
Real taxes, less hearsay
My simulator's flat 5% tax knob was hearsay. A real tax engine measured 22%, the knob went to 15%, and asset location beat every Roth conversion video.
13 min read
A Stream Deck as a Claude Code Dashboard
Parallel Claude Code sessions mapped onto Stream Deck keys so the one that needs me lights up: AgentDeck on macOS and yolodeck on Windows, end to end.
13 min read
Agent-Built · Part 4
How I Code with Agents Today
The process I use to turn an idea into application code with agents, shown end to end on a real case study: this blog.
24 min read
Work from 2001 to 2018 · Part 2
DocMapper: The Map I Spent Six Years Drawing
My first job out of school was designing and building a radial map that drew a legal document review as clusters of concepts. Six years, five patents.
12 min read
Work from 2001 to 2018 · Part 3
The Hover Preview Panel I Built at Bing
In 2008 I joined Bing's UX team and shipped the hover preview panel, the quick-answer module, and results-list features seen by hundreds of millions daily.
2 min read
Work from 2001 to 2018 · Part 4
BunnyPuddle Games: Because Water Sims Are Fun
Around 2010 I shipped a couple of Android games as a one person team named BunnyPuddle Games.
1 min read
Work from 2001 to 2018 · Part 7
Drag the Timeline, Refilter the Page
In 2013 I replaced our off-the-shelf Google charts with hand-built D3 dashboards where dragging the timeline refilters the whole page.
7 min read
Work from 2001 to 2018 · Part 5
Media Foundry: Did the Spot Actually Air?
Media Foundry checked purchased TV spots against ad-watermark detections, block by block, with a drag-to-fix grid for the leftovers.
3 min read
Work from 2001 to 2018 · Part 10
One Codebase, Two Datasets
I built a crossfilter dashboard for the fatalencounters.org data, then forked the whole thing to chart who was rewarding who at work.
6 min read
Work from 2001 to 2018 · Part 12
ONE TV in Australia
The last thing I shipped before I left Oath: the same TV ad-buying platform, rebuilt on OzTAM currency for an Australian sales house.
3 min read
Work from 2001 to 2018 · Part 11
ONE TV: One Design Language, Three Generations
AOL's ONE TV had an upfront half and a scatter half, and behind both a constraints dialog I had first drawn in Balsamiq in 2012.
5 min read
Work from 2001 to 2018 · Part 6
Audience Planner: 2,473 TV Shows on One Screen
The Silverlight side project that became PrecisionDemand's flagship: explore thousands of TV programs by targeting quality, then optimize the buy.
9 min read
Work from 2001 to 2018 · Part 8
Buy Side, Sell Side, Same Data
Two PrecisionDemand dashboards asked opposite questions of the same TV ad data. One of them turned a 20% time idea into a granted patent.
9 min read
Work from 2001 to 2018 · Part 9
The Explorers We Built to Understand Our Own Data
Four small internal tools from PrecisionDemand and AOL, none of them shipped products, all built to poke at a dataset until it made sense.
5 min read
Work from 2001 to 2018 · Part 1
The Portfolio I Froze in 2018
In 2018 I copied seventeen years of side projects onto one static site and went job hunting. It still runs. Here is the map of what is in it.
5 min read
Agent-Built · Part 1
An Agent Built This Blog
Eleven planned commits in 79 minutes, a shippable site the same afternoon, and the validation gauntlet that makes agent publishing safe.
7 min read
Agent-Built · Part 3
Repos as Experts
How posts get made here: an executable skills pipeline, and an authority system where the repo a post describes is consulted as its domain expert.
6 min read
Agent-Built · Part 2
The Authoring Surface
Every primitive this blog is written with: static MDX components, build-time diagrams and math, and the one React island that earns its JavaScript.
9 min read
Finances · Part 3
Same plan, same spending. Broke, or $5.8 million.
One textbook retirement plan replayed across 98 historical start years, from 1928 on. Four of those lives, and what sequence-of-returns risk really means.
9 min read
Finances · Part 2
My simulator watches retirement YouTube for me
A text-file queue, a transcript script and two Claude Code skills turn retirement videos into three experiment rows, a verdict and a channel scoreboard.
10 min read
Finances · Part 1
Teaching an AI to run retirement experiments
retire-sim replays every historical start year since 1928, grades strategies on earliest safe retirement age, and lets Claude Code run the experiments.
11 min read
WorldLock · Part 3
Ponytail: making the AI a lazy senior dev (is it any good?)
WorldLock was built with Claude Code in ponytail mode, an AI playing a lazy senior dev. What it did to the code, and how it fared replaying a real PR review.
7 min read
WorldLock · Part 2
Android development with Claude, no IDE, no cable
How WorldLock is built, deployed and debugged with three CLI commands, wireless adb and a coding agent that reads logcat and screenshots. No Android Studio.
4 min read
WorldLock · Part 1
WorldLock: an AR window onto the actual planet
A native Android AR app that georegisters city towers, the whole Earth and the live ISS to the real world with ARCore's Geospatial API.
5 min read
Sierra Games · Part 3
omyac-upscaler: all the way into the anchor graph
Porting agi-up's anchor-graph upscaler to SCI0 PICs: four colour-model fixes, one convention fix, and why snap-blend is leaving the PIC path.
21 min read
Sierra Games · Part 2
Trying agi-up as a reference renderer for SCI0
Borrowing from a native-resolution AGI upscaler for a 6× SCI0 pipeline: one geometric rule transferred, the architecture did not, and why.
9 min read
Sierra Games · Part 1
Upscaling Sierra SCI0 PIC: the native render oracle
How snap-blend upscales Sierra SCI0 vector backgrounds without leaking flood fills, using a native-resolution render as the oracle for every scaled fill.
12 min read
A contradiction-aware index of The Why Files
How I turned 218 Why Files transcripts into a claim graph with truth propagation, typed contradictions and a transcript pointer on every edge.
15 min read
































