Full-stack engineer from Colombo, Sri Lanka. I spend most of my time on backend systems where correctness under concurrency matters — wallets that must never double-credit, queues that must never hand two people the same number, bookings that must never sell one slot twice.
Production · Go · TypeScript · NestJS · Next.js · PostgreSQL · Redis · Kafka
Scale · 10,000+ concurrent WebSocket connections at sub-100 ms
Migration · Led a Node.js → Go move of the hot paths after profiling proved it was CPU-bound
Infra · Docker · Kubernetes (K3s) · Terraform · ArgoCD GitOps · AWS
Right now · Bilingual RAG (pgvector, hybrid retrieval) and real-time SaaS for Sri Lankan businesses
|
Bilingual AI assistant Ask in Sinhala, get Sinhala — from an English document. Multi-tenant RAG on pgvector, hybrid retrieval (vector + full-text merged by Reciprocal Rank Fusion) in one SQL query, four anti-hallucination layers, SSE streaming, 14 KB embeddable widget.
|
Real-time queue & tokens Take a number from your phone, watch the counter from the waiting room. Gap-free numbering under
concurrency (
|
Booking marketplace Double-booking is a correctness problem, not a UI problem. Idempotency keys, Redis locks and a row lock inside a serializable transaction — with a concurrent test that asserts exactly one winner.
|
| iGaming platform (production) | 18 Go microservices behind an API gateway · Kafka events · the wallet/ledger service where four independent layers stop a player being double-credited · 10,000+ live WebSocket connections |
| Infrastructure | Terraform-provisioned AWS → K3s + ArgoCD GitOps · Prometheus, Grafana, Loki, Tempo · a dev environment that costs tens of dollars instead of ~$1,000/month managed |
| Go trading bot | Binance futures, indicators computed in Go, an LLM as the proposal and ~15 deterministic risk gates as the decision — each gate added after a real losing trade |
| Retail POS (Electron) | Offline-first desktop point of sale · integer-cent money in a shared module · verified backups after every bill |


