Featured Work
What each problem was, what I decided, and how it turned out
About
I'd rather work where the constraints are real and the answer isn't obvious yet.
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. My production work is full-stack web and mobile software, in whatever domain the client is in. My research is VR and AR in the browser, which is a stranger problem than it sounds, because a browser gives you almost none of what a native XR app takes for granted.
- Production delivery
- Features shipped end to end on platforms clients use daily
- Not tied to a domain
- Lab data, live sports gaming, team messaging. The engineering carries over
- Applied research
- VR and AR that run in a browser, with nothing for the user to install
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 my final-year project I split the work between an IoT device, an inference service, 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 production client platforms, 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.
Immersive & Emerging Interfaces
Getting VR and AR to run in the one place every user already has: the browser.
In practice: I research browser-based VR and AR, work that started as a research internship under Dr. Damitha Sandaruwan at UCSC. I also developed UI for META11's AI-driven virtual cricket platform.
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 client products. The current one is a laboratory information management system for 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)
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.
Education
- Master of Computer Science
University of Colombo School of Computing (UCSC)
Part time, alongside full-time engineering work.
- BSc (Hons) in Information Technology, specializing in Software Engineering
Sri Lanka Institute of Information Technology (SLIIT)
- BSc in Information Systems
University of Colombo School of Computing (UCSC)
Latest from My Blog
Notes on how the tools I use every day work underneath
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 ...



