// Decorative imagery — abstract editorial visuals as placeholders. // Each is a self-contained SVG. Pink palette only. Pull-quotes & shapes that feel intentional. window.GalleryStrip = function GalleryStrip() { return (
{/* abstract typewriter / keyboard suggestion */} {Array.from({length: 28}).map((_, i) => { const r = Math.floor(i / 7), c = i % 7; return ; })} SPACE {/* light beam */} studio · keys 01 / 04
{/* pull quote on a "page" */} " Build small, ship often, name things well. — PERSONAL MOTTO {/* page corner shadow */} manifesto 02 / 04
{/* terminal mock */} {[ ['$ git commit -m', '#ec5e94', 56, 116], [' "ship the small thing"', '#c8c5be', 56, 138], ['', '', 56, 156], ['→ 4 files changed', '#8a8780', 56, 176], ['→ +127 −62', '#f5a8c8', 56, 196], ['', '', 56, 214], ['$ git push origin main', '#ec5e94', 56, 234], [' ✓ pushed', '#62c554', 56, 256], ['', '', 56, 274], ['$ _', '#ec5e94', 56, 296], ].map(([t, c, x, y], i) => ( {t} ))} {/* blinking cursor block */} commit · log 03 / 04
{/* sticky-note grid */} {[ { x: 50, y: 60, c: '#f5a8c8', r: -3, t: 'queue' }, { x: 200, y: 50, c: '#fce4cc', r: 2, t: 'eval' }, { x: 350, y: 70, c: '#ec5e94', r: -1, t: 'memory' }, { x: 80, y: 200, c: '#fbe7d8', r: 4, t: 'agents' }, { x: 240, y: 210, c: '#f5a8c8', r: -2, t: 'specs' }, { x: 380, y: 220, c: '#fce4cc', r: 1, t: 'queue' }, ].map((n, i) => ( {n.t} ))} {/* desk shadow */} backlog · stickies 04 / 04
); }; window.ProcessBand = function ProcessBand() { return (
Process · 03 captures

Sketch, build, name well.

How a project goes from a real operations problem to a tool people actually use.

↘ scroll for case studies
{/* notebook page */} {/* ruled lines */} {Array.from({length: 14}).map((_, i) => ( ))} {/* hand-drawn flowchart */} user queue worker store "keep it boring" — sprint 14, fri
/ 01SKETCH
{/* IDE-style screenshot */} {/* sidebar */} {['src/',' app/',' ▸ agents/',' ▸ memory/',' utils.ts','tests/','README.md'].map((f, i) => ( {f} ))} {/* code area */} {[ ['function', '#a5c4ff', 92, 64], [' run(', '#f4f1ea', 158, 64], ['agents', '#f5a8c8', 188, 64], [') {', '#f4f1ea', 220, 64], [' // for each agent,', '#5a584f', 92, 80], [' // step until done', '#5a584f', 92, 96], [' for (', '#a5c4ff', 92, 112], ['const ', '#a5c4ff', 124, 112], ['a', '#f4f1ea', 156, 112], [' of agents) {', '#f4f1ea', 162, 112], [' await ', '#a5c4ff', 92, 128], ['a.step()', '#ec5e94', 142, 128], [';', '#f4f1ea', 188, 128], [' }', '#f4f1ea', 92, 144], ['}', '#f4f1ea', 92, 160], ].map((r, i) => ( {r[0]} ))} {/* terminal panel */} → npm test ✓ 14 passing ✓ build OK → deploy.sh uploading... ✓ shipped
/ 02BUILD
{/* polaroid-ish desk shot */} {/* desk surface */} {/* monitor */} {Array.from({length: 8}).map((_, i) => ( ))} {/* coffee cup */} {/* notebook */} {/* light on top */}
/ 03SHIP
); }; window.PolaroidCluster = function PolaroidCluster() { return (
EVA v0.4.0 — internal "agents work."
first run, march '26
{/* dashboard cards */} 94.2 BLEU {/* big chart */} {[30,55,42,68,52,78,60,85,72].map((h, i) => ( ))}
model dashboard — week 4
{/* installer dialog */} setup.exe Installing... copying tmt-runtime.dll ✓ signed Cancel
tmt — first signed build
); }; window.SplitFeature = function SplitFeature() { return (
{/* layered windows */} eva.localhost → agent.run("brief") thinking... ↳ retrieved 14 docs tmt — queue {Array.from({length: 6}).map((_, i) => ( ))}
Selected · in flight

Tools that look like tools, not products.

Internal software gets to be useful first and pretty second. I lean into the workshop aesthetic — visible state, monospace where it matters, no precious chrome.

What that buys: faster iteration, fewer translation layers between the user and the data, and tools that survive being used by real people in production.

See it in the work →
); }; // SVG visuals for the service tiles window.ServiceVisual = function ServiceVisual({ kind }) { if (kind === 'tooling') { return ( ~/tools/installer.py → python build.py ✓ ok → cython compile ✓ .so → sign setup.exe ✓ trust SHIP ); } if (kind === 'ai') { return ( {[ { cx: 80, cy: 70, r: 18 }, { cx: 200, cy: 40, r: 14 }, { cx: 320, cy: 70, r: 18 }, { cx: 200, cy: 100, r: 14 }, ].map((n, i) => ( ))} planner retrieval writer memory ); } // translation return ( {/* left column — source */} source · en {[60, 76, 92].map((y, i) => ( ))} {/* arrow */} {/* right column — target */} target · ja {[60, 76, 92].map((y, i) => ( ))} {/* check icon */} ); };