Skip to content
Mark Garrigan

I own it end to end, then I run it.

I'm Mark Garrigan, a full-stack engineer. I take products from the first idea to production, and I keep running them after launch.

Most of my work starts with a problem I'm close to. Bibsee exists because my own race needed timing that works without a signal, and nurun-admin because race week lived in spreadsheets. Luna Coffee, a roaster I've worked with since the early 2000s, needed its whole business online; its platform is on its fourth version now. boxx came from wanting to host my own apps on one box.

Until early 2026 I hand-coded everything, and I was meticulous about it. Since then I've worked agentically: thorough planning sessions up front, guiding AI coding agents through the implementation, then reviewing and auditing the work before it ships. The plans, the architecture, the decisions and the review are mine, and so is responsibility for what runs.

I like small, legible systems: one server, one database, plain HTML where it works, and a terminal UI when it helps.

How I work

  1. ▸ Idea

    Work out the problem with the people who have it, before writing code.

  2. ▸ Architecture

    Choose the fewest parts that will hold up.

  3. ▸ Build

    Interface, API, data and infrastructure. Since early 2026, AI coding agents implement against my plans while I guide the work; before that, I hand-coded all of it.

  4. ▸ Review

    Review and audit everything before it ships: the code, the tests and the decisions behind them.

  5. ▸ Launch

    Ship it as a Docker image onto infrastructure I set up and understand.

  6. ▸ Run

    Keep it running after launch: fixes, updates and the next version.

This site

Made with
Static HTML, Tailwind 4, a little vanilla JavaScript
Type
Nerd Fonts: SauceCodePro, JetBrains Mono or Noto Sans Mono; BigBlueTerm in the Borland theme
Colour
Catppuccin Latte, Frappé, Macchiato and Mocha, plus Borland
Ships as
A Docker image, to be deployed with boxx