I've spent most of my working life as an independent software engineer. I started
consulting professionally at sixteen, kept doing it through college, and built a career
around long client relationships. The longest chapter was Loomly: a client project that
became nine years of helping build a SaaS company from its earliest version through two
acquisitions.
1994–2004
Getting started
My parents brought home a 486 when I was eight, and I spent the next few years taking
computers apart, building machines for friends, and poking at Linux. Around age
thirteen I picked up a book on Perl and started programming; one of my first real
projects was an online catalog for
my dad's historic-newspaper business,
a single Perl script backed by a CSV file. From there I worked my way into PHP and
MySQL, and at sixteen I
met my first paying client on the WebHostingTalk forums.
Through high school I built web applications for paying clients and learned how to
ship software that people depended on.
2004–2008
College and Rails
I studied Information Technology and Economics at RIT in Rochester, New York, though
most of my engineering skills were self-taught, mostly from books. I found Ruby on
Rails after years of writing PHP without much framework help, and it became the
technical center of my work. Rochester's small Ruby community kept me in part-time
consulting work through school.
2008–2016
Consulting
After graduating I committed to consulting full time. A year later I moved to San
Diego, got involved with SDRuby, and found steady work through the local Ruby scene. I
usually had several clients at once, many for years at a time. Along the way I
spent a year without a fixed home base, working from wherever I
happened to be.
2016–2025
Loomly
In January 2016 I got paired with a first-time founder at a local Ruby workshop night.
He had an idea and a spreadsheet for managing social media posts. I took him on as a
client, and that small engagement became the next nine years of my career.
That spreadsheet grew into
Loomly,
a social media management platform and a profitable company of twenty-five-plus people,
acquired in 2021 and again in 2025. As founding engineer I stayed with it from early
product work through years of Rails and infrastructure upgrades, scaling problems, team
growth, and the handoff after the second acquisition. It was the longest and deepest
work of my career, and I'm proud of the product and the team we built.
2025 → now
Sabbatical
After the 2025 acquisition I left to take an
extended learning sabbatical. I planned it as an 18-month
break from normal client work: time to relearn linear algebra and calculus, work up
through machine learning, deep learning, and AI engineering, and build things as I
went. It also left room for
Mandarin study
and jazz piano.
Engagements
Client engagements since 2002
2002 2006 2010 2014 2018 2022 2026
DigitalPeach 2002–2008, 6 yrs
Excellus BCBS 2006–2007, 1 yr
Rare Newspapers 2010–now, ongoing
CSDVRS / ZVRS 2010–2018, 8 yrs
CatPrint 2010–2016, 6 yrs
Strategy One / PluggedIN 2010–2020, 11 yrs
MetrixMatrix 2010–2011, 1 yrs
Notch8 2011–2014, 4 yrs
ZURB 2011–2016, 5 yrs
FocusGroupIt 2013–2021, 7 yrs
HiDine 2014–2015, 1 yrs
Graffletopia 2014–2018, 4 yrs
Silvernest 2015–2018, 3 yrs
Loomly 2016–2025, 9 yrs
Sabbatical 2025–now, ongoing
Recent projects
MandarinForge
A Mandarin-learning platform I built from scratch and run myself: around 100k lines of TypeScript, with background job processing, text-to-speech generation, LLM integration, and payments. I built it primarily for my own HSK 3 study and still use it daily.
A rebuild of my longest-running client's Rails application (powering their entire business) onto Rails 8 and modern terraformed infrastructure, plus a full redesign of the storefront. Done largely pro bono, partly as a way to explore the current generation of coding agents.
A text-to-image generator for a stuffed-penguin character, fine-tuning the FLUX.1-dev diffusion model with DreamBooth and LoRA. Runs locally or on A100s via Modal.