American Bestiary
View project (opens in new tab)American Bestiary is an illustrated field guide to fifty cryptids, one per state, kept as a naturalist's folio. Each legend is recorded with a straight face, then glossed with what the evidence says.
I build modern web applications end to end, handling the architecture, the interface, and the documentation that keeps them maintainable. I’ve been doing this since 2010, in bio-science, health, energy, and fintech.
Focused looks at real problems I’ve worked on, the constraints involved, and the decisions made along the way.
Built, shipped, and maintained on my own time, outside any client work. Each card links straight to the live project.
American Bestiary is an illustrated field guide to fifty cryptids, one per state, kept as a naturalist's folio. Each legend is recorded with a straight face, then glossed with what the evidence says.
Fogline is a text platform where posts decay in real time, drifting through fog zones until they vanish. Fog events reshape visibility on independent timers, with no likes, dates, or engagement sorting.
My goal is to understand the real problem, work within existing constraints, and deliver solutions that are reliable, maintainable, and understandable.
Demonstrations of platform features I’m using now. When a browser lacks support, the exhibit shows its fallback instead.
The mirror is three native popovers, one nested inside the next. Escape closes one level at a time, and an outside click collapses the whole chain, without any overlay code.
Each tile’s label is colored by contrast-color(), which returns black or white against the tile behind it. The browser handles the contrast math without any values in the stylesheet.
Shuffling the tiles is a single DOM update wrapped in a view transition. The browser animates each tile to its new position without any animation code written for the move.
The ramp is one hue at five lightness steps, rebuilt live as the hue moves. Because OKLCH lightness is perceptual, the steps stay even at any hue the slider lands on.
Using native browser animation primitives to create smooth, coordinated motion without relying on external libraries. Each wave layer runs two looping animations created with element.animate.
I’m self-taught, started coding early in the web’s evolution, and have stayed close to the tools and patterns shaping how people build for the browser today. Agencies came first, then startups and product teams, with work across advertising, bio-science, risk analytics, clean energy, and fintech.
Over the years, I’ve designed and built everything from marketing sites and design systems to full application architectures. Most of my work lives at the intersection of design decisions and technical choices, ensuring what ships looks intentional and holds up under real-world use.
I’m open to full-time roles, contract engagements, and consulting. Contract work is scoped and remote from Portland, and I reply within two working days.