PORTFOLIO 2026
VEYANGODA · LK
Open to senior engineering roles

Sachintha
Antany.

Software Engineer building AI agents, MCP integrations, and cloud-native platforms. Six years shipping production systems across AI, full-stack, mobile, and enterprise automation for leading organisations across Sri Lanka.

Track Record2019—2026
6+
Years experience
17+
Projects shipped
12+
Enterprise clients
80%
Paper reduction
01  /  About

Engineering digital transformation

Six years building AI-powered products, cloud platforms, and enterprise automation. From MCP servers and LLM agents to Flutter apps and infrastructure-as-code.

▲ A1

AI agents & LLM integration

MCP servers, Vercel AI SDK, multi-model architectures (Gemini, Claude, Groq/LLaMA). Building autonomous cognitive engines over enterprise ERPs, conversational commerce agents, and AI-driven workflow automation.

▲ A2

Cloud platforms & IaC

Google Cloud Certified. Cloud Run, Terraform, Docker, internal developer platforms. Designing single-tenant infrastructure with automated provisioning, RBAC, and approval gates.

▲ A3

Full-stack & mobile

Flutter (Clean Architecture + BLoC), Next.js, Spring Boot. Production apps on Play Store & App Store with offline-first sync, SAP B1 integration, and enterprise workflow automation across 12+ clients.

Trusted by leading organisations
★ Finetech SANASA Dilmah Sarvodaya Finance Litro Gas Lanka DFCC Bank Enfection Console Ocean Maritime Forbes Walker BNS Music Global Solutions
02  /  Skills

Technical stack

The tools and technologies I reach for to build production systems across mobile, backend, cloud, automation, and the unloved glue in between.

AI agents & integration
/01
Model Context Protocol (MCP)Multi-model orchestration Agentic workflowsTool-use architectures Gemini / Vertex AIClaudeGroq / LLaMA Vercel AI SDKMultimodal ingestion Google OR-Tools SAP B1 Service LayerOData
Languages
/02
PythonTypeScriptJavaScript DartJavaSQLHCL (Terraform)
Cloud & IaC
/03
GCPCloud RunTerraformCloud BuildDocker VercelFirebaseSupabaseRailwayGitHub Actions
Web frameworks
/04
Next.jsReactNestJSAngular 19 Spring Boot 3FastAPIFlaskNode.js ExpressStarletteUvicorn
Databases
/05
PostgreSQLMySQLSAP HANA Cloud SQLPrismaFirestoreRedisSQLite
Mobile stack
/06
FlutterClean ArchitectureBLoC Pattern Drift SQLiteOffline-firstAndroidiOS GoRouterGet_it / Injectable
Architecture patterns
/07
MCP ProtocolClean Arch.IaC (Terraform)MVVMMVC RESTful APIsStreamable HTTPSingle-tenantOffline-firstCode Generation
Tools & automation
/08
Git / BitbucketFigmaTailwind CSS OAuth 2.0 / JWTGoogle Apps ScriptAppSheet APSchedulerFFmpeg
03  /  Experience

Professional journey

Building AI agents, cloud platforms, and production systems across full-stack and mobile. One organisation, many product surfaces.

01
CURRENT Dec 2019 — Present · 6+ Years
Software Engineer
Finetech Consultancy Pvt Ltd
📍 Nawala
Sri Lanka

Building AI-powered products, cloud platforms, and enterprise automation for major Sri Lankan organisations across finance, insurance, manufacturing, and distribution. Independently researched and built MCP servers bridging SAP Business One with Gemini Enterprise, designed an Internal Developer Platform (IDP) with Terraform IaC, and shipped conversational AI agents with multi-model architectures.

Mobile products are built on Clean Architecture + BLoC with offline-first Drift SQLite sync, GPS check-in, OCR document processing, and deep ERP integration. Automation spans AppSheet low-code forms, Google Apps Script orchestration, and Cloud Run microservices, replacing paper-based operations across 12+ client organisations.

