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 games and onchain apps; right now that is Squeaksy, a pixel idle game for the Squeekchain community.
A cozy pixel idle game for the Squeekchain community. Your hamster runs the wheel, every lap fills a block in the chained clouds and every block pays stars; spend them on limited hamsters and Pixsy buddies that earn more per block. A second cloud is filled by the real Squeekchain hamster on Sepolia: when its blocks settle onchain, lightning strikes on every open screen and every hamster running at that moment collects a Block Bounty. Each hamster has its own 2 hours of energy a day, and every rule that pays (rates, limits, supply, bounties) is enforced in Postgres, not in the browser. The pixel art is drawn and the thunder synthesized in code.
Play · Code · TypeScript, Canvas, Supabase, Sepolia
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. 12 pull requests, 10 merged, the other two under review. Most of the work makes the local mocks behave exactly like the real network, so tests catch what production would.
- #430 MockTaskManager emits the TaskManager's events
- #437 Mock decrypts fail with the threshold network's error codes
- #413 Mock contracts reject an inverted security-zone range, like the TaskManager
- #414 Mock contracts match the TaskManager's batch decrypt-result functions
- #417 ACP expiration counted from the latest block, as the ACL does
- #439 Hardhat 3 plugin builds the mock contracts with the project
- #438
cofhe.mocks.deployMocks()falls back to the CoFHE config - #415 React hooks keep their
enabledgate whenqueryOptions.enabledis set - #416 and #436 Docs: React encryption examples on the current API, the submit 404 retry described as the SDK runs it
- In review: Next.js 16 apps build with webpack until Turbopack can build the TFHE worker, Quick Start config created with
createCofheConfig
Seaport.js · OpenSea
The TypeScript library for Seaport, the marketplace protocol behind OpenSea. 4 pull requests; 3 fixes shipped in v4.5.0. The maintainer reproduced each bug, stacked the three pull requests with my commits unchanged into #1058, and the commit on main credits me as co-author.
- #1056 Count a single-token ERC721 approval, not only approval for all: listings made with
exactApprovalwere rejected although Seaport fills them onchain - #1053 Keep a contract wallet's 65-byte signature instead of compacting it, so Safe and other ERC-1271 wallets can fill their orders (fixes #1052)
- #1054 Reject a zero
unitsToFillinstead of filling the whole order - In review: reject a bulk order signature Seaport cannot read as one
|
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 November 2026. Pixel art is drawn in code.



