Toronto, Canada · Open to remote roles

Software engineer

Zhili Mai

I build backend services, Rust developer tools and game clients. I work in Go, TypeScript, Rust and C++, and connect APIs, data workflows and client code with the builds and releases that ship them.

View as

All work, across three kinds of role.

What I work in

Backend and full stack

  • Go with Gin, Kratos and GORM
  • TypeScript with NestJS and LoopBack 4
  • React and Next.js
  • PostgreSQL, MongoDB, Redis, BullMQ
  • REST APIs and event indexing

Rust and developer tools

  • Rust with Tokio, Actix Web and Reqwest
  • Serde, Clap, typed SDK and API models
  • Asset packaging and streaming uploads
  • Anchor programs and event processing
  • Tauri desktop apps

Game client and engine

  • C++ and Unreal Engine
  • CEF browser integration
  • Lua runtime and debugging
  • Godot and C++ GDExtension
  • CMake, Unreal Automation Tool

Delivery and operations

  • Docker and Kubernetes
  • GitLab CI and Drone CI
  • Build, cook and packaging workflows
  • Release and version automation
  • Git and Linux

Selected work

Three samples from paid work, then independent projects. The rest of my client and employer work is described under Experience.

Contract work · 2024 – present

Anamon

A game with squads, quests, map exploration and tradable cards. I built its backend and worked on the web client.

  • Go game services for squads, levels, map exploration, energy, items, quests, rewards, friends and card trading, on PostgreSQL and Redis.
  • A NestJS card backend with persistent match identity, durable retries and safeguards around match finalization and rewards.
  • Rust/Anchor programs on Solana for card packs, rewards, redemption and escrow, with a Rust event stream that decodes game events.
  • Web client work in Next.js: wallet sign-in, the embedded Unity game, a slot mini-game with claim and mint, and pack opening.

Go · PostgreSQL · Redis · NestJS · MongoDB · BullMQ · Rust · Anchor · Next.js

LDFPlayer
ERC-1155 player shares, pausable.
LDFExchange
Prices trades from currency and share reserves. Buys are signed; fees go to the treasury.
LDFPlayerPack
ERC-1155 packs.
LDFPackOpen
Fulfils signed pack-open requests with player shares.
LDFContest
Paid entry. Winners claim with a Merkle proof; entries are refunded if a contest is cancelled.
LDFTournamentRegistry
Signed tournament registration.
LDFTreasury
Holds fees and tokens for operations.
LDFAccessManager
One set of roles across every contract.

UUPS upgradeable · OpenZeppelin · Foundry · Base

LeaguesContract suite

Contract work · 2025

Leagues

A fantasy sports platform where player shares trade on-chain. I wrote its smart contracts and worked across the backend, app and indexers.

  • Upgradeable Solidity contracts for player shares, packs, an exchange, paid contests and tournament registration, with EIP-712 signatures for buys, pack opening and registration.
  • Go APIs on Gin, GORM, PostgreSQL and Redis for player stats, lineups, contests and tournaments.
  • TypeScript indexers for trades, candles, supply and pack transfers, and a React trading app with smart-wallet and paymaster support.

Solidity · Foundry · OpenZeppelin · Go · PostgreSQL · Redis · TypeScript · React

Full-time work · Helix · 2023

HELIX land maps

Tooling that rendered a map image for every parcel in the HELIX land collection.

  • A React and TypeScript view places each parcel on a styled 3D city map with its address, area and tier.
  • A Puppeteer script runs ten parallel workers over the collection and writes one image per parcel, about 15,000 in all.
  • Upload scripts push the results to S3-compatible object storage and to IPFS.

React · TypeScript · Google Maps · Puppeteer · MinIO · IPFS

Open source · Public beta

Forge

A local-first workflow engine for coding agents, written in Rust.

  • Runs each agent task through a lifecycle of todo, in progress, review, merging and done, with an audit log and cancellation paths.
  • Gives every task its own isolated git worktree, and blocks merge until the task's CI steps pass review.
  • Ships a REST API, an MCP endpoint, a CLI and a React web UI in one binary, with SQLite persistence.

Rust · SQLite · REST · MCP · React

Open source

Smith and Agent Runtime

A terminal coding agent, and the Rust runtime underneath it.

  • Smith has a TUI and a headless mode, with layered configuration, coding tools, workspace and approval boundaries, and session continuity.
  • Agent Runtime is the reusable part: provider integration, the tool loop, cancellation, checkpoints, context handling and usage accounting, with deterministic testing.
  • The same runtime is shared by three products: Smith, Nyx and Forge.

Rust · TUI · Provider adapters · Deterministic tests

Game · Playable local slice

Zerkov

