Skip to content
J.G Janindu Gayanga, home
Portrait of Janindu Gayanga, full-stack software engineer

Full-Stack Software Engineer

Janindu
Gayanga

Full-stack software engineer in Sri Lanka. I build Node.js, TypeScript and Go backends, React and Next.js frontends, and AI features like RAG, tool-calling agents and MCP servers. 3+ years on production systems, most recently a real-money gaming platform.

Colombo, Sri Lanka · Open to on-site, hybrid or remote roles

3+Years Experience
12k+Registered players on the iGaming platform
410+My commits to its Go backend
6Payment providers integrated
01

Full-Stack Systems

Node.js / NestJS and Go APIs with React and Next.js frontends, from UI to cloud

02

Real-Time Backends

WebSockets, SSE, Socket.io and Kafka, with Redis fan-out across pods

03

AI / LLM Features

RAG with pgvector, tool-calling agents, MCP servers and eval gates in CI

04

Cloud & DevOps

Docker, Kubernetes (K3s), GitHub Actions and ArgoCD at work; Terraform for AWS and GCP in my own projects

About Me

What I
build

I'm Janindu Gayanga, a full-stack software engineer in Colombo, Sri Lanka. I've spent 3+ years on production systems: Node.js, TypeScript and Go backends, React and Next.js frontends, and WebSocket services with real players on the other end. I'm open to on-site, hybrid or remote roles.

At BotCalm I started on Fintech, E-commerce and EdTech client projects. Since 2024 most of my time has gone into a real-money iGaming platform, with some shorter client projects in between. I'm one of the core team moving it from Node.js to Go, and I built the notification service, the vault service, the NOWPayments integration and the compliance gates. Along the way I also built crypto-exchange and payment integrations for client projects. I studied Software Engineering at SLTC.

In my own time I build projects I can talk through line by line: AskLK, a bilingual RAG assistant with agents and an MCP server; BookLK, an event-driven booking marketplace on Kafka and Kubernetes; QueueLK, a real-time queue system with an Expo app; and ApplyWise, a CV-tailoring app with an eval gate in CI. Each one has a load test or an eval report, and each says where it still falls short.

LocationColombo, Sri Lanka
B.Sc. (Hons) Software Engineering · SLTC · 2020–2024

Expertise

Skills & Technologies

Languages

  • TypeScript
  • JavaScript
  • Go
  • SQL

Backend

  • Node.js
  • NestJS
  • Express
  • REST / OpenAPI
  • GraphQL (DataLoader)
  • WebSockets
  • Socket.io
  • Server-Sent Events
  • Kafka
  • BullMQ
  • Microservices

Frontend & Mobile

  • React
  • Next.js
  • React Native (Expo)
  • Tailwind CSS
  • shadcn/ui
  • Zustand
  • TanStack Query
  • Redux Toolkit
  • PWA

AI / LLM

  • RAG
  • Tool-calling agents
  • MCP servers
  • LLM evals in CI
  • pgvector / hybrid search
  • Claude API
  • Gemini API
  • OpenAI API
  • Prompt-injection defence
  • Cursor · Claude Code · Copilot

Databases

  • PostgreSQL
  • Prisma
  • Redis
  • MongoDB
  • MySQL
  • Row-level security

Cloud & DevOps

  • AWS (EC2, S3, ECS Fargate, RDS, SQS)
  • GCP (Cloud Run, Pub/Sub, BigQuery)
  • Azure
  • Docker
  • Kubernetes (K3s)
  • Helm
  • ArgoCD
  • Terraform
  • GitHub Actions CI/CD

Testing & Observability

  • Jest
  • Vitest
  • Playwright
  • Testcontainers
  • k6 load testing
  • OpenTelemetry
  • Prometheus
  • Grafana
  • Sentry

Security

  • OAuth 2.0 / OIDC (PKCE)
  • JWT
  • RBAC
  • Multi-tenancy
  • Idempotency keys
  • Zod

