
Fit On Time
A workout pacing app: prep, work and rest timing with audio cues, so a planned 40-minute session doesn't turn into 70. Runs on-device, no account needed.
Flutter · Riverpod · Drift · ActivityKit · Live Activities
View on the App Store ↗WEB · MOBILE · CLOUD
I'm Kamal Thennakoon, a software engineer. I design systems, write production code, and see products through to release. Currently an associate tech lead.
Things I build outside work. Two are shipped, two are still in progress.

A workout pacing app: prep, work and rest timing with audio cues, so a planned 40-minute session doesn't turn into 70. Runs on-device, no account needed.
Flutter · Riverpod · Drift · ActivityKit · Live Activities
View on the App Store ↗
A browser extension for keeping YouTube use in check: daily watch-time and Shorts limits, streaks, and a whitelist so educational videos don't count against you.
Extension APIs · limit & streak engine
View on the Chrome Web Store ↗A desktop toolkit that turns AI-generated character media into usable 2D game assets: frame extraction, background removal, cleanup, alignment, and transparent sprite-sheet export.
Electron · React · Python FastAPI sidecar · ONNX · OpenCV
A 2D top-down strategy game with exploration, fog of war, combat and progression. Building it is what made me write Hexel Game Kit.
Flutter · Flame game engine · name pending
A few pieces of work I can talk about, not everything I've worked on. Most client names are under NDA, so those entries describe the engineering only.
Led a team rebuilding a legacy enterprise application while the old version stayed in production. Next.js and React apps in an Nx monorepo with a shared UI library and API layers, a NestJS backend using CQRS, and CI/CD on Nx affected-project pipelines. The old system was retired after the new one had run in production.
Built and owned the AWS side of a product: development, staging and production environments on ECS over EC2, with PostgreSQL, CloudFront, networking, IAM, secrets management, backups, monitoring and autoscaling, plus the CI/CD pipelines on top of it.
Led a team of five engineers on a sales enablement platform used by companies in the life sciences and healthcare sector to get up-to-date material to their sales teams. I handled architecture decisions, wrote production code, ran code review, and worked directly with the client on scope and technical direction. The platform runs across iOS, Android and web, with tens of thousands of enterprise users.
Built a hub-and-spoke SaaS property management system from scratch with a small team. A central platform app handles tenant lifecycle and public discovery, while every hotel runs as its own Frappe site with a dedicated database, so tenant data stays isolated without any row-level filtering. The system covers reservations, room inventory with availability and blocking, rule-based daily pricing, and a React 19 admin with a FullCalendar booking calendar embedded in Frappe.
Notes on systems I've built and problems I had to solve properly.
From building Fit On Time: audio sessions, ActivityKit, and background timers.
I've been in the industry for more than half a decade, from intern to associate tech lead. In that time I've worked on projects for Fortune 500 companies and on startup products, across web, mobile and cloud infrastructure.
Outside the job I like making things: apps, extensions, a game, AI experiments, plus a couple of side hustles I'm not ready to talk about yet.
BSc (Hons) in Information Technology, specialising in Software Engineering, SLIIT. Co-author of PROBEXPERT (IEEE, 2022) ↗
Work, collaboration, or a question about something I've written: send a message and I'll reply.