Skip to main content

Hayden Westbrook

Senior Software Engineer

Eleven years building web applications, with a focus on React and TypeScript.

Featured Projects

writing-studio

writing-studio

A git-backed writing environment for fiction: a CLI, a self-hosted server and a browser IDE that treat scenes as plain markdown and record who wrote every character.

Node.jsFastifyCodeMirrorVitestPlaywrightGitMCP
agentic-kit

agentic-kit

A Claude Code plugin marketplace of four small plugins (core, writing, dnd, coding) that stay inert outside the projects they are meant for.

Claude Code pluginsTypeScriptHooksSubagentsMarkdown skills
secrets (agentic-secrets)

secrets (agentic-secrets)

A zero-dependency Node CLI that lets an AI coding agent move, generate, compare and check secrets without the value ever being printed or entering its context.

Node.jsESMsshmacOS Keychainnode:test
fim2

fim2

A self-hosted, AI-augmented virtual tabletop for D&D 5e: a Next.js and Socket.io app per campaign, provisioned by a NestJS control plane.

Next.js 14TypeScriptSocket.ioPrismaPostgreSQLNextAuthNestJSDockerNginx
Foundry Instance Manager

Foundry Instance Manager

A Python CLI that runs multiple Foundry VTT instances as Docker containers with isolated data directories and a shared one.

PythonClickDocker SDKPoetrypytestGitHub Actions
kindle-sync

kindle-sync

A Python pipeline that watches an Obsidian vault, converts markdown to Kindle-friendly PDFs and emails them to a Kindle Scribe, with OCR to bring annotated PDFs back.

PythonwatchdogReportLabpytesseractSQLAlchemyDockerpytest

About

I’m a senior software engineer with eleven years of web development experience, most of it on the frontend. React and TypeScript are where I’m strongest, and I work comfortably across the stack when a feature needs it.

The projects below are mostly tools I built for my own use: a Foundry VTT asset manager, a command-line writing studio, and a Kindle-to-Obsidian sync service. They show how I work when I own the whole thing: schema, API, UI, tests, deployment.

Frontend: React, Next.js, TypeScript, Tailwind CSS, Astro, Vite

Backend and data: Node.js (Express, NestJS), Prisma, Zod, Go, Python

Testing and delivery: Vitest, Jest, Testing Library, Playwright, Docker, nginx

Outside of work I run tabletop D&D campaigns, which is where a lot of my tooling comes from, and I write fiction.

Contact Information

Location

Eugene, OR