6+ Years at Finetech
20+ Automation Systems
80% Paper Reduction
12+ Enterprise Clients
  • Built a custom MCP server bridging SAP Business One with Gemini Enterprise, exposing 75 read-only tools across 10 business domains on Cloud Run with OAuth 2.0, enabling 15x faster data retrieval through natural language
  • Built Hive Trendz, an autonomous news-to-post pipeline using LLaMA 3.3 70B (Groq API), FFmpeg video editing, and direct Facebook & Instagram publishing
  • Delivered 20+ workflow automation systems using AppSheet, Apps Script, and Cloud Run microservices for Sarvodaya, Dilmah, SANASA, Litro Gas, DFCC, GSS, Finetech, BNS Music
  • Integrated SAP B1 (HANA/SQL) into payment workflows, multi-level approval mechanisms, and HRIS digitisation
  • Led full-cycle development of Timespot, covering GPS check-in/out, task & sub-task tracking, and leave & WFH approval workflows. Live on Play & App Store
  • Built Litro Gas SPO Hub & Sales POS with offline-first dealer visit management, promotions tracking, and island-wide gas distribution recording on Drift SQLite background sync
  • Architected DocIt, an OCR-powered Document Management System with full-text search, dynamic field indexing, and Flutter Clean Architecture
  • Built BNS Music OPMS, a multi-level digital approval workflow (Production to Finance to Director) that replaced manual job sheets, with budgeted vs actual cost tracking
  • Developed Flutter Feature Generator CLI that scaffolds ~25-file Clean Architecture + BLoC + Drift + Spring Boot features in one command
  • Mentored developers on Clean Architecture patterns, GCP integration, and cross-team system design
05  /  Projects

Selected work

Production systems, personal builds, and open tooling. A sample of the last six years of shipping.

01 / FEATURED
Finetech · Solo R&D Initiative · Production

SAP Business One AI Integration MCP Server for Gemini Enterprise

Neither SAP nor Google offers a native integration between SAP Business One and Gemini. I independently researched SAP's Service Layer OData API and designed a custom Model Context Protocol (MCP) server from scratch, transforming SAP Business One from a transactional repository into an autonomous cognitive engine. Rather than navigating dozens of nested SAP windows and static Crystal Reports, this architecture enables real-time natural language querying, cross-entity reconciliation, proactive anomaly detection, and automated document generation.

The server exposes 75 read-only MCP tools across Procurement, Sales & CRM, Financials & Accounting, Inventory & Assets, Contracts & Service, and System & Metadata. Gemini orchestrates multi-step operations across these tools: autonomous 3-way PO matching that cross-references purchase orders, GRPO receiving slips, and vendor invoices to flag quantity/price discrepancies automatically. Intelligent PR/PV generation where Gemini parses an uploaded vendor invoice PDF via multimodal ingestion, validates vendor codes and GL accounts against live SAP data, and produces a complete purchase requisition with zero manual data entry. Dynamic cash flow analysis combining bank statements, incoming payments, vendor payments, and open receivables to calculate rolling net cash position and flag liquidity shortfalls. Forensic inventory variance detection comparing physical counts against perpetual stock ledgers to identify shrinkage, dead stock over 90 days, and carrying cost impact. Customer margin intelligence computing gross profit per customer and flagging margin dilution from extended payment terms or heavy discounting.

Combined with Google Workspace, the AI cross-references SAP data with Drive spreadsheets, correlates Gmail threads with SAP transactions, and synthesizes answers from multiple sources into a single response. Executives get revenue summaries, margin health, and aged debt overviews in plain language without needing SAP desktop clients. Estimated 80%+ reduction in AP/procurement processing time and 15x faster daily data retrieval.

PythonMCP SDKStreamable HTTP SAP B1 Service LayerODataGemini Enterprise Google WorkspaceCloud Run OAuth 2.0 + PKCEJWT / JWKSDocker SAP HANA
02 / FEATURED
Finetech · Solo Build · AI Agent Layer · Production

SAP Business One Conversational Agent on Gemini Enterprise

Business users had to open SAP Business One and walk through its screens to pull routine ERP data such as sales orders, invoices, inventory, debtor aging, and financials, so everyday questions were slow and dependent on whoever knew the system. I built a high-code Google ADK agent (Gemini 2.5 Pro) that lets anyone ask in plain language and get live, accurate figures back, including charts and forecasts. The agent reaches SAP through the custom MCP server (a separate project) over Streamable HTTP, exposing 80+ read-only Service Layer tools across sales, purchasing, payments, inventory, finance, banking, service, and master data, plus ARIMA time-series and MRR-based forecasting.

