Mike Garite

Writing

Notes from the work.

Leading teams, shipping products, and building with AI. Written plainly, for people doing the same.
  1. Product

    Streaming solved access and broke almost everything else: discovery, ownership, and how artists get paid. My opinions, from someone who spent years designing and building listening experiences at Pandora and now works on royalty data.

    Music · Product7 min read

  2. Product

    The open web is splitting into gated pockets: robots.txt walls, login walls, paid APIs and private licensing deals. What the data shows, where it complicates the story, and what builders and readers should do about it.

    Open web · AI · Data · Business8 min read

  3. Engineering

    Codebases don't stay sprawling forever. Given enough years, they converge or they die. What one product's repos taught me about monorepos, deleting more than you add, and why the best month of a codebase can be the month it gets smaller.

    Architecture · Codebases · TypeScript · Leadership7 min read

  4. Leadership

    When growth becomes the goal rather than the result, companies start consuming the things that made them worth growing: their products, their customers' trust, and their people. How that shows up inside product and engineering orgs, and the small, practical ways builders can push back.

    Leadership · Product · Business7 min read

  5. Leadership

    Around 2012 and 2013, knowing how to operate the tools stopped being enough to hold a job on the web. You had to be able to build. The AI shift feels like that again, only faster. What I saw then, what's different now, and what I'd do about it.

    Careers · AI · Front-end · Leadership6 min read

  6. Product

    A song can be streamed in dozens of countries and still pay its writer almost nothing, not because nobody owes them, but because the money can't find them. A follow-up to my music post, on metadata, registrations and why global catalogues leak royalties.

    Music · Data · Product5 min read

  7. Product

    Building software keeps getting cheaper. What stays scarce is a clean, modular data model and an existing web of customers, partners and channels that will carry the product. Why I think that pairing is the nucleus of most winning formulas, and what the research says.

    Architecture · Data · Business · Product9 min read

  8. Engineering

    Most malicious package releases are caught within hours. A one-day waiting period before installing anything new costs almost nothing and sidesteps a whole class of supply-chain attacks. Here's how I set it up, and where the exceptions go.

    Security · Infrastructure · Next.js6 min read

  9. Delivery

    A setup guide with twenty steps is a list of ways to fail. I've started treating 'clone, run one command, see the app' as a feature of every codebase. Here's what goes into that command, and the design choices that make it possible.

    Delivery · Infrastructure · Codebases6 min read

  10. Engineering

    Two rules sit at the center of a governance runtime I've been building: when in doubt, the answer is no, and the record is written before anything happens. Here's what they mean in practice, and why they matter more as agents start taking real actions.

    Architecture · Security · Agents7 min read

  11. Leadership

    A decision log tells you what was chosen. A decision dossier tells you why, what was rejected and what it costs. Here's the format I use, and the bug it found that every other document had missed.

    Product · Architecture · Leadership6 min read

  12. Product

    Why I still build products against a one-day clock, and the habits that make it work: cutting scope hard, using the same stack every time, letting agents do the heavy lifting, leaning on a design system, and agreeing on what 'done' means before I start.

    Product · Prototyping · Agents · Design systems8 min read

  13. Engineering

    In my agent rig, prompts, routes, skills and even fine-tuned models all start in shadow. Promotion is a separate, evidence-backed step that a person takes. Here's the lifecycle, and why it matters more as the number of moving parts grows.

    Agents · AI · Local LLMs · Delivery6 min read

  14. Projects

    For months I've been quietly building a pipeline that takes raw HL7 v2 messages and C-CDA documents, repairs them, maps their codes to standard vocabularies, and turns them into FHIR and OMOP. Why healthcare interop data is so messy, and the approach that's working.

    Healthcare · Interoperability · Data · AI8 min read

  15. Projects

    I rebuilt mg.design as an interactive terminal. You type commands, it answers. Here's why a hard constraint like "it's a terminal" made the design easier, not harder, and what it takes to make a fake shell feel real in the browser.

    Front-end · Next.js · Prototyping5 min read

  16. Engineering

    A rock tumbler doesn't make a stone smooth in one pass. It uses coarse grit, then finer grit, then polish, and checks between stages. That's how I build agent loops in Starship: bounded retries, deterministic gates, and lessons that are only allowed to hurt once.

    Agents · AI · Architecture · Delivery7 min read

  17. Engineering

    Starship runs its coding and planning agents on a small fleet of Apple Silicon Macs I own. Here is when local models beat the cloud, what it cost me in operational lessons, and where I still reach for a hosted model.

    AI · Agents · Architecture · Local LLMs6 min read

  18. Engineering

    How Starship's coding agents go from a planned task to a merged pull request without a human driving each step, and the gates, retries and postmortems that make that safe to leave running.

    AI · Agents · Architecture · Delivery6 min read

  19. Engineering

    A coding agent is only as good as what it's handed. Here is how Starship curates its skill library, enforces standards, and keeps the context it feeds models grounded and current, including where that loop was still open.

    AI · Agents · Architecture · Local LLMs6 min read

  20. Engineering

    My healthcare pipeline's ingestion runs on a two-minute heartbeat, a claim-and-enqueue sweep and a stateless worker. It's less clever than a job framework, and that's why I trust it.

    Architecture · Infrastructure · Data6 min read

  21. Engineering

    I spent a lot of time tuning a pipeline worker before doing five minutes of arithmetic. The real throughput ceiling wasn't in the code. It was a regional CPU quota. Here's what I'd do first next time.

    Infrastructure · Data · Architecture6 min read

  22. Engineering

    Performance work on a data pipeline is only safe if it can't change the answers. Here's how golden files and output-equivalence gates let me speed up a clinical pipeline without moving a single score.

    Data · Architecture · Delivery · Healthcare6 min read

  23. Design

    For the Midwest site I wanted something dark, quiet and credible. The whole visual system fits in ten colour tokens and a short list of rules. Here's why a small palette and a few hard rules beat a big design system for a brand like this.

    Design systems · Front-end5 min read

  24. Engineering

    ZoomProp's property data stack went from a scheduler on a single server, to a pile of scripts, to software-defined assets with a shared data model. Looking back across four years of repos, here's what changed, what stayed the same and what I'd do first next time.

    Data · Architecture · Codebases6 min read

  25. Engineering

    In the healthcare platform I'm building, patient data lives in its own database and nothing else does. That one rule shapes auth, sync, queries and how I think about risk.

    Healthcare · Architecture · Security · Data6 min read

  26. Engineering

    The clinical data pipeline I've been building shows records to four very different kinds of user. Instead of four tables, there's one pattern: server-side pagination, state in the URL and a single scoping rule applied on the server. Here's how it fits together.

    React · State management · Healthcare · Front-end5 min read

  27. Engineering

    Parsing clinical documents is the easy half. The hard half is working out what every code inside them actually means. Here's how one bad crosswalk dragged my lab mapping down to about 20%, and what fixed it.

    Healthcare · Interoperability · Data7 min read

  28. Engineering

    Public records live on thousands of county and city websites, each built differently. Writing a scraper for every one by hand doesn't scale. So I built a tool that visits a site, works out how its search actually behaves, scores whether it's worth automating, and has a model draft the parser. Here's how it's put together and where the model stops.

    AI · Data · Architecture6 min read

  29. Design

    Moving a React app from MUI to shadcn-style primitives sounds like a rewrite. It doesn't have to be. Here's the approach I set up: codemods for the boring parts, a thin layer of your own components, and a migration that ships one screen at a time.

    Design systems · React · Front-end5 min read

  30. Engineering

    Let the route's params pick the data, the state path and the form. In a form-heavy CMS or admin tool, a new screen becomes one route plus one field array, with no new endpoint and no new form code.

    Forms · State management · Architecture · Front-end3 min read

  31. Design

    For five years my job titles had both halves in them: Interaction Designer/Developer at Pandora, then Design Engineer at eBay. Here's what changes when the person who designs an interaction is also the person who builds it, and why I think the role matters more than its title suggests.

    Design systems · Front-end · Careers7 min read