What I build
I build Overclock, a flat-rate inference API for coding agents. Solo founder, self-funded, whole stack: the proxy layer, billing, and the product itself. Most of my day is agent work. Not "AI writes my code" demos — long tool-call loops, repo reading, test runs, retries. The kind of work where a session runs for hours and the number of tool calls is genuinely unbounded.
Agents & harnesses
- Claude Code — my main harness for the product work. Long refactors, the billing layer, and anything where I want the agent reading a lot of context before it writes.
Cline — for scoped, single-file changes where I want to watch each step.
Aider — quick edits when I already know exactly what I want changed.
Apps
- Hermes — agent runtime I test against, since a lot of my users run it.
Obsidian — plain markdown over the repo notes. The agent can grep it, which beats any vector store for this size of project.
Models
redline(Overclock) — my default now. One model id that routes to whichever model in the pool is best suited, 260K minimum context. I use it for everything long-running because I'm not watching a meter while it works.
Claude Sonnet / Opus — for the design conversations and the genuinely ambiguous architectural calls. I still reach for these when I want a second opinion from a different model family.
GPT / Gemini — mostly for cross-checking. If two families agree on an approach, I stop worrying about it.
Terminal
- Windows Terminal + PowerShell 7 — this is where I live. I'm on Windows, which puts me in a smaller camp than the Mac crowd, and it's why half my debugging is about sandbox and TLS behavior rather than application code.
Machines
- Local Windows box — the daily driver. Everything is developed and tested here.
Subscriptions & costs
- Before: one heavy agent day was roughly 20M input and 2M output tokens, about 5.70 at published rates. Multiply by the working month, and it's around 5.70 at published rates. Multiply by working months, and it's around 125. And that number moved every month depending on how ambitious I got, which is the real problem—not the total, the unpredictability.
Now: $15/month flat for one runner on Overclock. I built it because I wanted it, which is a conflict of interest I'll name up front. Take the framing with salt.
Skills
- CLAUDE.md per project — architectural constraints and the non-obvious rules. The single highest-leverage file in the repo.
A decisions file — decided, rejected, and open, with reasons. The rejected list turned out to matter most, because compaction kept losing it and the agent kept re-proposing things I'd already said no to.
MCP connections
- Filesystem — lets the agent read and write the repo without me pasting anything.
Git — commits and diffs so the agent can check its own work against history.
How I work
- One real task: a bug where the queue wasn't releasing a runner after a failed generation.
Start: I write the symptom into CLAUDE.md-level context first — what I expected, what actually happened, and the file I think it's in. Not a question, a description. Agents are much better when you hand them an observation instead of a request.
Middle: Claude Code reads the proxy code and the queue implementation, then proposes a fix. I do not accept the first fix. I ask it to explain why the runner wasn't released, and specifically which line was responsible. If it can't point at a line, it's guessing.
Check: I reproduce it. A failing test first, then the fix, then the test passing. Never the other way around. If I can't reproduce it, I don't merge it, no matter how good the explanation sounds.
The habit that matters most: I stopped capping agent iterations to control cost. Capping iterations controls cost and quietly caps quality, and you end up shipping the agent's second-best answer for billing reasons. Removing the meter removed the temptation.