I build the thing before it exists, so the right people can decide early.

Who I am · Nineteen years · Six companies

Since Flash, the good fight: designers should code

  • RoleDesign engineer. I sit between research, design, product and engineering and make the decision visible early, in working code, on real data shapes
  • What I am here to doHelp a research-led studio ship what it learns, in an AI-native world, and grow the next people who do it
  • 19 yrssince the 2007 degree, every one of them making the decision visible in working code before the sprint was spent
  • 4design systems shipped across four companies: WebMD, Nordstrom CommonUI, Microsoft Sovereign UI, and the kit under Apple's publishing system
  • 40+teams adopted a publishing system from one email, no mandate; thousands of engineers on Lyric; every JEDI team that asked for a Preview Site

Since Flash

Since Flash, I have been fighting the good fight that designers should code. Not because engineers cannot design, and not because designers should ship production systems alone, but because a decision made in the medium it will ship in is the only one a room can argue with.

Coding is not dead. Manually creating code is. The judgment about what to build, for whom, and what must never regress is the part that got more valuable, and it is the part I have spent nineteen years learning to write down where the next person will find it.

The arc, in four moves

Microsoft, designer PM. Personnel for JEDI, then Cloud Screening and Gov Screening. Preview Sites for several JEDI teams: I was loaned across them, bootstrapping each PM team's ideals into one coherent design system.

Microsoft, the engineering seat. When JEDI was bound up in the courts and the re-orgs came, I was merged into a software engineering role on Sovereign Clouds. My mentor, Arash Motamedi, told me to take the growth mindset literally and learn Azure from the inside. I did.

Apple, Senior UI/UX Engineer in UX Engineering. I collapsed fourteen executive dashboards into one surface, rebuilt thousands of hand-tuned charts one to one from an ingestion pipeline, and turned the surface into a publishing system that forty-plus teams ran themselves, every team its own room.

Since then, Unakin. Agentic systems built in the open: Panogram for spatial and 360° media, Spacelab Studio, and shipmate, an agent that deploys and changes DNS hands-free from my phone and refuses to execute unless a plan ran in the last ten minutes.

Microsoft, designer PM

Personnel for JEDI, then Cloud Screening and Gov Screening. Preview Sites for several JEDI teams, on loan, bootstrapping each PM team's ideals into one coherent design system.

Microsoft, the engineering seat

When JEDI was bound up in the courts and the re-orgs came, I was merged into a software engineering role on Sovereign Clouds. My mentor, Arash Motamedi, told me to take the growth mindset literally and learn Azure from the inside. I did.

Apple, Senior UI/UX Engineer

I collapsed fourteen executive dashboards into one surface, rebuilt thousands of hand-tuned charts one to one, and turned the surface into a publishing system forty-plus teams ran themselves.

Since then, Unakin

Agentic systems built in the open: Panogram for spatial and 360° media, Spacelab Studio, and shipmate, an agent that deploys from my phone and refuses to execute unless a plan ran in the last ten minutes.

What the engineering seat bought

I know what a design decision costs when it lands late. And accessibility was nobody's ask: an hour a week in office hours with Scott O'Hara, then the Azure S360s Robert Taft tapped me for, fixed in code and documented for whoever came next. Robert wrote to everyone involved. Nobody reported to me.

I know exactly how a design decision lands in engineering and what it costs when it lands late. I came back to design and prototyping with that bill in hand.

It also bought the story I tell about leading without authority. Accessibility on Azure was not in my title. I spent an hour a week in the C+AI Accessibility Office Hours with Scott O'Hara, with no mandate, reworking patterns in the Preview library before they reached production. Robert Taft, who led the UXE BAG meetups, tapped me to help clear the accessibility S360s piling up on Azure. I documented the whole process, made PRs against Azure source for several teams, and kept the wikis current for whoever came next. Robert wrote to everyone involved about it. Nobody reported to me in that story. The standard moved because the work was visible and the write-up was reusable.

How I work

Grow the next people who build the thing before it exists.

A pawn becomes anything if it gets far enough up the board. I have been the pawn in six chapters. The seventh is about the people behind me: giving them the route, the systems, and a standard that holds without me in the room.

Design is a decision about someone else's time, made visible early enough to be cheap to change.

Everything I have built is that sentence. The Preview Site made a PM's decision visible before engineering spent a sprint. The iViz wheel made a surgeon's one-handed grip the constraint before hardware was cut. The playbook's gate makes a design-system violation visible before a reviewer's afternoon is spent on it.

The design process you were taught is dead.

Discovery, mock, iterate, handoff. I stopped working that way in 2020, when the prototype became the product's first draft. Build in the medium it will ship in, then decide.

Two kinds of design work now.

