Building a Content Generation Pipeline in OpenClaw
A self-improving editorial system where packets, skills, subagents, review artifacts, and an operator loop preserve feedback instead of losing it in chat scrollback.
Read the project update →I build ML systems at Meta and spend the rest of my time with a camera or at a nail desk. This is where I keep the work that doesn't fit in a LinkedIn profile.
I've been exploring Bay Area wildlife with a camera. These are picks from a growing field archive, each one a species I wanted to get right.
View full album →
I design nail sets the way I'd approach any creative problem. Start with a constraint, build a palette, and refine until every detail earns its place.
I write about the parts of applied ML that aren't about models. Usually it's the interface, the ops, or the part where someone pastes a screenshot of JSON into a chat box.
A self-improving editorial system where packets, skills, subagents, review artifacts, and an operator loop preserve feedback instead of losing it in chat scrollback.
Read the project update →
Take a customer feedback classifier. The model is usually the easy part. The hard part is the Excel paste, the Slack thread, and the screenshot of JSON. This essay compares that workflow built as a traditional Python pipeline and as a Claude Code pipeline, and shows where the real engineering tax lives.
Read the essay →
I'm Travis, a machine learning engineer at Meta based in the Bay Area. My day job is building systems that work at scale. Everything else on this site is what I do because I can't stop making things.
If any of this resonates, or if you're building something interesting, I'd love to hear from you.