Founding engineer who ships products end-to-end — solo when the team is just me, leading when it isn't.
3 years shipping production SaaS, working on AI infrastructure.
llmframe
Open-sourced a production-grade RAG + multi-LLM framework — hybrid retrieval, cross-encoder reranking, swappable providers.
Elite Varan
Solo-built multi-tenant matrimony SaaS — schema-per-tenant Postgres, 100+ API routes, in production.
Multi-tenant AI mirror-site platform
Worked as the AI engineer on a multi-tenant B2B platform that turns customer websites into AI-friendly mirrors — crawl, structured extraction, translation, automated deploy. Live in production.
OwnStory
A live product that turns photos, videos, and voice notes into a private story page people unlock with one QR scan — for gifts, weddings, memorials, birthdays. Real users, real traffic, no app required. I led the 3-month pivot that shipped it as three production surfaces.
Envoy Business Unit Policy API
Led a five-engineer team building an enterprise insurance management platform — registry-driven, configurable, deployed on Kubernetes.
Aug 2025 – Present· Now
Founding Engineer · OwnStory
UK-based, remote — founding engineer, reporting directly to the founder/CEO
Working directly with the founder/CEO. OwnStory turns photos, videos, and voice notes into a private story page people unlock with one QR scan — for gifts, weddings, memorials, birthdays. Real users, real traffic, no app required. Led engineering through a 3-month product pivot post-AI-boom, shipping three production surfaces (ownstory.com, eternstory.com, eternaltribute.com).
Next.jsTypeScriptDrizzlePostgreSQLTurbo monorepoAI pipelineJan 2025 – Jul 2025
Software Engineer (L3), Team Lead · Apptimus Tech — Envoy Finance
Sri Lanka
Led a five-engineer team architecting and developing the Envoy Business Unit Policy API — a Django 5.1.6 REST platform handling the full insurance lifecycle, double-entry financial accounting, and a configurable incentive engine. 30+ controllers, 40+ models, 50+ endpoints across 3 modular apps. Registry-driven design and recursive logic-tree evaluation let business users define new metrics and rules without code changes. Production-deployed on Kubernetes via Bitbucket Pipelines. Used Cursor / Claude in production daily and led the team's adoption of AI-native workflows.
Django RESTPythonMySQLJWT authKubernetesCI/CDArchitectureTeam leadAI-native workflowMar 2023 – Dec 2024
Software Engineer (L1 → L2) · Apptimus Tech — multiple client engagements
OwnStory Admin Panel · HR SaaS · Seafarer Chat App
Led development of multi-tenant workspace support and customizable dashboards on the OwnStory Admin Panel. Stepped up to lead an HR SaaS platform during senior-engineer hiring gaps — successful delivery led to promotion from Associate to Software Engineer. Shipped a Flutter chat app with real-time messaging and offline sync.
Next.jsDjango APIsFlutterReduxSSR / SEO2023 – 2024
BEng (Hons) Software Engineering · London Metropolitan University (UK)
Upper Second Class Honours
Software engineering degree completed alongside full-time work at Apptimus Tech.
Education2019 – 2023
National Diploma in Technology (IT) · University of Moratuwa
GPA 3.2
Foundation in software engineering and IT systems.
Education
Solo shipping is choosing your debt deliberately
Shipping fast isn't picking speed over quality. It's picking which debts to take on, which to refuse, and naming the cost upfront so the bill doesn't surprise you later.
Why I built a config registry instead of writing more controllers
When your business changes rules faster than engineering can deploy, the right move isn't to ship faster — it's to take engineering off the critical path.
I paused a working SaaS in production. Here's the math behind the call.
Elite Varan still runs at elitevaran.com. The platform works, the architecture holds, the kundali engine ships. I stopped actively building it anyway. Here's why — and why "knowing when to stop" is the founder skill nobody puts on a slide.
How I use Claude Code in production every day
AI-native isn't "let the AI write the code." It's a workflow with specific shapes for specific tasks — and a list of things I never delegate.
Forced tool use — getting Claude to return structured output that's actually reliable
Asking the model nicely for JSON works in demos and fails in production. Forced tool use is the pattern that turns 'usually returns valid JSON' into 'returns valid JSON or fails loudly.'
3 years, four founding-engineer-shaped modes — solo on a production SaaS, founding engineer at an early-stage startup, lead architect on an enterprise platform, AI engineer on complex domain problems. End-to-end ownership.
Sri Lanka
Always happy to talk about engineering, AI, or building products.