The TL;DR version: I like coffee. I don’t like celery. I live in New York City with my wife and a dog called Omelette. I also know how to spell “onomatopoeia” (and I know what it means).
Ever since I first got a peek at the web back in 1994, I’ve been borderline obsessed with building things online, and I’ve spent my whole career (18+ years now!) in the digital space. I currently do product and strategy stuff at Critical Mass, where I help our clients solve problems by building products and services that people love to use. Those details are all on LinkedIn, so I won’t repeat them here. When I’m not at work, I (try to) spend a decent chunk of my time running.
(And just in case you were wondering, “onomatopoeia” is defined as a word that suggests the sound it describes, like “boom” or “splat”.)
About this Site
I have had a long and weird fascination with content management… not really sure why. My first attempt at building my own CMS was
customizing horribly mangling a version of a message board coded in ASP, way back in 2001 (and which is now thankfully lost in the ether). Since then, I’ve played around with a bunch of different publishing platforms at various times, like Greymatter, Movable Type, Chyrp, WordPress, Jekyll and Ghost. But I always had more fun rolling my own, even if it meant foregoing some of the shinier features.
I’ve owned this domain since 2004, and it has seen quite a few iterations in the last 17-odd years. This build of campegg.com (which is up to version I-don’t-know-what +1) is put together using:
- Django as the base framework, with some other Python scripts running jobs in the background
- MySQL for storage
- DigitalOcean for hosting
Fathom for analytics, because it’s lightweight and respects peoples’ privacyAs of August 2020, I have removed analytics entirely—I really just don’t care
- GitHub for source control (the repo is private—and a complete shitshow—at the moment)
- Gulp to automate some build stuff
- The Inter font family
- Postman to help me mess with APIs
…and lots of duct tape and wishful thinking to hold everything together.
I’m using this particular iteration as a bit of a learning experience; all of the content is stored locally, but quite a lot of it is pulled from the APIs of various services I use (so I’ve had to learn all about OAuth and rate limiting and caching and all the other fun stuff that goes with working with external services). At the moment, I’m pulling:
- Activity data from Strava
- Articles that I want to share from Pocket
- My tweets from Twitter (but I’m not doing anything other than storing them at this stage)
There are a ton of things on my site to-do list, which I may get around to doing one day. Or not.