AI practice · How I operate
AI is part of the loop, not the identity.
I use AI to compress research, design, prototyping, testing, and feedback. The design judgment stays human. The system makes the work faster, more inspectable, and less likely to drift. Five loops, each mapped to work that shipped.
How I use AI
01
Research
Synthesize customer signal, map patterns across messy inputs, and generate the questions worth asking before a pixel moves.
02
Design
Explore IA, flows, and edge cases, draft UX writing, and run critique prompts against my own work before anyone else sees it.
03
Development
Prototype real interfaces, scaffold UI, and check implementation feasibility in code instead of guessing at it in a mockup.
04
Testing
Catch regressions, review pull requests, and run QA loops so speed never comes out of quality. Agents review agents, humans merge.
05
Feedback
Shorten the path from customer signal to product decision, so what users say turns into what ships.
Shipped, not theoretical
Axios HQ
2×
AI usage across the platform. Sr. Director of Product and Design, 2023 to 2025.
Nibbble autofix
17
Real production fixes shipped by an AI assistant working unattended on a small, fenced-off list of files. The local model runs free per attempt.
Nibbble repo
412
Code commits to the live product in twelve weeks. Mohsin wrote most of them. Claude paired on nearly half.
Nibbble coverage
95.75%
Automated tests cover almost every line of a live SaaS product serving multiple restaurants. 21 architecture decisions are written down in the repo.
Kintsu brand system
2,745
Lines of brand strategy I wrote and made AI-enforceable, across six long-form documents AI agents read on every session.
Working principles
Not aspirations. The rules my repos run on today.
How I work with AI
01
Visible where it earns trust. Invisible where it earns time.
AI shows up in the interface when seeing it helps the user. It stays out of the way when it is just a faster path to the same answer. That call is the same on every product surface, and it is mine, not a model's.
02
Local-first routing. Cloud where judgment matters.
Most AI tasks are cheap and bounded. Those run on free, local models. The hard, irreversible calls (architecture, judgment about user trust) go to Claude in the cloud. Cost shows up where the decisions get made.
03
Voice and brand as contracts the AI reads every session.
Brand voice, prohibited words, motion rules, color tokens, and compliance rules live as files in the repo. Every AI agent reads them before it writes. Drift gets caught at the contract stage, not at review.
04
Cost and provider health are operating surfaces, not slides.
I can check what every AI call cost me today the same way I check the weather. One command at the terminal. Provider health and per-route spend are everyday operator surfaces, not a quarterly review item.
05
Agents review agents.
One AI proposes the work. Another AI reviews it before it ships. Codex blocks pull requests on the Nibbble repo if the change misses the bar. Humans merge. The AI accountability ladder is not optional.
What stays out of the work
01
AI demo theater.
No future-of-design essays. No speculative roadmaps. No logo grids of model providers standing in for capability.
02
AI features without a fallback.
Every AI surface ships with an explicit handoff to a human and an editable output.
03
Speed paid for by dropping the bar.
Cycle time and quality get measured side by side. AI shortens the path. It does not move the destination.
04
Final calls delegated to models.
Product direction, user trust, hiring, team direction. Those stay with humans.
Under the hood
Agents ask for a capability, not a model by name. A router picks the model, falls back if it has to, and tracks what each call cost. Local models handle the cheap, bounded work, cloud models handle the judgment calls. The tooling is plumbing, the judgment is the job.
Hiring a principal who actually ships AI?