An extraction game in Godot 4, built around an offline raid loop.

  • One continuous path: title, bunker, loadout, deployment, combat and looting, extraction or death, summary, and back home.
  • Game systems for combat, grid inventory, raid progression, enemy AI and persistent player state with local saves.
  • HUD, inventory, tasks, maps and summary screens are bound to real local game state.

Godot 4 · Local saves · Native UI

Desktop app · In development

NovelKit

A local-first writing desk for long fiction, with a setting wiki beside the manuscript.

  • A React and CodeMirror editor on Tauri, with Rust commands as the only local file I/O boundary.
  • Projects are plain Markdown folders with a derived SQLite index for the wiki of characters, places and plot threads.
  • Hovering a name in the manuscript opens its card, and AI-assisted flows continue the text with that context.

Tauri 2 · Rust · React · TypeScript · CodeMirror 6 · SQLite

More projects

NyxRust

Self-hosted agent platform with chat adapters, provider integration, workflows, vector-memory options and WASM plugins.

FrameRillReact · Tauri · Rust

Video editor foundation with SQLite project persistence, an FFmpeg and Whisper pipeline, and preview and scrubbing performance work. In development.

rust-releaseRust

File comparison and hash library with asynchronous processing.

SparkTypeScript · Bun

Project scaffolding and a composable pack registry in a Bun monorepo.

WorkbenchNestJS · React

Plugin application with calendar and task widgets, a Kanban board, Docker and systemd deployment, and MCP publication.

Furry Culture2020 – 2021

Community web services: Spring and React Native services, Keycloak identity, self-hosted GitLab and Docker CI/CD, OAuth and object storage.

Native Godot addonsC++ · GDExtension

Reusable modules for gameplay abilities, inventory and weapon mechanics, with deterministic state and bounded protocols.

Hold Till DawnGodot · C#

Survival game work covering settlement, combat and playable milestones.

WorldTypeScript

Colony simulation with job and logistics systems.

VoxelWorldUnreal Engine 4 · C++

Prototype with gameplay actors, GameMode and Pawn, plugin and Blueprint work.

Experience and education

Oct 2024 – Present

Self-employed

Contract developer for a game studio. Several products developed under separate names.

Blockchain and Backend Developer

  • Designed and built the backend for all of the studio's games, from initial design through delivery.
  • Developed Go game services for player progression, squads, quests, map interactions, rewards and card trading.
  • Implemented Rust/Anchor card-pack and reward programs, with supporting Rust event-processing modules.

Feb 2026 – Mar 2026

Duo

Confidential client. Part-time.

AI Agent Platform Developer

  • Primary developer, with a second engineer reviewing. Built the NestJS control plane and Cloudflare Worker sandbox runtime for a multi-tenant AI assistant: agent orchestration, BullMQ chat processing, approvals, sandbox lifecycle and persistent workspace storage.
  • Added user-scoped integrations, credit usage tracking and React chat and session interfaces.

Dec 2022 – Oct 2024

Helix

Game platform. Later part-time work through January 2026.

Game Client, Creator Tools and Platform Development

  • Implemented Unreal client and studio integration changes across player controllers, game instance, main-menu game modes and native client code.
  • Built a Rust creator CLI, the Bifrost upload service and an HTTP SDK for asset packaging, streaming uploads, validation and retry handling.
  • Developed a Go/Kratos inventory service with NFT item and address APIs, contract-event handling, PostgreSQL/Redis integration and deployment tooling.
  • Maintained CI, release and client deployment tooling across platform and studio updates.

Oct 2020 – Dec 2022

Dataraction

Backend Developer

  • Developed website backend services using LoopBack 4 microservices.
  • Built the backend for a live interaction room where users chat and interact in real time.
  • Coordinated backend APIs across multiple teams and produced API documentation for integration work.
  • Supported Kubernetes deployment and management for the microservices.

2025

York University

Bachelor's Degree in Computer Science

Open source contributions

Merged pull requests in other people's projects.

ZeroClawRust agent runtime

Agent-managed scheduling with cron, at and interval job kinds, six job-management tools, a migration and run history.

ZeroClawRust agent runtime

Native structured tool calling for the OpenRouter and Anthropic providers, with provider test updates.

ZeroClawRust agent runtime

Verbose logging and observability work.

CoduxAgent terminal

Agent lifecycle indicators and terminal and task layout fixes.

godot-minigameGodot WeChat export

iOS pixel-ratio handling, loading-progress normalization and loading-frame behavior.

godot-minigameGodot WeChat export

Guard against synchronous registration of long audio streams, which was associated with input stalls.

HybridAuthPHP social login

QQ authentication provider.

Nextcloud social loginNextcloud app

QQ login integration, provider autoload changes and localization.

n8n Bark noden8n community node

Notification grouping.

Contact

[email protected]

Toronto, Canada. Open to remote roles in backend and full stack, Rust and developer tools, and game client work.