It is served as an A2A service and runs on Gemini Enterprise, but because it is a standard ADK/A2A agent it is portable to any surface that speaks A2A, not tied to one UI. It deploys to Vertex AI Agent Engine and reaches the Cloud Run MCP server in a different region through a managed Agent Gateway egress path, with a CA bundle wired in for TLS.

The hard engineering sits in three layers. A reworked MCP session manager fixes a real failure mode: when the MCP server's Cloud Run instance scales to zero the HTTP connection still looks healthy but server-side session state is gone, so the next call 404s on a session the stock manager keeps reusing. A session TTL plus explicit invalidation force a fresh session on a failed call. A lenient A2UI toolset parses, repairs (including bracket-recovering truncated JSON), auto-injects missing ids and form bindings, and validates against the Gemini Enterprise composite catalog before handing UI back to the client. A deterministic fast path renders interactive finance canvases from live SAP data with no LLM round trip: it detects greetings, menu phrases, dashboard triggers, and round-tripped canvas button events, carries a fiscal-year-aware period parser (fiscal year starts in April) covering quarters, month-name ranges, and "last N months", and uses a ping probe to tell a genuine SAP outage from other failures so it never hallucinates a dashboard.

Google ADKGemini 2.5 ProA2A protocol A2UI canvasMCPStreamable HTTP ARIMA forecastingVega-LitePython 3.11 Vertex AI Agent EngineCloud RunSAP B1 Service Layer StarletteUvicornDocker
03 / FEATURED
DSI Samson Group · Solo R&D Initiative · POC

DSI Route Optimizer: AI-Powered Delivery Route Planning for 111+ Showrooms

Sri Lanka's largest footwear retailer (D. Samson & Sons) operates 111+ showrooms across all 25 districts. Every morning, delivery managers manually plan truck routes from the Colombo warehouse to 10-25 showrooms along a corridor. Wrong sequencing burns hours backtracking through congested roads. I built an AI-powered route optimisation agent that solves this as a single-vehicle open-path Travelling Salesman Problem, deployed inside Gemini Enterprise where managers interact with it conversationally.

The agent uses Google OR-Tools with Guided Local Search to find near-optimal stop sequences for 25 locations in under a second, at zero API cost. Travel times come from Google's Routes API with TRAFFIC_AWARE routing, not straight-line approximations, capturing real Sri Lankan road conditions: single-lane coastal highways, mountain switchbacks, and Colombo urban congestion. A data pipeline discovered and verified all 111 DSI locations via Google Places API, auto-classifying each into districts and delivery corridors, stored in Firestore.

The agent emits structured payloads rendered as A2UI Material Design components natively in Gemini: selection chips, toggle controls, data tables, and expandable driver manifests, with zero frontend code. Managers can iteratively refine routes: remove stops, add detours, switch between shortest-time and shortest-distance. The open-path TSP formulation (distinct start/end depots) models DSI's actual operations where trucks end at their final destination rather than returning to origin. For a 15-stop run, even a 10% reduction in travel time saves 20-30 minutes daily across fuel costs, driver utilisation, and faster showroom restocking.

Google ADKPythonGemini 2.5 Pro Google OR-ToolsGoogle Routes API Google Places APICloud Firestore Vertex AI Agent EngineA2UI Workload Identity FederationTSP Solver
04 / FEATURED
Finetech · Finance & Sales Internal Tool · Production

Google Billing to SAP Business One Middleware: Reconciliation & Invoice Processing

Each month Finetech receives Google billing (Workspace, Cloud Platform, and Maps) covering many customer domains, and finance staff reconciled each domain against the matching customer account in SAP Business One by hand, then keyed the result back into SAP. It was slow and error prone, so it kept getting deferred until a long backlog built up, and it is harder still because customers bill on different cycles (monthly, quarterly, annual), so a customer's SAP invoice need not fall in the same month as the Google invoice, which breaks any date-based match. The COO, Ms. Sujatha Nadesan, had wanted this solved for years, so I built a middleware that reads SAP directly, does the matching and pricing maths, keeps a human in the loop, and writes the result straight back into SAP.