Career

Work Experience

I started as an intern at NEWNOP in 2023, joined BotCalm as a trainee in 2024, and have been a Software Engineer there since July 2025. The work has covered Fintech, E-commerce and EdTech, with most of my time on iGaming since 2024. Outside work I build my own projects to try things the day job doesn't need yet.

B.Sc. (Hons) Software Engineering

Sri Lanka Technological Campus (SLTC)

2020 – 2024

IEEE CodeMania v2.0 · 2nd Runners-Up

July 2025 – Present

Software Engineer

BotCalm Private Limited · Sri Lanka

Core member of the team rebuilding a real-money iGaming platform, moving it from a Node.js/MongoDB monolith to 20 Go services on PostgreSQL, Redis and Kafka. My own pieces are the WebSocket notification service, the NOWPayments crypto integration, the vault service, the Vesant and GeoComply compliance gates (KYC, AML, geolocation) and the in-house support chat. We ship through GitHub Actions and ArgoCD to K3s on AWS.

August 2024 – June 2025

Associate Software Engineer

BotCalm Private Limited · Sri Lanka

Built and deployed REST APIs and full-stack apps on AWS for four production client projects in Fintech, E-commerce and Education. That included crypto-exchange and payment integrations (Changelly, EasyBit, MoonPay, PayCrypto, Rubic) with signed requests and verified webhooks.

March 2024 – July 2024

Trainee Software Engineer (Full Stack)

BotCalm Private Limited · Sri Lanka

Built full-stack features with Node.js, React and PostgreSQL on production projects. Promoted to Associate after four months.

May 2023 – November 2023

Software Engineer Intern

NEWNOP Private Limited · Sri Lanka

Built responsive pages for the Lallaloi platform in Next.js and Tailwind CSS, served assets from AWS S3, and fixed the UI defects QA found before release.

March 2020 – August 2024

B.Sc. (Hons) Software Engineering

Sri Lanka Technological Campus (SLTC) · Padukka

Honours degree in Software Engineering. Second runners-up at CodeMania v2.0 (IEEE Computer Society SLTC). Coursera: Cloud Computing Applications (Cloud Systems and Infrastructure).

Portfolio

Featured Projects

  • TypeScript · NestJS · Next.js 15

    AskLK: Bilingual AI Assistant with RAG, Agents and MCP

    An assistant a Sri Lankan clinic, school or company can point at its own documents. I wanted it to say "I don't know" rather than guess, so retrieval is hybrid (pgvector plus Postgres full-text, merged with Reciprocal Rank Fusion), every answer cites its sources, the agent waits for a human before any write, and an MCP server lets Claude Code search the same documents.

    • TypeScript
    • NestJS
    • Next.js 15
    • React 19
    • PostgreSQL
    • pgvector
    • Prisma
    • Redis
    AskLK case studyAskLK showcase on GitHubFull source available on request.
  • TypeScript · Next.js 14 · NestJS

    BookLK: Event-Driven Service Booking Marketplace

    Customers book time slots with salons, clinics and repair shops, vendors get paid out, and the platform keeps a commission. It is four services plus a job worker, joined by a transactional outbox to Kafka, with a Go WebSocket service for live updates. Payments run on Stripe test mode and the PayHere sandbox, and they are reconciled every night.

    • TypeScript
    • Next.js 14
    • NestJS
    • Go
    • PostgreSQL
    • Redis
    • Kafka (Redpanda)
    • MongoDB
    BookLK case studyBookLK showcase on GitHubFull source available on request.
  • TypeScript · NestJS · Next.js 14

    QueueLK: Real-Time Queue Management for Clinics

    A screen on the waiting-room wall and a page on the patient's phone, for Sri Lankan dispensaries, clinics and salons. Patients scan a QR code and see how many people are ahead of them, with nothing to install. The hard part was keeping token numbers gap-free and unique when everyone scans at once.

    • TypeScript
    • NestJS
    • Next.js 14
    • React Native (Expo)
    • PostgreSQL
    • Prisma
    • Redis
    • Server-Sent Events
    QueueLK case studyQueueLK showcase on GitHubFull source available on request.
  • TypeScript · Next.js 15 · NestJS 11

    ApplyWise: CV Tailoring Where Every Line Cites a Fact

    A web app, not launched yet, that breaks a CV into small editable facts, matches them to a job description, and writes a tailored CV and cover letter where each line cites the facts behind it. A verifier (rules first, then an LLM judge) strips anything unsupported. There is also a free ATS checker, an application tracker and a Chrome extension.

    • TypeScript
    • Next.js 15
    • NestJS 11
    • Prisma
    • PostgreSQL
    • pgvector
    • Redis
    • BullMQ
    ApplyWise case studyApplyWise showcase on GitHubFull source available on request.
  • Go · Next.js · React

    iGaming Platform: Go Microservices, Payments and Compliance

    A real-money gaming platform with live wallets, crypto and card deposits, withdrawals, bonuses and an operator admin panel. I'm a core member of the team moving it from a Node.js/MongoDB monolith to 20 Go services behind an API gateway. My own pieces are the notification/WebSocket service, the NOWPayments crypto integration, the vault service, the Vesant and GeoComply compliance gates, and the support chat.

    • Go
    • Next.js
    • React
    • TypeScript
    • WebSockets
    • Kafka
    • PostgreSQL
    • Redis
    iGaming Platform case studyProduction · code under NDA

