Skip to main content

Dilsher Singh

Senior Full Stack Engineer

I build financial systems that have to be right every time.

TypeScript/Node.js and React/Next.js in Hong Kong. I own a settlement pipeline that has paid investors 12,500+ times over 17 consecutive months, 100% on time.

  • Hong Kong Permanent Resident
  • Team lead (5 engineers)
  • Hacken-audited settlement contracts (9.1/10)
Dilsher Singh
Financed assets on the backend I own
1,500+
Ledger-to-settlement discrepancies since April 2025
0
Corrupted records repaired, zero balances changed
13
Repositories where I gate merges
10

About Me

I joined Dualmint in 2022 and shipped the first production version of its equipment-financing marketplace across the Next.js client, the Node.js/Express backend and the settlement contracts, which Hacken audited at 9.1/10. Since my promotion to senior in 2025, I own the TypeScript backend for 1,500+ financed assets, lead a team of five engineers and gate merges across 10 repositories.

Most of my work is about making money movement boring. Every payout is held until IoT telemetry, bank data and operator reports agree. A daily idempotent reconciliation job has found zero ledger-to-settlement discrepancies since April 2025, and event-log replay repaired 13 corrupted records without changing a single user balance.

Settlement runs onchain, so I also work in Solidity, EIP-712 signing and multi-chain infrastructure, including a Chainlink CRE workflow live on Solana mainnet backed by a US$90,000 Solana Foundation grant. I also designed the AI-assisted process my team ships through: coding agents working from PRDs and scoped backlog issues, with strict TypeScript, pre-commit checks and human review on every merge.

Currently
Senior Full Stack Engineer at Dualmint
Leading
A team of five engineers
Based in
Hong Kong · Permanent Resident
Education
BEng Computer Engineering, HKUST (2018–2022)

Selected work

Payouts that wait for agreement

Investor payouts are held until three independent data sources agree, and a daily replay job checks the ledger against settlement.

12,500+ payouts over 17 consecutive months, 100% on time

Read how it works

Problem

Investors are paid from the revenue operators earn with financed machines. Every cycle has to pay out on time, and no cycle can pay out on bad data.

Constraints

  • Revenue is reported by three independent sources: IoT telemetry, bank data and operator reports. They can disagree.
  • A payout is money. Once it has gone out, it cannot be clawed back casually.

Design

  • Three-way reconciliation gates every payout. Nothing is paid until telemetry, bank data and operator reports agree.
  • A daily idempotent job replays the previous 24 hours of settlement events against the ingested records and emails an audit report.
  • The job sorts discrepancies into three classes and fixes only the actionable one automatically.
  • It never lowers a balance automatically, because that would destroy authoritative data. It logs the case and a human decides.
  • Corrupted records are repaired by replaying the event log, with the pre-repair state verified first.

Result

  • 12,500+ payout cycles over 17 consecutive months, 100% on time.
  • Zero ledger-to-settlement discrepancies since April 2025.
  • 13 corrupted records repaired by event-log replay, with zero balances changed.

Migrating a live platform without stopping trading

Staged upgrades of a revenue-carrying marketplace from Next.js 12, React 17 and web3.js to Next.js 15, React 19 and ethers v6.

Zero trading interruption across the whole migration

Read how it works

Problem

The marketplace carries revenue, and it was running on aging versions: Next.js 12, React 17 and web3.js.

Constraints

  • Trading could not stop. Every step had to ship to the live platform without interrupting it.
  • Three major upgrades in one combined release would have been hard to reason about and hard to reverse.

Design

  • The work was staged as separate upgrades: Next.js 12 to 15, React 17 to 19, and web3.js to ethers v6.
  • Each stage shipped on its own, so a regression could only come from the one change that had just landed.
  • One upgrade was deliberately rolled back when shipping safety warranted it, then redone later. Waiting a cycle on an upgrade is cheap; interrupting a live market is not.

Result

  • Zero trading interruption across the whole migration.