The app is a modular monolith: a Python 3.12 FastAPI backend (services across 10 modules, roughly 27 endpoints) behind a React 19 and TypeScript single-page app (around 7,000 lines) built with Vite 6, Tailwind CSS 4, TanStack Query, Zustand, react-hook-form, and Zod. Two write-capable workflows run against SAP B1. Reconciliation is a header-driven parser that ingests Google Workspace invoices and GCP/Maps cost tables (.xlsx and .csv), groups lines by domain or billing account, resolves each to its SAP service-group vendor card by matching the domain against SAP's CardForeignName, classifies Workspace versus Cloud lines, and computes the amount to reconcile per service group. The non-obvious part is the billing-cycle handling: rather than filtering SAP invoices by the Google invoice's month (which would hide quarterly and annual customers), it pulls open invoices for the business partner and matches on amount, not date.

The second workflow, Invoice Processing, backs a New Request intake form that looks up the SAP customer card by domain and searches the SAP item master so staff never retype master data, with pricing and proration maths computed live in the front end (unit-tested with Vitest) and raised as an A/R or proforma invoice in SAP. Both workflows share one SAP Business One Service Layer session client, and every SAP write is funnelled through a single posting method gated by a server-side control, so live updates switch on deliberately after validation and finance sign-off rather than by accident. Access is Google OAuth (OpenID Connect) restricted to the company domain, layered over Cloud Run IAM, with server-side roles (finance, technical, admin) and an admin user-management UI. Per-user drafts save and resume to Firestore, every uploaded file is archived to a Cloud Storage audit bucket, and secrets live in Secret Manager. It ships through a multi-stage Docker build with a Cloud Build trigger auto-deploying separate pre-prod and production environments.

PythonFastAPISAP B1 Service Layer ODatahttpxopenpyxl React 19TypeScriptVite 6 Tailwind CSSTanStack QueryZustand ZodVitestFirestore Cloud StorageSecret ManagerCloud Run Cloud Build
05 / FEATURED
Finetech · Solo Build · AI-Assisted Engineering · Production

Executive Financial & Debtor Dashboard over SAP Business One

Executive financials (P&L, operating expenses, debtor aging, invoice listings) were maintained by hand in an Excel workbook fed from SAP exports, a workbook that still carried live #REF! errors, so leadership could be reading broken numbers without anyone knowing. There was no single, always-current, access-controlled view of company performance, and every refresh meant a manual re-export and re-paste. I built a standing web app that pulls the same figures live and read-only from SAP Business One and reconciles exactly to SAP's own Profit & Loss and Customer Receivables Aging.

A FastAPI backend (around 2,600 lines of Python) sits on the SAP B1 Service Layer via an async httpx client that manages the login session and issues read-only GETs, exposing five dashboard sections across seven endpoints. The P&L and Opex logic follows SAP's own account structure (the first digit of each GL account's FormatCode) rather than a hand-kept account map, nets credit minus debit per drawer and per two-digit opex sub-group per month, and caches the chart of accounts because a six-month pull is roughly 20,000 journal-entry lines. The reconciliation-grade calculations are the hard part: debtor aging is an exact as-of balance computed by a GL control-account roll-back (customer current balance minus post-as-of journal movement), bucketed into SAP's native aging intervals with GETs parallelised behind a concurrency-limited semaphore; the Invoice Listings view reproduces SAP's Crystal "Post Costing Summary" per document and reconciles it against the general ledger so the tiles sit on the same GL basis as SAP's P&L.

A React 18, Vite, and Tailwind front end (around 3,500 lines) served by FastAPI from the built bundle gives a collapsible sidebar shell over five sections (Overview, P&L, Opex, Debtor Aging, Invoice Listings), a fiscal-year-aware reporting-period selector, CSV export, and per-tile "how this is calculated" popups. Access runs through Google OAuth (OpenID Connect) with per-section RBAC, the user store in Firestore in production and a local JSON fallback in dev. It ships through a multi-stage Docker build auto-deployed by Cloud Build on push to main, with the SAP password mounted from Secret Manager and no write path compiled in. The result replaces an error-prone manual workbook with a live, access-controlled dashboard whose P&L and debtor aging reconcile to SAP to the cent, verified per customer and in total.

PythonFastAPIhttpx (async) SAP B1 Service LayerODataReact 18 ViteTailwind CSSGoogle OAuth · OIDC AuthlibFirestoreSecret Manager DockerCloud RunCloud Build
06 / FEATURED
Finetech · Solo R&D Initiative · Architecture & Development · In Progress

