I read large codebases end to end, track down the bugs that hide between their parts (state leaking across profiles, races, unbounded waits, corrupted handles) and send small, focused fixes upstream. Nearly every fix ships with a regression test. On my own time I build onchain apps for AI agents and stablecoin payments.
Hermes Agent · NousResearch
The open-source agent framework from Nous Research. Since February 2026 I've opened 178 pull requests; 36 of my commits are on main under my name: 7 merged directly and 29 cherry-picked by the maintainers into their salvage pull requests with my authorship kept. Two more gateway fixes landed with Co-authored-by credit.
All 36 commits on Hermes Agent main
| Date | Commit | Change |
|---|---|---|
| 2026-09-09 | 17b2768 |
fix(state): quarantine a corrupt/replaced handle out of rebuild_fts() too |
| 2026-09-09 | 511633b |
fix(agent): stop the run-budget wrap-up notice from mutating a persisted tool row |
| 2026-09-09 | 9e0dc43 |
fix(state): guard vacuum() and optimize_fts() against quarantined SessionDB handles |
| 2026-09-07 | 3d59486 |
fix(gateway): fold route + authenticated principal into idempotency key |
| 2026-09-06 | 5725efa |
fix(gateway): scope resolve_proxy_url()'s platform_env_var read by multiplex profile |
| 2026-09-05 | 2b7eb97 |
fix(gateway): scope the OpenAI-compat Idempotency-Key cache by profile |
| 2026-09-02 | 504dd1f |
fix(raft): scope RAFT_PROFILE resolution to the active multiplex profile |
| 2026-09-02 | 79732c6 |
fix(a2a): scope multiplex secondary-profile construction, not shared env |
| 2026-09-02 | c79df9c |
fix(state): stop the housekeeping FTS retry from running on a quarantined SessionDB |
| 2026-09-01 | 05aa749 |
fix(irc): scope server/port/nickname/channel/use_tls reads to the active profile under multiplexing |
| 2026-09-01 | 07ee457 |
fix(wecom): scope WECOM_BOT_ID reads to the active profile under multiplexing |
| 2026-09-01 | 327e904 |
fix(ntfy): scope server/topic/publish_topic reads to the active profile under multiplexing |
| 2026-09-01 | 56d869d |
fix(mattermost): scope url/reply_mode/require_mention/free_response_channels/allowed_channels to the active profile under multiplexing |
| 2026-09-01 | 8099745 |
fix(sms): scope TWILIO_PHONE_NUMBER per profile |
| 2026-09-01 | c36def6 |
fix(photon): scope project_id/node_bin/require_mention/reactions/sidecar config to the active profile under multiplexing |
| 2026-08-29 | 0610291 |
fix(prompt): sync DEFAULT_SOUL_MD with the #95681 identity rewrite |
| 2026-08-29 | 4d4cffd |
fix(profiles): make_targz writes to a temp file and renames, not the destination directly |
| 2026-08-29 | 8142494 |
fix(tui): render nested todo subtasks via the parent field |
| 2026-08-29 | bc81d0a |
docs: sync stale /background references with the /bg + /btw split |
| 2026-08-29 | c7429f6 |
fix(state): close the SessionDB lock gate's blind spot on its own mixin files |
| 2026-08-29 | d6a6d87 |
fix(tools): restore setup_mcp's never-hand-edit instruction |
| 2026-08-28 | d4126c6 |
fix(code-execution): reap idle and cap remote session kernels |
| 2026-08-27 | d6ace97 |
docs(computer-use): remove the deleted typed browser-page route |
| 2026-08-26 | 08b4875 |
fix(deadline): remove the dead second SuspectableBackend class shadowing the Phase 3a Protocol |
| 2026-08-26 | 1e73281 |
fix(desktop): claim-guard every remaining ensureRegistryBackend()/ensureBackend() call in Electron main |
| 2026-08-26 | d81b801 |
fix(desktop): bound getConnection()/resolveGatewayWsUrl() on every remaining route |
| 2026-08-26 | fbe51fa |
fix(desktop): bound the onActiveConnectionInvalidated fallback getConnection() call |
| 2026-08-25 | 31f3de1 |
fix(desktop): bound getConnection() on the boot and soft-switch paths (#93454) |
| 2026-05-14 | 4b6d35b |
fix(telegram): escape send_slash_confirm preview with format_message |
| 2026-05-04 | 429b8ec |
fix(cli): guard c-S-c key binding with try/except to prevent startup crash (#19895) |
| 2026-05-03 | 808fee1 |
fix(auxiliary): propagate explicit_api_key to _try_anthropic() |
| 2026-05-03 | 9faaa29 |
fix(delegate): inherit parent fallback_chain in _build_child_agent |
| 2026-05-03 | e89376d |
fix(setup): add missing SLACK_HOME_CHANNEL prompt to _setup_slack() |
| 2026-05-02 | 6c1322b |
fix(slack): close previous handler in connect() to prevent zombie Socket Mode connections |
| 2026-04-25 | e2211b2 |
fix(compressor): reset _summary_failure_cooldown_until in on_session_reset() |
| 2026-04-24 | 4e2b20b |
fix(cli): sync use_gateway in _reconfigure_provider for tts, browser, and web |
CoFHE SDK · Fhenix
Tooling for fully homomorphic encryption (FHE) on EVM chains. 10 pull requests, 4 merged, the rest under review. Most of the work makes the local mocks behave exactly like the real network, so tests catch what production would.
- #413 Mock contracts reject an inverted security-zone range, like the TaskManager
- #414 Mock contracts match the TaskManager's batch decrypt-result functions
- #415 React hooks keep their
enabledgate whenqueryOptions.enabledis set - #416 React README encryption examples updated to the current API
- In review: MockTaskManager emits the TaskManager's events, mock decrypts fail with the threshold network's error codes,
defaultACPExpirationapplied to client-created ACPs, Hardhat 3 plugin builds the mock contracts
Miden VM · 0xMiden
A STARK-based zero-knowledge virtual machine in Rust. Reported two panics in build_trace on malformed execution witnesses: #4042 (inconsistent AEAD stream replay lane) and #4044 (empty or too-short replayed Merkle path).
|
An agent asks for a guideline in plain words and reads it over MCP; authors publish from their own wallet, the file goes to IPFS and its hash to two verified contracts on Arc, and readers can tip in USDC with 100% going to the author. 129 unit and schema tests. |
Pay-per-use tools paid in USDC from a connected wallet, with auto-pay sessions and on-chain receipts decoded from each payment's memo. |
|
Staking, NFT minting, loot boxes, user-created NFTs and a |
The first take on a Markdown library for AI, on Shelby blob storage and Aptos; PikaMd grew out of it. |
- Read the source, not the guess. Library behaviour comes from the installed code and the official docs, then gets written down.
- Fix the class, not the instance. When one call site is wrong I check its siblings; many of my Hermes fixes are sweeps across every adapter or route with the same flaw.
- Prove it. A fix comes with the test that fails without it.
- Small, reviewable pull requests, one concern each, with a clear write-up of the cause.
Numbers counted from GitHub in October 2026. Pixel art is drawn in code.


