A multiplayer 3D game
Contract · May 2026 - Oct 2026 · part-time
A team of 3 app developers built a real-time multiplayer 3D dice game. It ran on their laptops only. They needed it live on a $0 database budget, for players on slow networks.
I owned the production platform, infra, reliability, and the architecture across services. The team kept building game features. I worked inside their repos and their weekly cadence, with a written report every week.
Measured results
Start Game latency
965 ms
from 3,921 ms median (4x)
Database awake time
1.6 h/day
from 24 h, still on a $0 plan
First view on 3.6 Mbps
4.3 s
from 10.9 s
Download after click
990 KB
from 3,922 KB
What I built
Local-only to production
- Deploy pipelines for all 6 services: CI/CD, boot smoke test, deploy by version tag, missing-secret guards.
- Blue-green deploy for the client and always-warm machines, which removed cold-start 502 errors.
- A 3-region game server that picks its home region from the countries of its players.
A $0 database that stays up
- The free database quota ran out on day 16 of each month and blocked production.
- I redesigned the access pattern. The database is now awake about 1.6 h a day against a 12.4 h budget.
Faster for slow networks
- Start Game: game-server round trips 7 to 2, database queries 12 to 2.
- Compressed textures, tree-shaking, and an earlier scene start cut the first download by about 75%.
- Moved public assets to a CDN.
Data pipeline
- A Postgres message queue on a host that does not allow the extension, checked on a database branch at PR time.
- A background worker built from zero: dead-letter queue, idempotent finalize (safe to run twice), retries.
Reliability and security
- One JWT contract with dual-key secret rotation, timeouts and retries on every service call.
- An origin that accepts CDN traffic only, with mTLS and firewall rules.
- Handled production incidents: a dead-region rebuild, a quota block, a stuck queue message.
Handover
- A one-command local stack for all services and an end-to-end local match test.
- 11 decision records, 22 weekly reports, runbooks, and a shared AI coding setup for the team.
The system
- API backend
- Lobby service
- Game server
- 3D web client
- Background worker
- Shared TypeScript contracts
Container hosting in 3 regions, serverless Postgres, object storage, CDN with a firewall
About 6 months, part-time. 261 commits across 6 service repos.
Have a product that needs to go live, or a live product that costs too much or runs too slow?
Message me on LinkedIn