Finetech IDP: Internal Developer Platform for GCP

Researching and building an Internal Developer Platform that automates the provisioning of customer environments on Google Cloud. A non-technical operator selects a customer, a product, and a runtime, and the platform creates the infrastructure, deploys the application, and returns the service URL. Replaces a fully manual GCP provisioning process with a self-service portal backed by reusable Terraform modules.

The architecture enforces single-tenant isolation: every customer environment gets its own GCP project (ft-<customer>-<env>), designed for banks and enterprises with strict compliance requirements. A three-layer Terraform module library (Foundation, Runtime, Data) with strict contracts means adding a new runtime (Cloud Run, App Engine, GKE) is one new module directory with zero changes to products, API, or UI. Supports two hosting models from the same codebase: Finetech-hosted (project under Finetech's GCP org) and BYOC (customer's own GCP, accessed via Workload Identity Federation).

The provisioning flow runs through a plan-then-approve gate: Terraform init, plan, human approval with resource summary (+N ~N -N), then apply, with live logs streamed to the portal via SSE. Full RBAC (admin/operator/viewer), audit trail, and a product catalog with pluggable config schemas. Currently running AI products including a 360 evaluation agent and a Gemini agent bot on the platform.

Next.js 15NestJSTypeScript PrismaPostgreSQLTerraform GCPCloud RunApp Engine Artifact RegistryGoogle OAuthRBAC SSEGitHub ActionsWorkload Identity Federation
07 / FEATURED
Hackathon · Kapruka Agent Challenge 2026 · Solo entry

Sela: trilingual AI shopping concierge for Kapruka 🛍️

A full-screen chat agent that takes a shopper from "I need something" all the way to a paid order with delivery, without ever leaving the conversation. It works for gifting and everyday shopping across Kapruka's real catalog, understands and replies in English, Sinhala, and Tamil, and accepts voice, transliteration typing, and handwriting input. An animated mascot reacts to every stage of the journey.

The entire storefront is the chat. Sela connects to Kapruka's Model Context Protocol for real product search, delivery quotes, a multi-item basket, gift messaging, and guest checkout with a live payment link, then streams tool results back as generative UI: product cards and carousels, delivery cards, and order cards, never walls of text. A language picker starts the chat in English, Sinhala, or Tamil and Sela mirrors the user's script, including Singlish and Thanglish. Users can speak, type Singlish or Thanglish that converts to native script as they type, or draw letters on a handwriting pad, plus a hands-free voice mode where Sela speaks back in the chosen language. Date awareness resolves relative dates like "next Friday" to real Sri Lanka calendar dates, and a resilient multi-model brain with automatic fallback (Gemini to Groq to Claude) keeps the agent up even when a provider is rate-limited.

Next.js 16React 19TypeScript Vercel AI SDK v6MCPVertex AI · Gemini 2.5 Flash Groq · Llama 3.3 70BClaudeTrilingual EN · SI · TA Web Speech APIGoogle Input ToolsHandwriting input LottieTailwind v4Vercel
Live Demo
08 / PERSONAL
Personal Project · Reverse-engineered private API · AI-controlled build pipeline

AppSheet Workflow Automation via Reverse-Engineered Editor API

AppSheet has no public API for app editing. This project cracked it by capturing the exact HTTP calls the web editor makes, building a Chrome MV3 extension that executes automation within the user's live authenticated browser session, and wiring a Node.js bridge relay (localhost:8787) between the extension and Claude Code (AI) so the AI can drive AppSheet builds in real time. No credentials or tokens extracted. The extension piggybacks on the already-logged-in Chrome tab, bypassing credential management entirely.

Built with it: a full DLP Rule Workflow enterprise app with 36 stage-filtered slices, 35 role-gated views, 5 role dashboards, 23 workflow transition actions, 14 email notification bots, format rules, audit log, and rule-state sync, all generated by a single idempotent Python script in seconds. End to end it fast-forwards workflow delivery ~4× — a build that normally takes around 20 days of manual work now ships in about 5. Context-view driven form UX filters status dropdowns to valid next-stage options using Valid_If LIST IFS + Reset_If + Default IFS with no action buttons needed.