Supporting rapid execution. Pairing with engineers, real-time feedback, the last-mile polish. For me that was live-coding previews over Teams, engineers taking the TSX as the blueprint, and PRs against Azure source.

Short-horizon vision. A three-to-six-month prototype that points a team in a direction. For me that was Project Studio, and the fourth generation of the Preview Site.

Trust is built by shipping early and answering.

"What destroys trust is shipping something early and then nothing happening." My version: receipts, not promises. Twelve hours to twenty minutes. A gate that refuses below the bar. A forensic agent that emails the SQL. Capability is the easy half; trust is the product.

Ambivalent about the surface.

I have helped teams build surfaces that are not screens: MCP servers over Druid and Postgres, skills that compose the newsletter or schedule the send, a companion that takes a sentence and refuses the wrong one, an agent that deploys from my phone. They are surpassing the interim UI patterns of the last decade.

The experience is moving out of the interface and into the definitions, and a designer's judgment has to move with it: what the agent may do, where a person must decide, and what must never regress.

Start with the people who have to decide.

On Personnel the deciders were a PM team choosing between dozens of workflow permutations. At Apple it was the senior leadership team reading charts every week in a medium that forgives nothing. I find out who decides, what they are deciding, and when it becomes expensive to change, before I open an editor. And I research the team the way I research the customer: their office hours, their channel, what they are measured on.

Ask the questions.

  1. What purpose does this serve?
  2. How is it better than what exists, and than the alternatives we looked at?
  3. What does it let people do that they could not do otherwise?
  4. How will we prove it worked?
  5. Who have we left out?
  6. What does it cost, in money and in time?
  7. Who will have to learn it, train on it, manage it and maintain it?
  8. Does it still hold up at scale?

Prototype in the medium it will ship in.

Not a picture of the product: a signed-in preview on real data shapes, with simulated events, so the PM can click through the workflow and the engineer can read the code. On Personnel the previews were TypeScript and React behind our own gateway, and engineers took the TSX and CSS as the blueprint.

Let the room argue with the thing.

I live-coded previews over Teams during the pandemic, and PMs changed decisions in the meeting instead of a sprint later. At Apple, bringing the existing charts in one to one is what made leaving Tableau feel safe. The argument is with the artifact, not with each other, and it is had once.

Write the judgment down.

A rule either has a check that measures it, or it is marked judgment. The playbook holds 118 rules with checks and 46 marked judgment. Its gate refused my own restyle four hundred times, because the mockup's 38px buttons would have lowered the kit's 44px touch floor. A skin may carry the language. It may not lower an accessibility rule. Four hundred refusals is a trade-off I chose: speed, for a floor that never moves.

Hand off a thing, not a recommendation.

Every state in the preview is a story in Azure DevOps, linked both ways: 85 stories from one data twin. Engineering receives states, rules and tokens instead of a link to a picture. A researcher with a brief gets a walkable, accessible preview in an afternoon, and the recommendation survives contact with the backlog.

Leave the route marked.

PeopleCard went into the shared core with its documentation. The Azure accessibility fixes went in with a wiki the next engineer could follow, and Robert Taft wrote to everyone involved. SuperComposer runs on forty-plus teams with owner and member roles, every team its own room and no mandate. The standard holds without me in the room.

What I am here to do today

Help a research-led studio ship what it learns: a walkable, accessible prototype built from the research in an afternoon, instead of a recommendation. Design for the person delivering the experience too. And grow the next people who do it.

Help a research-led studio ship what it learns. Research recommendations die between the readout and the roadmap, not because anyone disagrees with them, but because by the time there is capacity the recommendation is a slide and the context is gone. A walkable, accessible prototype in the medium it will ship in, built from the research in an afternoon, is how a recommendation survives contact with a backlog. And the people delivering the experience get the tools too, not only the people receiving it.

Lead design engineering in an AI-native world: the design language is data, the judgment is held in tests, and agents get adopted because they are contained, not because they are capable. And grow the next people who do it. I have sat in the PM chair, the designer's chair, the engineer's chair and the security review, so I can translate between them, and I can teach the translation.

Off the clock

I take calculated risks. Alpine routes, planned the way I plan a build: objectives, partners, systems for mechanical advantage, and an eye on the weather.

I run and swim, and the data lives on Strava, because I like receipts there too.

Have mercy on the dishwasher. Paella, pastelón and arepas, for as many people as the table holds.

Side projects: vehicle modifications, home improvements, life hacks, and I can still get down at the roller rink.

The through-line

I keep rising to the occasion, trying the difficult thing, and learning whatever technology it takes. The occasion now is other people: the researchers, designers and engineers who will build the next generation of this, better than I did. I am here to make sure they can.