Sign in

Zack Proser

@zackproser.bsky.social
556 followers 3.4K following 421 posts

zackproser.com Applied AI @ WorkOS #buildinginpublic AuDHD 👨‍💻 full-stack open-source hacker ✍️ technical writer 🎨 visual artist Previously: Pinecone, Gruntwork.io, Cloudflare, Proofpoint, BrightContext

PostsRepliesMedia
Zack Proser @zackproser.bsky.social · 03/08/2026
Start by sorting every agent action into three buckets: runs unattended, waits in a queue, never allowed. Do that before writing another prompt. Full essay: zackproser.com/blog/attent...
zackproser.com
Your Attention Is the Bottleneck, Not Your Agents
Agent capacity is cheap now and getting cheaper; my attention is the fixed, scarce resource. Everything I build is attention-budget design: the autonomy…
010
Zack Proser @zackproser.bsky.social · 03/08/2026
My blog bot runs verify-blog-post.sh before it may open a PR: images return 200, links resolve, no LLM tells. An exit code decides whether I spend any attention. Every check I can write is a check I don't run with my eyes.
110
Zack Proser @zackproser.bsky.social · 03/08/2026
The rule: agents do anything reversible on their own. Anything irreversible or outbound stops for a human. A draft in a thread costs zero attention. A merged PR that publishes to my domain gets my thirty seconds, on purpose.
100
Zack Proser @zackproser.bsky.social · 03/08/2026
Agent capacity drops in price every quarter. My attention stays fixed at one human. So everything I build is attention-budget design: the autonomy boundary, the PR gate, Slack as one console.
100
Zack Proser @zackproser.bsky.social · 03/08/2026
People keep asking whether the agents can do the work. Mine do enough of it that the question lost its pull. The useful question is cheaper: can I spin up another me? No. That's the bottleneck.
410
Zack Proser @zackproser.bsky.social · 21/07/2026
I redesigned mine around the second: zackproser.com/blog/hero-g...
zackproser.com
The Hero Glow-Up: My Whole Blog, Burning in Semantic Space
I replaced my portrait-centered homepage hero with the Mind on Fire mark rendered as living pixels, surrounded by every essay I've published as clickable constellations. Here's why, how it works, and the ember easter egg.
030
Zack Proser @zackproser.bsky.social · 21/07/2026
A portrait on your homepage says "here is a guy." I wanted mine to say "here is fifteen years of work — come dig in." Those are two different bets about what a personal site is for. One sells the person. One hands over the proof and trusts it to do the selling.
140
Zack Proser @zackproser.bsky.social · 09/07/2026
The writing is the interface. zackproser.com/blog/hero-g...
zackproser.com
The Hero Glow-Up: My Whole Blog, Burning in Semantic Space
I replaced my portrait-centered homepage hero with the Mind on Fire mark rendered as living pixels, surrounded by every essay I've published as clickable constellations. Here's why, how it works, and the ember easter egg.
020
Zack Proser @zackproser.bsky.social · 09/07/2026
My homepage used to open with a portrait of me. A face tells you nothing about the work. So I burned it down. Now the hero is my consultancy's mark — a mind on fire — rendered as living pixels, surrounded by every essay I've written as a star you can hover and read.
130
Zack Proser @zackproser.bsky.social · 03/07/2026
Here's the part that makes it stronger than one agent: Claude Code is the side channel into Hermes whenever Hermes misbehaves. One agent can SSH in and repair the other. A single mega-agent can't do that to itself. The split-brain architecture, in full: zackproser.com/blog/two-ag...
zackproser.com
One Phone, Two Agents
I run two AI agents — Claude Code for infrastructure, Hermes for content — both controlled from my phone. Here's the split-brain architecture and why separation of concerns matters for AI agents too.
020
Zack Proser @zackproser.bsky.social · 03/07/2026
Claude Code runs on my Mac, driven from the iPhone app's remote control. Real credentials, filesystem access, shell. It does AWS, OpenTofu, secrets, git. Hermes is a Discord bot on EC2. Always on, purpose-built for content. Two brains, two blast radii.
120
Zack Proser @zackproser.bsky.social · 03/07/2026
I run two AI agents from one phone. One handles infrastructure. One handles content. Keeping them separate isn't an accident — it's the whole reason the setup works. Separation of concerns isn't just for code. It's for agents too.
110
Zack Proser @zackproser.bsky.social · 01/07/2026
The full comeback story: zackproser.com/blog/devin-...
zackproser.com
Devin AI Has Come a Long Way
A year ago at WorkOS nobody could get a single Devin AI session working. We abandoned it. Now Devin AI is one of our most-used agents in Slack — shipping PRs, fixing bugs, running data queries. And I'm using Devin AI to write blog posts with pixel art and three.js animations.
000
Zack Proser @zackproser.bsky.social · 01/07/2026
The lesson isn't about one tool. It's that "not ready" has a shelf life — re-evaluate the thing you wrote off a year ago. My own experiment now: I'm using Devin to write blog posts with pixel art and three.js. I handle taste and voice; it handles labor.
100
Zack Proser @zackproser.bsky.social · 01/07/2026
Adoption was organic. "Devin's got a PR up, I'll review after lunch."
100
Zack Proser @zackproser.bsky.social · 01/07/2026
The 2024 trial was bad in specific ways. Sessions hung mid-task. The Slack integration dropped context between messages. Memory like a goldfish. Then it shipped iteration after iteration until it just... worked.
100
Zack Proser @zackproser.bsky.social · 01/07/2026
A year ago my team trialed Devin and nobody could get a single session to finish. We killed it. The verdict was unanimous: not ready. Today it's one of the most-used agents in our Slack. The gap between "impressive demo" and "reliable tool" can close fast.
100
Zack Proser @zackproser.bsky.social · 30/06/2026
The interface matters most: zackproser.com/blog/the-in...
zackproser.com
The Interface Matters Most
You have about ten seconds to wow your user and convince them you're already solving their problem. The model, the stack, the architecture — none of it matters if the door is wrong. Time-to-value is the moat now.
011
Zack Proser @zackproser.bsky.social · 30/06/2026
The difference had nothing to do with prompts or architecture. It removed the one thing that actually mattered: friction at the point of use. If your AI feature asks me to sign up, log in, and read onboarding before I get value — I'm already gone.
100
Zack Proser @zackproser.bsky.social · 30/06/2026
I built the same product twice. 2024: a standalone web app. Separate login, separate URL, separate context switch. It died in silence. 2026: the same idea as a Slack bot. Adopted in a week. Same model class. The only thing that changed was the door.
100
Zack Proser @zackproser.bsky.social · 30/06/2026
You have about ten seconds to convince a user you're already solving their problem. Get the door wrong and it doesn't matter how good your model, stack, or architecture is. Nobody walks through. Time-to-value is the moat now.
110
Zack Proser @zackproser.bsky.social · 29/06/2026
Don’t sleep on this. Arjun is a brilliant engineer.
110
Zack Proser @zackproser.bsky.social · 29/06/2026
The rest is reps, slides that don't lean on you, putting your talks online, and — yes — being honest about medication and mindset. I wrote down the whole pile of crumbs that got me here, for everyone who still freezes up: zackproser.com/blog/everyt...
zackproser.com
Everything I've Learned About Public Speaking
I went from blacking out on stage in front of 4,000 engineers to sleeping fine before jet-lagged days of talks abroad. Here's the whole pile of crumbs that got me there — medication, mindset, slides, reps, and putting your talks online.
010
Zack Proser @zackproser.bsky.social · 29/06/2026
The single biggest thing I learned: don't memorize your talk. A memorized talk fails the instant one word slips, because there's nothing underneath it. Know the milestones and the key point of each section. Know the anecdote. Then let yourself actually talk.
100
Zack Proser @zackproser.bsky.social · 29/06/2026
I once blacked out on stage in front of 4,000 engineers. Now I sleep fine before jet-lagged days of back-to-back talks and workshops in a foreign country. I want you to understand the distance, because I started about as badly as it's possible to start.
110
Zack Proser @zackproser.bsky.social · 26/06/2026
I enforce it in code, not willpower. Here's how: zackproser.com/blog/the-au...
zackproser.com
The Autonomy Boundary
My rule for AI agents: anything reversible runs unattended, anything irreversible or outbound stops for a human. Here is how I drew that one line across three bots and enforced it in code, not willpower.
000
Zack Proser @zackproser.bsky.social · 26/06/2026
The moment an action leaves my four walls and lands in front of another person, it parks at a gate and waits.
100
Zack Proser @zackproser.bsky.social · 26/06/2026
The test: can I cleanly undo it in under a minute, with no effect on anyone but me?
100
Zack Proser @zackproser.bsky.social · 26/06/2026
An agent can do anything reversible on its own. Anything irreversible or outbound stops for a human. That's the whole rule. I've drawn it across all three bots and it has never once felt arbitrary.
200
Zack Proser @zackproser.bsky.social · 26/06/2026
I run three AI agents that act without me in the loop. People keep asking whether agents can do the work. Mine already do. The real question is uglier: what am I willing to let one do while I'm asleep? I have a one-line answer.
110
Zack Proser @zackproser.bsky.social · 25/06/2026
An idea hits while I'm walking around away from my laptop. I drop a line in Slack and the blog bot starts a draft. Full review: zackproser.com/blog/review...
zackproser.com
Reviewing Vercel's eve agent framework by hiring my website three AI employees
I reviewed Vercel's eve agent framework by building a real three-agent business team for my site — content, ops, and growth bots that deploy to Vercel and collaborate over Slack and eve channels. The friction is part of the review.
000
Zack Proser @zackproser.bsky.social · 25/06/2026
The friction is part of the review. The sharp edges are almost all in the beta churn and the Vercel Connect setup — budget real time for them. But the connector code isn't duplicated three times and degrading three ways, because I didn't write it.
110
Zack Proser @zackproser.bsky.social · 25/06/2026
A tool is one TypeScript file.
100
Zack Proser @zackproser.bsky.social · 25/06/2026
One bot per repo was the most important decision, and it has nothing to do with eve. One agent, one repo, one responsibility. I can read any bot top to bottom in a sitting and know everything it can do — because everything it can do is in that directory.
100
Zack Proser @zackproser.bsky.social · 25/06/2026
I gave my website three employees. A content bot, an ops bot, and a growth bot. Each one its own repo, each deployed to Vercel on eve, all living in one Slack channel. I reviewed Vercel's eve agent framework by actually building a business team on it.
120
Zack Proser @zackproser.bsky.social · 24/06/2026
I'm still the spark, the bellows, and the quench: zackproser.com/blog/spark-...
zackproser.com
I Am the Spark, the Bellows, and the Quench
A stranger online said AI made him suspicious of all writing — that he now interrogates every sentence asking whether a machine wrote it. That's the wrong question. On craft in the era of AI, and why I'm still the spark, the bellows, and the quench.
100
Zack Proser @zackproser.bsky.social · 24/06/2026
People ask how I write so fast. The honest answer never had much to do with typing speed — I'd already done the writing in my head. The question isn't "did AI touch this." It's "whose judgment decided it was true, and whose name is on it."
100
Zack Proser @zackproser.bsky.social · 24/06/2026
My writing breaks into three parts. The spark — the idea. Mine. The bellows — drafting and shaping. A machine can do this. The quench — hitting publish. Always mine. A machine can take the middle. It can never take the ends.
100
Zack Proser @zackproser.bsky.social · 24/06/2026
A stranger told me AI made him suspicious of all writing. He now interrogates every sentence: was this one a machine? What about this one? I understand the reflex. But that's the wrong question. Here's the right one.
100
Zack Proser @zackproser.bsky.social · 24/06/2026
I built my own blog bot this way. It doesn't message me a summary — it opens a PR I can reject with one click, request quick follow ups on, or merge. Stop building chatbots. Build agents that open PRs: zackproser.com/blog/build-...
zackproser.com
Stop Building Chatbots. Build Agents That Open PRs.
The unit of useful agent work is a reviewable artifact — a PR, a draft, a diff — not a chat reply. A chat reply evaporates. A PR sits in a queue with your name on it until you decide. Here's why I build agents that hand me coals, using my own blog bot as the worked example.
000
Zack Proser @zackproser.bsky.social · 24/06/2026
Most teams build a chatbot, ship it, and wonder why nobody's life got better. The output is a paragraph — so you still have the job. Make the model put the work where review already happens: a PR, a draft, a diff. Now you have a decision to make, not more reading.
100
Zack Proser @zackproser.bsky.social · 24/06/2026
The unit of useful agent work isn't a chat reply. It's a reviewable artifact. A chat paragraph evaporates. You nod, you scroll, and ten minutes later it's gone. A PR sits in GitHub with your name on it until you deal with it. That difference is the whole argument.
100
Zack Proser @zackproser.bsky.social · 24/06/2026
A sentence I'm proud of that doesn't earn its place is the hardest thing to cut — because I wrote it. The full implementation, the gate, and a real catch: zackproser.com/blog/how-my...
zackproser.com
How My Blog Bot Reviews Its Own Writing Before I Read It
Before a draft reaches me, my blog bot hands it to two cold readers from different model families that score it against a rubric and force a revision loop. The implementation, the gate, and a real pass where it caught my own AI tell.
000
Zack Proser @zackproser.bsky.social · 24/06/2026
By the time I open the thread, the post already survived two skeptical reads I never had to do. This matters because I'm the worst reader of my own draft. I've stared at it for an hour. My eyes slide over the clunky transition because I know what it's trying to say.
100
Zack Proser @zackproser.bsky.social · 24/06/2026
My blog bot grades its own homework before I ever see a draft. I don't let the model that wrote the post be the only judge. It sends the MDX to two cold readers from different model families, scores against a rubric, applies fixes, and loops until both say ship.
100
Zack Proser @zackproser.bsky.social · 16/05/2026
Got a pitch that opened with Hi {{first_name}}, — the template variable literally unrendered. So I built a thing that doesn't bother either, a brutal AI screener. Three examples in post. "We don't template people we really care about, right?" zackproser.com/blog/inbox-classifier-going-guerilla
zackproser.com
Going Guerilla on My Inbox
What my AI inbox-screener actually does to the templated cold outreach hitting my inbox. Three real auto-sends, the footer that draws the line, and where this goes next.
010
Zack Proser @zackproser.bsky.social · 12/05/2026
Just finished setting up the newsletter I've been meaning to build for three years. Get my best essays weekly, then new writing as it lands. Applied AI, dev tools, no hype. Free. zackproser.com/subscribe
zackproser.com
Subscribe to Modern Coding Newsletter
Join 4,000+ engineers getting weekly insights on AI engineering, RAG pipelines, developer tools, and building with LLMs.
010
Zack Proser @zackproser.bsky.social · 05/05/2026
Two AI agents, one phone. Claude Code handles infrastructure while Hermes runs content — fully separate, fully controllable from anywhere. Separation of concerns isn't just good software design. Turns out it's the right way to architect your agents… zackproser.com/blog/two-agents-one-…
260
Zack Proser @zackproser.bsky.social · 05/05/2026
Claude Code on my Mac couldn't see what Hermes was doing on EC2. So I built a signed webhook bridge over Tailscale — SSM RunCommand triggers it, HMAC validates it, and now the two agents actually talk to each other. zackproser.com/blog/webhook-bridge-…
021
Zack Proser @zackproser.bsky.social · 04/05/2026
😁
000