A progression of interests

Most of my work has centered on backend systems, infrastructure, integrations, and the tools developers use to work with them.

Over time, those interests have taken different forms: small JavaScript and .NET libraries, build systems, Electron IPC, connected devices, Node-RED integrations, and later infrastructure and developer tooling in Go. Each project explored a different part of the same question: how to make complex systems easier to understand and work with.

Ferret brings many of those interests together. It is a declarative language and runtime for data automation that combines language design, embedding, extensibility, browser automation, and developer experience into a single system.

Working style

I enjoy building tools that reduce friction without obscuring how they work. Good abstractions should make a system easier to understand, not harder. They should expose ownership and failure clearly, leave room for escape hatches when needed, and remain small enough to reason about.

That perspective appears throughout this workshop. Some projects are small utilities that solve a single problem. Others are integrations, libraries, or larger systems that evolved over years. The scale changes, but the goal remains the same: practical software with interfaces that are predictable, composable, and pleasant to use.

Everything here is open source. Current projects continue to evolve, while the archive preserves earlier chapters of the work.

If something is useful—or sparks an idea—explore the projects on GitHub, learn more about Ferret, or take a look at my résumé.