Etcetera
The projects featured elsewhere on this site are the ones that tell you what I do now. But they’re not the whole picture. Here’s a broader look at the work that fills the space around them and what brought me to this point in my career.
Tools I built and shared
A recurring pattern in my career is that I build something to solve a problem for myself or a client, and it turns out other people have the same problem.
Craft Link List started as a Google Doc where I shared interesting Craft CMS links with a handful of developers. The feedback was positive enough that I turned it into a newsletter — published twice a month to over 2,000 subscribers, with sponsorship for its entire five-year run. When I was ready to move on, the Craft CMS team adopted it as their official newsletter. Not a bad outcome for a shared Google Doc.
Pic Puller began as a component of a site I made for Burger King. The component pulled their Instagram feed as part of the homepage. The project launched, the head chef, who was the face of the site, left the company two weeks later, and the site went offline. I took the bones of that project and re-engineered it into a commercial Craft CMS plugin. Pic Puller was used on hundreds of sites, and I sold it for eight years before retiring it when the Instagram API changed dramatically, removing much of the functionality that powered the plugin.
Build a Banner emerged from a recurring problem. My business partner Jon Magner and I produced thousands of animated banner ads at JMX2, and setting up each project involved the same repetitive boilerplate.
To streamline that process, I built Build a Banner—a Yeoman-based workflow that scaffolds a complete starter project in seconds. A single command prompts for the project name, banner size, and ad platform, then initializes a local development server with everything needed to begin animating. Once complete, another command packages the finished banners for delivery. The tool is available on npm and Docker Hub.
Progressive Share Button is a web component that wraps the Web Share API and displays device-appropriate share icons for iOS, Android, and Windows. A share button seems like an element that would be a native part of HTML — it isn’t, so I built one and put it on NPM.
Before all of this
Before I was a developer, I was an art director. I spent years at agencies — Ammirati & Puris, DDB, Bozell, Dentsu, and others — making ads for brands like Compaq, Nikon, and Degree. It was a good career, and it gave me a foundation in visual thinking, storytelling, and working with clients that I still use every day.
My last big advertising project before making the jump to tech was for Compaq Computers. My writing partner, Liz Rosenthal, and I were the creative team that sold a series of TV spots featuring Sting as the spokesperson. The professional in me would like to tell you the primary benefit I gained from the experience was a fuller understanding of the branding process. The fanboy in me can confirm the primary benefit was going on tour with Sting for three weeks.
Earlier Compaq work, with my writing partner Dan Glassman, captured a moment that turned out to be historically significant — ads about the shift from being tethered to a desktop to taking your work anywhere. (This way quite a while back!) The first ad in that series was selected for an exhibit at SFMOMA about that exact societal change. Those ads were also the first pieces of art commissioned by the agency to be created entirely on a computer.
I eventually swapped the ad career for one in tech, but the creative instincts carried over. I still think about audience, clarity, and whether something actually communicates what it’s supposed to — whether I’m designing a UI or writing the homepage copy for a client.
Let’s talk
That’s my story. If you have a project in mind, or a site that needs someone to keep it running well, I’d like to hear about it. Get in touch.