I started in print and identity work with a B.A. in Visual Communications, and I have been writing production JavaScript for twelve years. That order matters: the typography and the colour judgement came first, and the engineering arrived to serve it.
At Versatile Credit, now part of Synchrony, I own the interaction design, the visual design, and the TypeScript, Vue and Tailwind that ships, along with the PostgreSQL models and Kotlin APIs behind it. Three very different audiences read the same platform, so the design system has to hold consumer, merchant and internal operator without any of them feeling like an afterthought.
For about three years my practice has been agent-orchestrated: research the current pattern, write the failing test, direct the agent at it, and keep the tree working at every commit. Agents make the throughput. The taste and the verification are mine, and that division is the whole point.
Most of what I design now is AI-native and developer-facing, which is a specific design problem rather than a general one. The system streams instead of resolving. It is confidently wrong sometimes. The interface has to make that legible: citations you can open, a verdict before the evidence, a threshold where the honest move is to ask rather than answer.