Software Developer · AI tools, agent workflows and evals · local-first apps
I build with a multi-agent Claude Code workflow. The main Sonnet session leads: it plans each change, splits it into small units and asks me the product questions. Haiku workers make the edits, and an Opus reviewer blocks on missing requirements, untested behavior and silent data loss. After three rejections the loop stops and the decision comes to me. Nothing merges until CI is green and I've tested it by hand. Agent team smoke tests →
Squirrow v1.1.0: shipped as 7 PRs in about 2.5 hours, using 43.8M tokens (97.3% cache reads), at an estimated $6.81 at list price, with 22 review findings fixed before merge. Full log →
FocusPet: in one day of work, 38 subagent runs covered 12 issues in three batches. Haiku and Sonnet workers wrote the code, and Opus reviewers and advisors checked every PR before it shipped. That came to 4.07M subagent tokens and at least $9.67 at list price, with 10 "fix first" reviews resolved before shipping.
- goose #12993: fixed custom providers losing image support when renamed, by looking up vision through their catalog ID, with a mock-server test for each override case (merged)
- cubrid-mcp-server #369: added a full truth-table test for
parse_bool(merged) - cubrid-mcp-server #374: pinned the rule that named connections don't inherit default settings, with a mutation check (merged)
- repowise #4350: stopped the repo timeout test flaking on slow runners (merged)
- octofs #16: added the first unit tests for
request_ctx(hint dedupe, scoping, view cache), my first merged Rust PR (merged)
A desktop companion with local LLM chat through Ollama, so conversations never leave your machine. Network access is off by default.
Evals: a seeded harness (gemma3:4b, 15 prompts × 3 seeds) that scores tool-call replies with a unit-aware checker and records the model digest and git SHA with every run. Adding tool calls took the score from 24/45 to 42/45. For a bug where Bit invented numbers about his own mood (#34), a seeded scenario with stored notes and chat history exposed a memory feedback loop the clean eval missed (42/95 seeded vs 89/95 clean on main). I shipped a read-only note filter instead of a higher-scoring version that deleted users' real notes. Every behavior change is gated on before-and-after tables, and known failures are logged rather than tuned away. Case study →
Private repo. Demo on request.
agent-workshop · Electron + Node
A desktop dashboard that shows how a multi-agent coding session routes work across Opus, Sonnet and Haiku. It has zero runtime dependencies. CI builds Windows, macOS and Linux installers for every release, with SHA-256 checksums. Download the latest release →
Squirrow · React 19 + TypeScript
A local-first memory manager for your AI chats. It needs no account, and your data stays in your browser. It installs as an offline app. Try it live · How it was built →
- ssm-state-quantization: how rounding the recurrent state of Mamba-2 (130M and 370M) hurts accuracy, broken down by how fast each head forgets. Every experiment is pre-registered in the log before it runs. Private repo. Demo on request.
- replication-criterion: a pre-registered feasibility analysis of machine self-replication.
Rust · TypeScript · JavaScript/Node · Python Tauri 2 · Electron · Win32 · React · Vite · GitHub Actions
AI tools: Claude Code · Cursor · Ollama · MCP · pytest





