With or without your voice.
From enterprise platforms to consumer apps, across fintech, healthtech, and real estate.
Born and raised in San Francisco.
You describe the outcome. It picks the steps, uses the tools, and keeps going until the work is done.
Chat assistants answer once. Agents keep running until the goal is met.
Anthropic’s agentic CLI. Lives in my terminal. Reads files, writes files, runs commands, commits to git — end to end in one prompt.
Same clock. Thirty times more tries. That’s the unlock.
Who I am. How I work. Voice rules. Loaded into every conversation, any project.
Stack. Conventions. Lessons. Do-not-touch list. Loaded when Claude is in this folder.
Shell scripts that fire on events — block bad writes, snapshot tasks, sandbox private modes, notify me.
Feedback, references, project facts. Written as I correct. Compounds every session.
In-session work tracking. Plan a multi-step change, tick tasks as they land. Prevents drift in big refactors.
Shared design tokens and CSS primitives. Every project imports the same palette, type, and components — so it all feels like one factory.
One script per project. Say “deploy” and Claude runs the right one — no more copy-paste rsync from memory.
What I actually dictate. Slash commands shortcut repeated workflows.
Normal Claude, or Claude Code. Watch where your idea travels before it becomes shipped code.
I wanted a funny G-uptime site — like status pages for Claude or AWS, but for the G.
Live feed is the source of truth. Socrata gives history. Our poller fills the 4–8 week gap.
MTA ships one long paragraph. We parse it into lines, badges, and alternatives so you can read it while the train’s pulling in.
.toISOString() returns UTC. We now use localISO() everywhere.renderWeek builds HTML in a string, sets innerHTML at the end. Any throw mid-loop kills the paint.Every failure turned into a memory. Next conversation, Claude already knows.
Most of what I send is messy dictation. Claude reads intent, not syntax.
.hero had scroll-snap-align: start + scroll-margin-top: 16px overriding main padding. Removed it. Padding worked.padding: max(80px, 10vh) for a responsive top padding.120px is fine.padding: 120px immediately. No argument, no justification of the original choice.Pick a feature. We'll build it together, right here, from voice to shipped.