Twenty-seven years of building software — and learning
what makes it last.
I wrote my first production code in 1999, for an ad agency that
wanted to push the boundaries of what the web could do. I've
been a senior engineer for seventeen of the twenty-seven years
since. I've shipped games, dynamic websites, content management
tools, reporting systems, hybrid mobile apps, serverless
platforms, and most recently, AI-driven systems. Each generation
of languages & technology arrived promising to make the previous
one obsolete, and each one quietly turned into infrastructure
the next generation built upon. In my time I've watched
paradigms come and go — and I've helped the systems that
had to survive each transition.
For most of the past seventeen years, I've done that work at a
single company that was built around a website I developed as a
contractor with the marketing agency
Wheelhouse Strategy
— a site that produced a roughly sevenfold business surge
for their client in the month after launch, prompting the site
owner to launch a company around the model. The work that began
as a single site became the company; the company became the
platform; the platform produced Sherloq, an
AI-driven serverless analytics app on AWS that earned IBM
Partner status and was featured as an
IBM case study. Along the way I helped integrate several different production
AI services — IBM Watson NLU, IBM AutoAI, the Claude API,
and contributed to a Vapi voice AI for after-hours call intake
— and acquired the discernment to know when to retire an
AI service that has stopped earning its place.
I've also learned, across many years, that a meaningful share of
senior technical work isn't technical — it's noticing the
structural friction a team has been working around, and solving
those bottlenecks. The product specs that didn't exist. The
handoff plan between departments. The meeting notes nobody was
taking. The technical voice in client meetings, translating
engineering decisions clearly, without condescension.
My job is to tell you what I'd do, and why. If I think a
direction is going to cause real harm, I'll say that clearly,
once, in writing. After that, my job is to help you execute the
path you've chosen as well as it can be executed — not to
keep relitigating the decision.
Before all of this, I studied the arts — music, film,
photography, and martial arts. It may seem unrelated, but it
turned out to be the part of my training that taught me to pay
attention and listen, to communicate effectively, and to prefer
elegant solutions over elaborate ones.
I work from a geodesic dome in a forest, on a mountain, in
western Massachusetts. It's an expansive, creative, and quiet
space. It turns out, that makes a difference.
AWS / Serverless
Node.js / TypeScript
React / Angular / Nest.js
LLM Integration
ML model training
DynamoDB / PostgreSQL / MySQL
DevOps
Technical documentation