Fullstack blockchain & AI engineer. 6+ years building production Node.js and TypeScript backends and Solidity contracts — plus three years leading frontend and smart-contract teams.
I work on the parts of a product that have to be correct: contracts that move funds, on-chain data pipelines that are not allowed to drop an event, and the APIs behind them. Most of my day-to-day now runs through AI-assisted development — MCP servers, retrieval over embeddings, and tooling I wrote for my own workflow.
Small, focused, tested. Each one exists because I needed it on a real project.
| abi-lens | Decode raw EVM calldata, event logs and revert reasons from the terminal — with an ABI, a bare signature, or a 4byte lookup. Also computes CREATE/CREATE2 addresses. |
| eip712-kit | Hash, sign, verify and recover EIP-712 typed data from a JSON file. For when a signature is rejected and you need to know which field of the domain is wrong. |
| mcp-evm | A read-only Model Context Protocol server that gives Claude Code or Cursor direct access to EVM chains: balances, eth_call, contract reads, calldata and log decoding. No private keys, no writes. |
| idempotent-jobs | BullMQ workers that process each logical job exactly once — key-based deduplication, claim TTLs, retry with backoff, and a dead-letter queue. |
Companies left out on purpose; the engineering is the point.
On-chain quest and reward platform — Backend on NestJS with PostgreSQL and Prisma:
REST APIs, authorization, partner integrations, queue-backed workers. Built a proof-of-action
ingestion pipeline that collects, validates and processes on-chain user activity through durable
queues with retry semantics, so a dropped RPC response never costs a user their reward.
Delivered staking and reward-distribution flows, and replaced per-environment deployment
runbooks with one reproducible containerized pipeline doing deterministic CREATE2 deploys
across 16+ networks.
Internal AI tooling — MCP servers and retrieval-augmented generation over pgvector
embeddings on the Claude API, with schema validation before anything is persisted. Used daily
by the team rather than demoed once.
Prediction market on Base — Took a platform where users bet on live-stream events from scope to production with a small team: backend services, smart contracts, deployment. Tuned MongoDB and Redis access paths and contract calls to survive bursts of simultaneous bets.
Investment-fund platform — Led development of the web applications and Telegram Mini Apps, built the authentication and authorization layer and the blockchain workflows behind it, and supported the fund contracts through a third-party audit to release.
DAO treasury management — Web application and smart contracts for managing on-chain assets inside DAO organizations, integrating lending and staking protocols through partner contracts.
Languages — TypeScript, JavaScript, Node.js, Solidity, SQL
Backend — NestJS, REST, GraphQL, WebSocket, authentication and authorization, BullMQ background jobs, third-party integrations
Data — PostgreSQL, Prisma, MongoDB, Redis, pgvector, Firebase; schema design, migrations, query optimization
Web3 — EVM, Foundry, Viem, ethers.js, wagmi, EIP-712, CREATE2, ERC-20/721/1155,
OpenZeppelin, Chainlink, The Graph, Tenderly, Alchemy · Ethereum, Base, Solana, TON, Injective,
Kadena
AI engineering — Claude API, Claude Code, MCP, RAG, embeddings, vector search
Frontend & mobile — React, Next.js, React Native, Redux, Zustand, TanStack Query
Infrastructure — Docker, CI/CD, staging and production deploys with rollback, Linux
Three years as a team lead taught me that the code is the easy half. I set engineering standards and defend them in review, write the specification before the branch, break scope into pieces that ship independently, and mentor rather than rewrite. I have worked directly with clients to define an MVP and hold a fixed deadline, and I would rather cut a feature than a test.
Domains I know well: DeFi (staking, lending, liquidity), NFTs, prediction markets, gamified on-chain mechanics, and the indexing infrastructure all of it needs.
Open to interesting problems in Web3 and AI infrastructure — reach me through GitHub.



