
Featured Work
What each problem was, what I decided, and how it turned out

MCQ Karamu
MCQ practice app on Google Play for Sri Lankan students sitting A/L and O/L exams. Built with Akila Kavinda.
Past paper practice here is a stack of PDFs, and students sit the exam in Sinhala, Tamil, or English depending on where they went to school. Language is the first thing an exam app drops, and most of these students have no card to pay with.

Ideamart & MSpace Subscription Service
Open source Express service that puts Dialog Ideamart and Mobitel MSpace subscription billing behind one API. Pulled out of MCQ Karamu and released on its own.
Carrier billing is the only realistic way to charge a Sri Lankan student with no bank card, and each telco has its own OTP flow and documentation that is hard to follow. I wanted one set of endpoints the app could call without knowing the network, and a way to stop one subscription being passed around a class.
About
I finished two bachelor's degrees, software engineering at SLIIT and information systems at UCSC, and I'm working through a master's at UCSC now while engineering full time. Most of my production work has been laboratory testing and real-time platforms. Most of my research has been machine learning and AR in the browser, which is a stranger problem than it sounds, because a browser gives you almost none of what a native AR app takes for granted. What connects the two is that I'd rather work where the constraints are real and the answer isn't obvious yet.
Production delivery
Features shipped end to end on platforms clients use daily
Two domains
Lab test management, and a real-time gaming platform
Applied research
AR in the browser at UCSC, and ML that ran on cheap home hardware
Engineering Domains
What I can do, and the tools I do it with.
Architecture & System Design
Splitting a system into services and contracts that survive the next requirement change.
In practice: I designed a reservation platform as microservices behind an ESB, and a multi-role system where a passenger mobile app and an agent web portal share one API. In a research system I split the work between an IoT device, ML inference, and a mobile app.
Core Engineering
Typed, reviewable code, and fundamentals that move with me between languages.
In practice: I deliver features end to end on a production laboratory testing platform, review peers' code, and mentor junior engineers. Four language ecosystems so far, and the switch costs less each time.
Data & Infrastructure
Modeling state, then keeping the client and the server in agreement about it.
In practice: Implemented NextAuth authentication flows and built on a TanStack Query server-state layer for a LIMS used by Australian testing laboratories. Across projects I have modeled both relational and document schemas, choosing between them per access pattern.
Applied AI & Emerging Interfaces
Getting machine learning and unusual interfaces into products people use.
In practice: I built speech recognition and image classification pipelines for fall and anomaly detection, developed UI for META11's AI-driven virtual cricket platform, and researched browser-based AR under Dr. Damitha Sandaruwan at UCSC.
Experience & Education
My academic and professional journey so far
Behaviol (Pvt) Ltd | Colombo, Sri Lanka
Senior Software EngineerOwn delivery of features end to end on a laboratory information management system used by Australian testing laboratories. Review peers' code and mentor the junior engineers on the team.
Software EngineerBuilt JSON-driven forms for a laboratory information management system, so a new test type reaches lab analysts without a code release. Implemented the NextAuth authentication flows and the TanStack Query server-state layer.
Associate Software EngineerBuilt UI components for META11, an AI-driven virtual cricket platform.
University of Colombo School of Computing (UCSC)
Master of Computer ScienceStudying part time while working full time as an engineer.
University of Colombo School of Computing | Colombo, Sri Lanka
Research InternResearched browser-based augmented reality under Dr. Damitha Sandaruwan. The question was how much AR a mobile browser can do when the user installs nothing.
CreativeHub Global | Colombo, Sri Lanka
Software Engineer InternBuilt a React Native messaging app for business teams. Used Redux-Saga for state and Firebase for push notifications on both iOS and Android.
Sri Lanka Institute of Information Technology (SLIIT)
BSc (Hons) in Information Technology Specializing in Software EngineeringUniversity of Colombo School of Computing (UCSC)
BSc in Information Systems
Latest from My Blog
Sharing insights on development, programming, and technology
Should you proxy through Server Actions or call APIs directly?
You've got a Next.js app, and it needs to talk to a backend that isn't Next.js, maybe a Python service, a Rails app, or plain Express. The first archi...
How JavaScript's event loop really works
Click a button on a page while a network request is still loading in the background, and nothing freezes. The click registers right away, an animation...
Beyond the breakpoint: how media queries actually work
You're on a site, the layout looks fine, and then you drag the browser corner to make the window smaller. The sidebar disappears, the nav collapses in...
How useEffect works behind the scenes in React
You've probably called useEffect hundreds of times and wrestled with its dependency array at least once. But what does React actually do when it hits ...