Etcetera
The projects featured elsewhere on this site are the ones with the best stories to tell. But they’re not the whole picture. Here’s a broader look at the work that fills the space around them.
Tools I built and shared
A recurring pattern in my career: 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 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 Burger King project — a server-side app that pulled their Instagram feed into a custom Tumblr theme I’d built. The project launched, the head chef who was the face of it 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. The code still lives in its GitHub archive.
Build a Banner was born from repetition. My business partner Jon Magner and I made thousands of animated banner ads over the years at JMX2, and the setup for each one was tedious. Build a Banner is a Yeoman workflow that generates a starter project — asks for the project name, banner size, and ad platform, spins up a local server, and packages the finished banners for delivery. I published it 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. If the API isn’t supported, it removes itself from the page. A share button really should be a native part of HTML — it isn’t, so I built one and put it on NPM.
Procore — Brand Standards Site
I built the brand guideline site for Procore, working closely with their design and creative team to document their standards with precision. The site was built using a custom static site generator I created, optimized for fast rendering with critical CSS per page. A brand guide that doesn’t follow its own guidelines isn’t much of a guide — this one did.
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. 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 a README.
Let’s talk
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.