PythonNode.jsChrome Extension MV3 AppSheet Private APIClaude Code AI Reverse EngineeringLong-poll Bridge
09 / CLIENT
Commercial Bank of Sri Lanka · Enterprise · In Progress

DLP Rule Workflow: enterprise data loss prevention management

End-to-end Data Loss Prevention rule lifecycle management for Commercial Bank of Sri Lanka, covering three approval workflows: Rule Creation, Amendment/Revocation, and Whitelisting. Requests move through 8+ sequential approval stages (Authorization, Feasibility, Development, Testing, UAT, Validation, Go Live, Monitoring) with strict role-based access, automated stage handoffs, and a full audit trail tracking every status change with actor, timestamp, and notes.

Five role-based dashboards surface the right data per persona: Initiator, Manager, Creator, DLP Admin, and Authorizer. Context-driven form UX shows only the fields and status options relevant to each exact stage. Automated email notifications fire on every stage transition. Rule state auto-syncs when requests reach Go Live, Whitelisted, or Revoked. Built end-to-end using the AppSheet Workflow Automation pipeline (project 02), which programmatically generated all slices, views, actions, bots, and validation rules and deployed them via the private editor API.

AppSheetGoogle Sheets Role-Based AccessMulti-stage Approval Audit TrailAutomated Notifications
10 / FEATURED
Personal Project · Autonomous AI pipeline

Hive Trendz: AI social media automation

Autonomous news-to-post pipeline: discovers trending articles, generates branded content via LLaMA 3.3 70B (Groq API), and publishes to Facebook & Instagram with zero manual effort. Flutter app with on-device image compositing, FFmpeg video editor, and AlarmManager exact scheduling. Flask + APScheduler backend on Railway with a full web dashboard for queue management and live logs.

FlutterPython / FlaskLLaMA 3.3 70B Meta Graph v24SupabaseFFmpeg APSchedulerNewsAPI + RSS
06
Litro Gas Lanka · Cloud-based

Dealer Stock recommendation engine

Intelligent stock recommendation algorithms for Litro's island-wide distribution network, a 3-app ecosystem tracking gas cylinder flow across all dealers and drivers. Historical sales analytics with predictive modelling on GCP.

Node.jsExpressRedis MySQLCloud RunDocker
07
Litro Gas Lanka · Combined Flutter app

SPO Hub & Sales POS

Single Flutter app with two tools behind one login. SPO Hub for promotion officers managing dealer visits; Sales POS, fully offline-capable, for Litro drivers covering rural island-wide routes via Drift SQLite. The pipeline that inspired the Feature Generator.

FlutterClean ArchitectureBLoC Drift SQLiteOffline-first
05
Personal · Open Tooling

Flutter Feature Generator CLI

Production-grade Dart CLI that scaffolds an entire full-stack feature (~25 files) in one command: Clean Architecture + BLoC + Drift SQLite + offline-first sync + Java Spring Boot 3 REST backend. Born while architecting the Litro Gas offline-first pipeline.

workspace/ ├── my_app/ ← Flutter │ └── lib/ │ ├── core/ │ │ ├── database/ ← Drift SQLite │ │ ├── network/ ← API client │ │ ├── router/ ← GoRouter │ │ └── di/injection.dart │ └── features/ │ └── products/ ← generated │ ├── domain/ │ ├── data/ │ └── presentation/ │ └── my_app-backend/ ← Spring Boot 3 ├── docker-compose.yml └── features/product/ ← 9 REST endpoints

One command generates ~25 files across the full stack. Auth generation (--auth firebase) wires the complete auth layer automatically. Platform-aware ApiConfig auto-selects the correct backend URL for emulator, device, or web, with zero manual config.

