Senior Full-Stack Engineer

Open to work

Sergei Karasev

12 years in the job. Mostly financial products, the last five years in Web3 and DeFi.

I take a feature from a loose ask to production: the interface, the API behind it, and the metrics and monitoring.

Stack: TypeScript, React, Next.js, Node.js, PostgreSQL

Location: Yerevan, Armenia · Remote, GMT+4 · Overlap: full EU, UK 6+ hrs, US East 3+ hrs · Independent contractor or EOR

Projects

apppool40ms429retry 2srpc-arpc-b90msrpc-c120ms

ethers-rpc-pool

A pool of RPC endpoints for ethers.js. Rate limit per endpoint, routing by latency, circuit breaker, retries that respect Retry-After. I wrote it when our sync job started failing on provider limits, and it kept us on a free plan. Tested with Vitest, published on npm.

ElementsConsoleNetworkEVM RPCMethodContractFunctionStatusTimeeth_chainIdok102 mseth_call0xA0b8…eB480x70a08231USDCbalanceOfok134 mseth_call0x8e76…02b60xf851a440Vyper_contractadminok98 mseth_call0xcA11…CA110x82ad56cbMulticall3aggregate3ok121 mseth_feeHistoryok104 msABIs from Sourcify

EVM RPC Inspector

A Chrome DevTools panel for web3 developers. It lists every JSON-RPC call of the page, one row per call even inside a batch, and decodes contract calls into the function name and arguments. ABIs come from Sourcify or Etherscan, and proxies and Multicall calls are opened up too. Needs only the storage permission.

MullRecordings12Record meetingRecording24:1324:1424:1524:1624:1724:1824:1924:2024:2124:22YouSystemWeekly product syncNoteTranscript42 minAnnaLet's ship onboarding this week.MarkThe import queue moves to the next sprint.YouI'll add progress for long files.AnnaAnd release timing: Friday?

Mull

Meeting transcription and live dictation for macOS. A native macOS app, a backend, and an MCP server so an AI agent can read the recordings and transcripts.

Last 16 weeksMonWedFriLessMoreEnglish lessons5/7Sports4/7Meditation3/7

Habit Tracker

Log your habits and see if you reach your goals. Expo web client, Hono and oRPC on the backend, Postgres, Playwright e2e tests, decisions written down as ADRs.

infowarnwarnerrorerrorauthapiuiloggerconsoleall levelsinfoauth: loginwarnapi: slowerrorui: crashsentrywarn, errorwarnapi: slowerrorui: crash

zerg

A small logging library for apps and libraries. Zero dependencies, written in TypeScript, works in Node.js and in the browser. Logs go to listeners, so you can plug in your own transport. Has tests and benchmarks, on npm since 2016.

Writing