Skip to content
Always Shippable

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