workspace/ │ ├── my_app/ ← Flutter (frontend) │ └── lib/ │ ├── core/ │ │ ├── config/ │ │ │ └── api_config.dart ← smart URL (emulator/device/web) │ │ ├── database/ │ │ │ ├── app_database.dart ← Drift SQLite (offline-first) │ │ │ ├── tables/products_table.dart │ │ │ └── daos/products_dao.dart │ │ ├── di/injection.dart ← GetIt + Injectable │ │ ├── network/ │ │ │ ├── api_client.dart ← HTTP wrapper │ │ │ └── network_info.dart │ │ ├── router/app_router.dart ← GoRouter (auth guard auto-wired) │ │ └── theme/app_theme.dart │ └── features/ │ └── products/ ← generated feature (Clean Architecture) │ ├── domain/ │ │ ├── entities/product.dart │ │ ├── repositories/product_repository.dart │ │ └── usecases/ ← 7 use cases (CRUD + search + sync) │ ├── data/ │ │ ├── models/product_model.dart │ │ ├── datasources/ │ │ │ ├── product_local_data_source.dart ← Drift DAO │ │ │ └── product_remote_data_source.dart ← REST API │ │ └── repositories/product_repository_impl.dart │ └── presentation/ │ ├── bloc/ ← product_bloc, event, state │ └── pages/ │ ├── product_list_page.dart │ ├── product_detail_page.dart │ └── product_form_page.dart │ └── my_app-backend/ ← Java Spring Boot (auto-generated) ├── pom.xml ├── Dockerfile ├── docker-compose.yml ← API + PostgreSQL, one command └── src/main/java/com/myapp/ ├── config/CorsConfig.java └── features/product/ ├── Product.java ← JPA entity ├── ProductController.java ← 9 REST endpoints ├── ProductService.java └── dto/ ← Create, Update, Response DTOs
Dart 3 CLISpring Boot 3Drift SQLite Code GenerationFirebase AuthDocker
08
Finetech · Sep 2023 — Present

Timespot: attendance & PM

Cross-platform Flutter app for enterprise attendance: GPS-based check-in/out, daily task creation with sub-task breakdown and real-time progress tracking, leave requests with multi-level approvals, and WFH request workflows. Live on Play Store & App Store.

FlutterFirebaseiOSAndroid
09
Freelance Project

RhythmCore: event ticketing

Full-stack event management with QR code verification, role-based access control, and automated email notifications. Dual deployment environments, Spring Security, Angular 19.

Java 21Spring BootAngular 19PostgreSQL
11
SANASA Life · Jun — Sep 2023

SANASA Life insurance integration

Designed and architected workflow systems integrating SAP HANA with Google AppSheet on an RDP Windows Server. Connected SAP and AYU enterprise systems via custom API layer.

SAP HANAAppSheetAppScriptRDP Server
12
Dilmah Tea · Jun 2022 — Feb 2023

Dilmah product development workflow

Automated new product development pipeline for Dilmah Tea, with multi-stage creation and approval workflows across departments that eliminate manual paper processes.

AppSheetCloud SQLWorkflow Automation
10
Finetech · Apr 2024 — Present

DocIt: document management

Flutter DMS with Clean Architecture + BLoC. Dynamic document field indexing, OCR-based full-text search, and advanced multi-field filtering.

FlutterClean ArchitectureBLoCOCR
13
Sarvodaya Finance · Mar 2020 — Sep 2021

Sarvodaya workflow suite

Digital transformation: 10+ workflows across Travel & Subsistence, Fund Transfers, HRIS, Stock Management, and Bank Reconciliation. Centralised Access Management with SMS integration.

AppSheetAppScriptCloud SQLSMS
14
BNS Music · Enterprise OPMS

BNS Music: OPMS

Web & mobile OPMS replacing manual job sheet processes for BNS Music's two organisational clusters. Multi-level digital approval workflow (Production to Cluster Finance to Director to Central Finance), budgeted vs actual cost tracking, job sheet lifecycle management, and cluster-level segregation of duties.

AppSheetApps ScriptCloud SQLMulti-level Approval
15
Research Project

Smart urban parking

Pay-As-You-Park: a real-time urban parking system with a mobile app for drivers and a web platform for lot owners. ML surface detection model for automated parking space validation.

Machine LearningMobile AppWeb Platform
16
Personal Project · Mar — May 2024

Ceylon Explorer: travel booking

Modular travel booking and management system built with Flutter, Clean Architecture, and BLoC. Designed for scalability across multiple travel verticals with a clean domain-driven feature structure.

FlutterClean ArchitectureBLoC
GitHub
06  /  GitHub

Open source activity

Contribution graph and recent pull requests, issues, and repos from GitHub. Updated daily.

Less More
MonWedFri
Contribution activity
07  /  Contact

Let's work together

Open to senior engineering roles, technical consulting, and interesting build collaborations. The kettle is on.

Send a message

Quick note or full brief, either works. I reply within 24 hours.