I build settlement infrastructure and cross-chain systems across Solidity, Rust, Go, TypeScript/Node, and Python β deep in all of them, not just passing-familiar. Over the past few years I've contributed to protocols like CoW Protocol, Filecoin (via ChainSafe's Forest), and Hyperlane's cross-chain messaging stack. I care about code that's auditable, deterministic, and built to survive adversarial environments β which is most of Web3. When I'm not only writing Solidity or Move, I'm usually deep in backend systems design or experimenting with SUI's object-centric model.
Currently: freelancing across Web3 β building solvers, smart contracts, and backend infra for protocols and teams who ship fast.
Open to: contract engagements, protocol advisory, audit collaborations, security research. Strong preference for serious DeFi / infra work β Solidity, Rust solvers, Cosmos / Substrate appchains, cross-chain messaging. Reach out β
| Languages | |
| Infra & Data | |
| DevOps & Secrets |
|
| Blockchain |
|
| Frameworks |
|
| Messaging & P2P |
|
| Project | Description | Stack | Status |
|---|---|---|---|
| zenith | Zenith β a dynamic liquidity protocol on Solana: a concentrated-liquidity AMM and a bin-based liquidity-book DEX, with a TypeScript SDK and web app. | Rust, TypeScript | Active |
| solidity-examples | Solidity tutorials and sample contracts β learning reference covering patterns and DeFi primitives. | Solidity, TypeScript | Active |
| Rust-Algorithms | Classical algorithms in idiomatic Rust with thorough test suites | Rust | Active |
| titular | Multi-chain commerce layer for AI agents β Base/Eth/Solana launchpad with ACP v2 + GAME planner. | Solidity, Rust | Active |
| omniforge | One Go API and one CLI for every git forge β GitHub, GitLab, Gitea/Forgejo, Bitbucket Cloud. | Go | Active |
| ProphecyChain | Cosmos SDK oracle chain β validators attest Ethereum storage state with slashing-backed consensus. | Go | Active |
| neuro-mesh | Peer-to-peer intelligence marketplace β Substrate appchain with subnet-based AI inference economics. | Rust, TypeScript | Active |
I optimize for cross-chain interoperability and on-chain settlement correctness β bridge invariants, solver pricing, and message-passing semantics get more attention than UI polish. Modules ship behind feature gates with property tests and threat models before mainnet. Security-first by default: every external call return value gets checked, every state change emits an event.
- Nervos Force Bridge β ETH-side contract audit suggestions (#386)
- Available for Solidity audits and threat modeling for protocol launches. Slither + Foundry invariant testing + manual review. Reach out for engagement details.
NousResearch / hermes-agent Β· 19 PRs Β· view all β
#61364β fix(serve): exit desktop backend when its parent process dies#57688β fix(cron): deliver no_agent job output verbatim without the response wrapper#56852β fix(cli): resolve moa: model in non-interactive mode#56542β fix(tui): strip ANSI from slash-command output before returning to chat#55478β fix(delegate): merge persistent + runtime delegation config sources#52930β fix(backup): include projects.db and kanban.db in pre-update snapshot#52402β fix(cron): add default retention to per-run job output to bound disk usage#50832β fix(model-metadata): retry transient OpenRouter fetch + quiet warning on cache fallback#27966β feat(image_gen): port FAL backend to plugins/image_gen/fal#26299β fix(cli): tab-complete paths with embedded spaces#23664β chore(ci): pass VERCEL_DEPLOY_HOOK via env block, not inline expression#21138β fix(openviking): refresh client from env on /reload#21134β fix(profile): honor renamed root alias in CLI/profile helpers#20602β fix(credentials): prefer ~/.hermes/.env over stale os.environ on key rotation#20100β fix(config): dedupe duplicate KEY= lines in save_env_value#20094β fix(cli): pin HERMES_KANBAN_BOARD at chat boot to stop subprocess board drift#18405β fix(tui): copy selection on Ctrl+C in approval overlay instead of denying#17951β fix(curator): scan nested archive subdirs in restore_skill#17821β fix(tui): guard /reload-mcp against null ctx.sid
calesthio / OpenMontage Β· 17 PRs Β· view all β
#337β fix(green_screen): scale chromakey background to frame size, not 1x1#325β fix: subtitle timestamp ms overflow; checkpoint KeyError on manifest-only stages#309β fix: openai_image returns all n images; segmented_music stops halving narration#307β fix(style_bridge): read playbook typography/pace from their real schema keys#280β fix(scoring): tokenizer swallows trailing punctuation; cinematic bonus uses raw split() (#279)#278β fix(delivery_promise): motion_required derived before has_footage reclassification (#277)#266β fix: three independent zero-key correctness bugs (audio_mixer ducking, scene-variation run count, source-media schema)#252β fix(math_animate): gate caller-supplied scene_code execution (#219)#251β fix(video_compose): surface Remotion failures + add render timeout passthrough (#217)#238β fix: repair local zero-key rendering (Remotion asset staging, resolveAsset, Piper status)#226β feat(publish): add export_bundle, the first PUBLISH-tier tool#223β feat(audio): add music_library tool so user tracks surface at preflight#197β docs: resolve orphaned skill AGENTS.md scope and stale gsap README (#61)#195β fix: defer composition runtime choice to Present Both gate in reference-analyst#190β chore: add issue templates and a pull-request template#188β chore: add .gitattributes to normalize line endings#186β fix: use --props= equals form for Remotion render on Windows
NethermindEth / nethermind Β· 14 PRs Β· view all β
#12101β feat(debug): emit struct-log returnData in geth opcode tracers#12081β feat(debug): emit struct-log refund counter in geth opcode tracers#12058β feat(debug): align debug_trace* opcode tracer with execution-apis#762#12016β feat(rpc): add admin_setBlockProcessingPaused to pause/resume block processing#11799β test(evm): un-ignore Trace_invalid_jump{,i}_exception#11744β test(sync): un-ignore Can_cancel_seal_validation#11696β fix(merge): capture bad blocks at pre-process rejection stages#11665β fix(rpc): emit spec message for eth_simulateV1 -38020#11641β refactor(core): centralize EIP-7702 SetCode shape checks#11617β perf(merge-sync): cache PosForwardHeaderProvider.GetBlockHeaders#11600β feat(sync): support infinite pivot-update attempts via -1 (#5992)#11569β fix(snap-sync): refresh pivot instead of punishing the only peer (#6803)#11552β feat(rpc): add eth_fillTransaction#11524β feat(rpc): add debug_intermediateRoots
ChainSafe / forest Β· 12 PRs Β· view all β
#7319β refactor(tool): extract snapshot export into a shared module#7318β docs: group JSON-RPC overview and JWT auth in one section#7312β docs: let wide tables use full width on large screens#7283β feat(api-compare): report tested API versions in conformance report#7280β refactor(rpc): make RpcMethod DESCRIPTION mandatory#7216β feat(wallet)!: apply FRC-0102 envelope to sign/verify by default#7215β feat: honor FOREST_PATH env var for data directory#7080β feat: honor FOREST_PATH env var for data directory#6968β feat(wallet): strict address validation in forest-wallet CLI#6967β feat(wallet)!: apply FRC-0102 envelope to sign/verify by default#6966β fix(tool): surface MessagePool service task errors in api_cmd test ctx#6395β feat(chainstore): add fallback blockstore skeleton with bitswap support
garrytan / gstack Β· 11 PRs Β· view all β
#2022β fix(preamble): gate upgrade-handling prose on update_check opt-out (#2001)#2021β fix(autoplan): bind commit before split-array index in tasks aggregator (#2018)#1789β fix(make-pdf): assign body heading ids so --toc anchors resolve (#1689)#1747β fix(preamble): echo SESSIONS count so CLAUDE.md rules can read it (#1651 Defect A)#1692β fix(skill-preamble): use $HOME instead of literal ~ in quoted bin paths (#1656)#1595β docs(codex): add Hermes-aware recovery branch for refresh_token_reused (#1542)#1582β fix(supabase-provision): rewrite transaction/6543 -> session/5432 for new projects (#1301)#1496β fix(gstack-paths): add --get so /codex skips eval-tilde footgun#1488β fix(global-discover): bucket codex sessions by originator#1469β fix(artifacts-init): honor gh/glab git_protocol when picking push URL#1468β fix(gbrain-sync): fold hostname into code-source id hash
Tracer-Cloud / opensre Β· 10 PRs Β· view all β
#1982β fix(e2e): resolve repo root correctly in deploy helpers#1902β docs(readme): add Telegram to Communication integrations#1814β feat(sentry): init_sentry for missing entrypoints (Sentry coverage 3/5)#1558β feat(sentry): tighten init config (Sentry coverage 1/5)#1261β docs: add LLM providers reference page#1021β test(utils): add direct unit tests for ingest_delivery#1003β test(tools): add unit tests for the four GitLab tools#1002β docs(tests): correct FileNotFoundError example message in tests/AGENTS.md#999β docs(azure-monitor): add Azure Monitor integration guide#990β fix(eks): forward stored AWS integration credentials into build_k8s_clients
langchain-ai / langchain-azure Β· 10 PRs Β· view all β
#817β fix(azure-ai): return empty list from async MMR search when no results#814β fix(sqlserver): honor string distance_strategy in relevance scoring#813β fix(sqlserver): preserve MMR ranking order in results#812β fix(sqlserver): use not_in for $nin metadata filter operator#802β fix(azure-ai): fall back to message metadata for gen_ai.response.id#801β feat(sqlserver): use binary collation for custom_id column#633β feat(sqlserver): add async methods to SQLServer_VectorStore#630β feat(sqlserver): add SQLServerSaver LangGraph checkpoint saver#629β feat(sqlserver): add SQLServerChatMessageHistory#628β feat(sqlserver): add upsert option to add_texts and from_documents
anomalyco / opencode Β· 8 PRs Β· view all β
#32790β fix(config): json-escape env/file substitutions into config text#32677β fix(session): anchor system prompt date to session-start time#32644β fix(session): anchor system prompt date to session-start time#32636β fix(acp): include resource URI as source prefix in text parts#32518β fix(agent): apply configured tool_choice to model requests#32513β fix(config): warn when opencode.json and opencode.jsonc coexist#32440β fix(cli): avoid spinner escape spam on plugin install in non-TTY#32434β docs: correct plugin cache path to packages dir
lmnr-ai / lmnr Β· 5 PRs Β· view all β
#1921β fix(sql): fall back to main ClickHouse creds for the read-only client#1920β fix(realtime): scope SSE CORS to an origin allow-list#1915β fix(playground): handle legacy string message content#1900β fix(cache): honor entry expiry in CacheManager.exists() memory fallback#1899β fix(signals): supportneoperator on tags trigger filters
trufflesecurity / trufflehog Β· 5 PRs Β· view all β
o1-labs / mina-rust Β· 3 PRs Β· view all β
tc39 / tc39.github.io Β· 3 PRs Β· view all β
weaviate / weaviate Β· 2 PRs Β· view all β
cowprotocol / services Β· 1 PR Β· view all β
#4371β Enforce EIP-7825 per-tx gas cap on settlement
hyperlane-xyz / hyperlane-monorepo Β· 1 PR Β· view all β
#1799β adding MAX_MESSAGE_BODY_BYTES check to MockMailbox
nervosnetwork / force-bridge Β· 1 PR Β· view all β
#386β Force Bridge Eth contracts audit-suggestions
tvl-labs / el-axon Β· 1 PR Β· view all β
#1β Feat: Axon AVS Contracts
calesthio / OpenMontage Β· 5 issues Β· view all β
#237β Local zero-key rendering broken: resolveAsset path mangling, unconverted audio paths, and false-available Piper TTS#279β Scoring tokenizer swallows trailing punctuation; cinematic bonus uses raw split()#306β HyperFrames style bridge reads typography.heading and motion.pace from non-schema keys (both silently drop to fallback)#324β Subtitle timestamps overflow to 4-digit ms; checkpoint validation KeyErrors on manifest-only stages#336β green_screen chromakey composites onto a 1x1 background -> solid-color output (subject lost)
ChainSafe / forest Β· 1 issue Β· view all β
#6353β Implement fallback blockstore
garrytan / gstack Β· 1 issue Β· view all β
#1348β gstack-brain-init defaults to SSH remote, fails for HTTPS-configuredgh
lmnr-ai / lmnr Β· 1 issue Β· view all β
#2019β OpenAI converter can emit empty tool_call_id for missing functionResponse.id
o1-labs / mina-rust Β· 1 issue Β· view all β
#1260β Limit the usage ofstd, and rely oncoreas often as possible
calesthio / OpenMontage Β· 7 issues Β· view all β
#187β Add a .gitattributes to normalize line endings (prevent CRLF breakage on Windows)#189β Add issue templates and a pull-request template#265β audio_mixer full_mix with ducking fails for single narration + music (dangling filtergraph pad)#268β check_scene_variation miscounts 'consecutive same-size shots' (counts non-consecutive pairs)#269β review_source_media emits a schema-invalid artifact when no media is reviewed (files:[] vs minItems:1)#277β classify_from_brief derives motion_required before has_footage reclassifies to SOURCE_LED#308β Media tools under-deliver: openai_image drops n>1 images (bills for n); segmented_music halves narration volume
ChainSafe / forest Β· 6 issues Β· view all β
#4941β validate network definitions withupgrades.json#6012β feat: implement strict address validation in forest-wallet CLI#6334β Check integration with Protofire proxy#6442β Implement FRC-102 inforest-walletfor consistency across Filecoin wallets#6505β Handle JoinSet task errors in test utility functions#7210β Make DESCRIPTION in RPC methods mandatory
Tracer-Cloud / opensre Β· 6 issues Β· view all β
#1005β [FEATURE] : add docs for LLM APIs/CLI supported#1014β [FEATURE] : add docs for telegram integration#1234β Contextual Memory for OpenSRE Investigations#1477β Sentry coverage 3/5 β Add init_sentry() to missing entrypoints (analytics, daily-update, github-issue-comments, grafana-seed, hosted graph)#993β Add unit tests for GitLab tools (Commits, File, MRs, Pipelines)#997β Add Azure Monitor integration documentation (docs/azure-monitor.mdx)
MystenLabs / sui Β· 2 issues Β· view all β
hyperlane-xyz / hyperlane-monorepo Β· 1 issue Β· view all β
#1798β Missing MAX_MESSAGE_BODY_BYTES check in MockMailbox




