Selected work · 2012 — present

Projects

Things I've built — open-source tools, work systems, and experiments. Each page is a spec sheet plus the story.

1<div class="container">
2 <h1>Welcome!</h1>
3 <p>This is a sample<p>
4 <div>Nested content
5 <span>More text</div>
6 </span>
7 <img src="photo.jpg">
8</div>
Unclosed paragraph tagLine 3
Mismatched closing tagsLine 5
<img> is missing an alt attributeLine 7

HTML Linter

2024–present
Active

A Rust CLI and library that lints HTML against JSON-defined rules, published to crates.io.

Flow Like Water

2023
Dormant

A TypeScript library that turns brittle multi-step scripts into resumable state machines with retries and serializable state.

Subway

2012–2014
Archived

A web IRC client with server-side sessions, plugin hooks, and history that survives disconnects and machine switches.

Index

YearsNameDescriptionStackStatusSource
2024–presentHTML LinterA Rust CLI and library that lints HTML against JSON-defined rules, published to crates.io.Rust · HTML · JSONActivesource ↗
2023Flow Like WaterA TypeScript library that turns brittle multi-step scripts into resumable state machines with retries and serializable state.TypeScript · Node.js · JestDormantsource ↗
2018Console AnalyticsA lightweight frontend telemetry tracker built for the AWS Management Console.TypeScript · JavaScript · MutationObserver · PerformanceObserverInternal
2012–2014SubwayA web IRC client with server-side sessions, plugin hooks, and history that survives disconnects and machine switches.Node.js · Socket.io · Backbone.js · jQuery · Underscore.jsArchivedsource ↗

Every page lists its artifacts — repositories, packages, and the things that prompted the work.