An AI-assisted SDLC a team actually uses

Coding agents work from PRDs and scoped backlog issues. Strict TypeScript, lint, pre-commit checks and human review gate every merge.

Adopted by all 5 engineers across 10 repositories

Read how it works

Problem

Coding agents can produce a lot of code quickly. The goal was to get that speed without lowering the quality bar on systems that move money.

Constraints

  • It had to work for the whole team, not for one person.
  • It could not weaken review. Every change still has to be understood by a human before it merges.

Design

  • Work starts as a PRD and is broken into scoped backlog issues, so an agent always has a clear, bounded task.
  • Each repository carries its own agent scaffolding, AGENTS.md and agent skills, describing how that codebase is built and checked.
  • Agent-generated code passes the same gates as any other code: strict TypeScript, lint and pre-commit checks.
  • A human reviews every merge.
  • This is an engineering process, not an AI product.

Result

  • Adopted by all 5 engineers across 10 repositories.
  • Merge gatekeeper on 435 of 592 client merges.

Personal project

Screenshot of AI collaborative document editor

AI collaborative document editor

A Notion-style editor where several people edit the same document in real time. Edits merge through Yjs CRDTs synced over Liveblocks, with live cursors and presence, and documents are shared by invite with owner and editor roles. A Cloudflare Worker adds the AI features: ask questions about a document with OpenAI, or summarize it and translate the summary with Workers AI models.

Next.jsTypeScriptLiveblocksYjsCloudflare Workers AIOpenAI APIFirestoreClerk
(opens in a new tab)

Earlier work

Screenshot of Ipseity Network

Ipseity Network

A decentralized platform where individuals keep full ownership of their personal data and share it with companies on their own terms, backed by homomorphic encryption so analysis never requires decryption. I built the web and React Native clients and the REST APIs behind them.

ReactReact NativeJavaScriptREST APIs
(opens in a new tab)

Experience

Jan 2025 - Present

Senior Full Stack Engineer · Dualmint, Hong Kong

  • Own the TypeScript backend for 1,500+ financed assets and the settlement pipeline that pays investors.
  • Lead a team of five engineers and gate merges across 10 repositories.
  • Designed the AI-assisted process the team ships through, with human review on every merge.
  • Onchain work includes a Chainlink CRE workflow live on Solana mainnet, backed by a US$90,000 Solana Foundation grant.

Jun 2022 - Jan 2025

Full Stack Engineer · Dualmint, Hong Kong

  • Shipped the first production version of the equipment-financing marketplace across the Next.js client, the Node.js/Express backend and the settlement contracts.
  • The settlement contracts were audited at 9.1/10 by Hacken.

Apr 2021 - Sep 2021

Software Engineer Intern · Ipseity Network

  • Built React and React Native interfaces for a data-analysis platform built on homomorphic encryption, letting companies compute over user data without ever decrypting it.
  • Designed and implemented the RESTful APIs backing both the web and mobile clients.

2018 - 2022

BEng Computer Engineering · Hong Kong University of Science and Technology

Skills

Backend
  • TypeScript
  • Node.js
  • Express
  • REST APIs
  • PostgreSQL
  • MongoDB
  • Webhooks
  • Redis/BullMQ
  • Vitest
Frontend
  • React
  • Next.js
  • Tailwind CSS
  • TanStack Query
  • Zod
  • Recharts
Infra
  • AWS (EC2, SES, CloudWatch)
  • PM2
  • Docker
  • GitHub Actions
  • Sentry
  • Datadog
Onchain
  • Solidity
  • Hardhat
  • Foundry
  • OpenZeppelin
  • ethers.js
  • viem
  • EIP-712
  • Chainlink CRE
  • Solana Anchor
Engineering process
  • Claude Code
  • Agentic coding with human review
  • TDD

GitHub Contributions

Loading contribution activity…

Get in Touch

Email is the quickest way to reach me. I am also on LinkedIn and GitHub.

Hong Kong SAR

dilsher07singh@gmail.com