Work
Projects &
case studies.
Systems I've led, shipped, and still operate.
Enterprise case studies are password-protected due to NDA. Request access →
- Listen →
Sīmorgh
2026Eight hundred years ago, Attar sent every bird in the world to find their king. An album, and a site built to be read as much as heard.
A record in Persian made across the same seven valleys as Attar's poem, in forty days: a person writing, machines performing, the ear deciding every time. The site around it is the part I can show. The atlas draws the whole journey as one arc and lets each kind of reader choose a lens. The margins set each song as a folio with the commentary where a scribe would have put it, every note sourced, every quoted couplet verified against the standard corpus. The making-of keeps the receipts, down to the variations that were heard and not kept. Three clocks version it: the record by edition, the room by semver, the site by date.
8 songs, and a door before them40 days from first sketch to masters89 variations, each with a recorded deltaNext.js 16 · React 19 · Suno · Python audio pipeline · Playwright
- Visit →
crossword-poster
2026Clues from friends and family, set as a crossword big enough to hang on the wall and fill in at the party.
Give it a spreadsheet with a clue column and an answer column, and it writes a print-ready poster, the file to send to the print shop, an answer sheet for the host, and an actual-size page to check the type on a desk printer before paying for the big print. The grid generator searches many layouts and keeps the most compact one that holds every answer; when an answer cannot cross any other, it says which and why. An independent validator re-derives the grid from its letters, and a verifier checks page sizes, embedded fonts and that every clue appears exactly once. It runs offline, so the clues never leave the computer, and it is written for people who have never opened a terminal.
18x24, 24x36 and 36x48 in, other sizes scaledEvery answer placed, or named with the reasonRuns offline: nothing is uploadedPython · Playwright · Chromium · pypdf · Pillow
Ripple Treasury Platform
2023–PresentprotectedThe navigation was the top reason deals were lost. Led the redesign.
A treasury platform serving 160+ countries hadn't been structurally redesigned in 8 years. Sales teams reported that prospects rejected the product during demos because they couldn't find what they needed. I synthesized hundreds of user quotes into data-driven personas, prototyped 11 navigation patterns, and introduced a task-oriented framework that replaced technical module names with solution-based categories. The navigation went from deal-killer to competitive differentiator.
160+ countries11 patterns prototypedFirst redesign in 8+ yearsReact · TypeScript · Vite · Pendo · Figma
Keystone Design System
2023–2024protectedAn acquisition put two brands on one platform. Led the token architecture that made them composable.
After an enterprise acquisition, two distinct brands had to coexist on a single platform without losing either identity. Led the design and architecture of a token pipeline from a single YAML source: semantic aliasing resolves brand-specific values at build time, outputting to 6 formats with automated CI/CD distribution. The system was designed to survive organizational change — and it did. Both brands shipped coherent from day one.
1 YAML source6 output formats2 brands · CI/CD automatedStyle Dictionary · YAML · Design Tokens · CI/CD
Analytics Practice
2023–PresentA platform processing billions daily had no analytics practice. Established one from zero.
The product team was making roadmap decisions without usage data. Not dashboards-without-data — no data infrastructure at all. Established a Center of Excellence with a governance charter, a 3-tier adoption framework connecting usage signals to roadmap decisions, and trained the team to self-serve. The output wasn't dashboards. It was a product organization that stopped guessing.
Enterprise-wide coverage3-tier adoptionCoE from zeroPendo · Python · SQLite · Power BI
Nodus Design System
2024–PresentBauhaus made industrial structure visible. This makes algorithmic structure visible.
Most design systems are built for marketing sites and consumer apps. This one is built for AI-native products — where color is semantic, not decorative. Three semantic primaries: red (agency/authority), blue (temporal/processing), yellow (validation/enrichment). Finance-density constraints baked into the token layer. RFC governance for any change to the public API. WCAG AA enforced at the token level, not the component level.
3 semantic primitivesFinance-density tokensWCAG AA enforcedNext.js 16 · React 19 · Radix UI · Style Dictionary · Tailwind v4
- Case study →
Ledger Treasury
2026Built the density of a treasury platform to design against it, not around it.
A treasury application built to my own brief — cash, payments, portfolio, reconciliation and invoicing under one shell, with the state and permission rules that make those screens hard to design. Synthetic data throughout, so the work is public. Every domain ships a committed visual-regression baseline and a lint rule that fails the build on any hardcoded colour or spacing value.
21 domain screens4-tier role modelVisual baseline per domainReact · TypeScript · Vite · FastAPI · SQLite · Playwright
- Visit →
Nodus
2024–PresentAI infrastructure I depend on every day. Not a demo — a daily driver.
Most AI tools are wrappers around an API. Nodus is infrastructure — 17 specialized agents on a shared context bus, 630K+ vectorized knowledge chunks at 5ms search, provenance on every output. One dependency. Local-first. No data leaves the perimeter. Founded and run daily because the tools I needed didn't exist — and nothing else comes close.
1 dependency17 agents630K+ searchable chunksPython · FastAPI · SQLite · sentence-transformers
- Visit →
Structured Thinking
2025–PresentFinance formalized its knowledge decades ago. Design hasn't. That's the gap.
Design knowledge is tribal — undocumented decisions, scattered style guides, institutional memory locked in people's heads. Finance solved this problem decades ago. FIBO has 1,346 classes and 273 object properties. Design has JSON tokens with string values. Structured Thinking builds the semantic layer above W3C Design Tokens — formal ontology that lets humans and AI reason about design decisions instead of guessing at intent.
W3C DTCG extensionFinance + design ontologySubstack · Research · Ontology design