More work

  • Nexora: Contact Centre CRM & Analytics

    Contact centre platform in production for a client, with schema-driven call logging, supervisor analytics, full-text search and three roles (Admin, Supervisor, Agent). Call categories and their fields are stored as data. A field's key can't change once created, and records are deactivated rather than deleted, so old calls still read correctly in an audit.

    NestJS · Next.js 14 · PostgreSQL · Prisma · Redis · Production client work

    Nexora architecture notes on GitHub
  • Offline Retail POS System

    Offline desktop POS running in a real shop. The barcode scanner is read as a keyboard and told apart from typing by keystroke timing. It handles weighing-scale barcodes, keeps money in integer cents and prints receipts through the Windows driver. SQLite runs in WAL mode, and a backup is taken after a bill (at most once a minute) and checked by reopening it. USB mirroring is optional. Licensing is tied to the machine.

    Electron · React · Node.js · SQLite · Client product

  • GC Property: Real Estate Listings

    Property listings site for Sri Lanka (gcproperty.lk). Filters live in the URL path, so "3 bedrooms in Colombo" is a real page that can rank. Listings come from a Strapi CMS on PostgreSQL, with media on S3-compatible storage.

    Next.js · React · Strapi · PostgreSQL · Client work

  • Crypto Trading Bot

    Personal Go bot on Binance USDT-M futures. Every hour it rebuilds a six-coin watchlist from volume and volatility. DeepSeek returns a strict-JSON trade decision, Gemini adds a news-sentiment read, and about fifteen Go risk gates decide whether the order is allowed. One position at a time, with Telegram alerts and a small dashboard.

    Go · Binance API · DeepSeek · Gemini · MongoDB · Personal project

  • Hotel & Travel Sites

    Two client sites. The hotel site is a React SPA whose reservation flow posts to the hotel's own booking API. The travel agency site is a static Next.js build with no third-party runtime dependencies.

    React · Next.js · TypeScript · Tailwind CSS · Client work

Get In Touch

Let's Connect

Open to full-time Software Engineer and Senior Software Engineer roles, remote or in Colombo, and to freelance projects. Email me or use the form.

janindugayanga10@gmail.comgithub.com/jani358linkedin.com/in/janindu-gayanga

Colombo, Sri Lanka · open to on-site, hybrid or remote