Skip to content
Two demos running right now, both open to anyone

I build the tooling agents run on, and I fix what they break.

Principal software engineer, fifteen years. Custom MCP servers and agent workflows, audits and repairs of AI-generated codebases, and ASP.NET Core backends with the tests and CI that keep them alive after I hand them over.

Working in .NET Angular PostgreSQL TypeScript Python Go Godot 4
Selected work

Everything here is public, and two of them are running.

No case studies you have to take on trust. Clone any of it, log into the service desk with the credentials printed on its sign-in page, or just play the card game.

Live / .NET 10 / PostgreSQL 17 / Angular 22

RequestDesk

A service request tracker built end to end. A status state machine that refuses illegal moves, an append-only history the application itself cannot rewrite, three roles with genuinely different permissions, and a reporting query that drops to raw SQL where an ORM would embarrass itself.

335
Tests passing
5
Test tiers
7
Status states
requestdesk.eric-patton.dev
The RequestDesk request list, showing reference numbers, status chips and filters
Live / Angular 21 / .NET 10 / SignalR

Office Arena TCG

A 1v1 collectible card game where the cards are the people and events of a software company: Interns, Scrum Masters, Crunch Time, The Blocker. Play the AI, or a colleague over real-time multiplayer. Built as a team-building game and designed to be rebranded, so Office Arena becomes Acme Arena by changing a logo and a string.

67
Cards
8
Roles
194
Tests
office-arena.eric-patton.dev
An Office Arena match in progress, showing both heroes, a hand of cards and a card's keyword detail
15+
Years of experience
200,000+
People on one platform
33
Codebases shipped
9
Languages in production
What I do

Four kinds of work.

01

Codebase rescue

Apps spun up by AI coding tools, and projects inherited from a developer who left. You get written findings first: what is broken, what is dangerous, and what it costs to fix. You can stop there and take that document to somebody else.

02

Agent tooling and MCP

Custom MCP servers over your database, API or codebase, plus the skills, hooks and workflows your team runs them with. Tested like production code, because that is exactly what it is.

03

Game systems

Save, inventory, dialogue and combat systems for Godot 4, plus shader and effects work. Reusable subsystems with demo scenes and documentation, not scripts welded into your prototype.

04

.NET and Angular

An API over PostgreSQL with a front end that actually uses it: clean architecture, migrations, authentication and roles, an OpenAPI document, container builds and CI from day one.

How I work

Three habits, and why each one exists.

01

Findings before changes

On a rescue job the written assessment comes first: what is broken, what is dangerous, what it costs. You can stop there and take that document to somebody else. Nobody should authorise a repair they have not seen described.

02

Tests against the real thing

Integration tests run against a real PostgreSQL in a container, not an in-memory substitute that quietly accepts SQL the real database would reject. It is slower, and it is the only version that means anything.

03

It has to run without me

Container builds, migrations, seeded data and CI, so the project starts with one command on somebody else's machine. Both demos above are one command. A handover that depends on my laptop is not a handover.

Free / 150 hours / Ages 9 and up

From Scratch

A programming curriculum for kids and teens that I wrote and taught: Scratch, Python, desktop apps, 2D games and web development. Each session is a handout, and the handouts compile into one searchable textbook.

It is on this page because it is the clearest evidence of the part of the job that is not typing: explaining a system to somebody who does not yet have the words for it. Which is most of what a handover document is.

eric-patton.github.io/from-scratch
The From Scratch textbook, showing the introduction chapter and its table of contents