Index finger pointing up icon

From: Russia

Location: Almaty, KZ

On Useme since 24 September 2026

About me

I build the part of a fintech product where a wrong number costs money: payment rails and custodial wallets across Bitcoin, Ethereum/ERC-20, Tron/TRC-20 and TON, double-entry ledgers that reconcile against the chain, and pipelines that turn bank statements and receipts into posted entries.

What I have shipped:

- A ledger core in Go that two unrelated products adopted unchanged, which is the real test of whether an accounting model is right. - A payout rail where every batch dry-runs first: it shows the fee and the exact debit per row before anything is sent, and lists the rows that will not go out. - A reserve reconciliation that compares obligations to users against on-chain balances every five minutes and freezes withdrawals for an asset automatically when the solvency invariant breaks.

Go, Python, TypeScript, PostgreSQL, Docker. What I optimise for is not speed but provability: the balances agree afterwards, and a discrepancy can be explained.

Available for contract work, remote.

CV / Résumé

Jan 2025 - Now

Backend Engineer: payment rails and wallets

Fintech client (NDA)

Payment rails and custodial wallets across Bitcoin, Ethereum, Tron and TON behind one internal ledger. Built the payout rail where every batch dry-runs first: the fee and the exact debit per row before anything is sent. Go, PostgreSQL, Docker.

Jan 2024 - Dec 2024

Backend Engineer: ledger core and reconciliation

Crypto exchange (NDA)

Double-entry ledger core in Go, later adopted unchanged by a second product. Reserve reconciliation against on-chain balances every five minutes; withdrawals for an asset freeze automatically when the solvency invariant breaks.

May 2023 - Dec 2023

Backend Engineer: financial model backend

Finance SaaS (NDA)

Backend for a two-year monthly expense plan by category, where dragging one month's ceiling recalculates the rest. 313 endpoints and 9,333 tests, in daily production, maintained by one person. Python, FastAPI, PostgreSQL.

Portfolio

Reserve reconciliation: ledger against the chain

Every five minutes, obligations to users are reconciled against what is on-chain: per asset, accounting for transfers in flight, fees and platform funds. When the solvency invariant breaks, withdrawals for that asset freeze automatically.

Portfolio item

Reserve reconciliation: ledger against the chain

Reserve reconciliation: ledger against the chain

Every five minutes, obligations to users are reconciled against what is on-chain: per asset, accounting for transfers in flight, fees and platform funds. When the solvency invariant breaks, withdrawals for that asset freeze automatically.

Expense corridor: a two-year plan

A two-year monthly expense plan by category, where dragging one month's ceiling recalculates the rest. Each month shows its limit, income, obligatory payments and the room left up and down. 313 endpoints, 9,333 tests, in daily production.

Portfolio item

Expense corridor: a two-year plan

Expense corridor: a two-year plan

A two-year monthly expense plan by category, where dragging one month's ceiling recalculates the rest. Each month shows its limit, income, obligatory payments and the room left up and down. 313 endpoints, 9,333 tests, in daily production.

Payout batch dry run

Before a 500-row payout register is sent, the system shows how many rows will go out, how much recipients receive and how much leaves the account with fees. Rows that will not go out are listed with the reason and the line number in the file.

Portfolio item

Payout batch dry run

Payout batch dry run

Before a 500-row payout register is sent, the system shows how many rows will go out, how much recipients receive and how much leaves the account with fees. Rows that will not go out are listed with the reason and the line number in the file.