Full-Stack Developer · .NET / Angular / Azure · Singapore
9+ years building secure, large-scale systems for finance, government and healthcare, and AI-assisted products built with engineering discipline.
About Me
I care about security, maintainable architecture and shipping on time. Lately I build personal products with AI agents such as Claude Code and Codex, backed by specs, tests and automated quality gates.
So if you are interested,Contact me!
Projects
AI-Assisted Personal Projects
Social Media Management App
Solo Developer, AI-Assisted Personal ProjectAn AI-driven social media workflow, currently focused on Facebook Page automation: researching post ideas, drafting captions, generating media and approval-gated publishing and scheduling. Creative stages use reusable agent instructions, while publishing stages remain deterministic in code.
Highlights
- Research trends and competitor pages to pitch post ideas through reusable agent instructions
- Draft captions in each page's brand voice and generate images with the OpenAI API
- Approval gates before any content is generated or goes live
- Publish or schedule text, photo and video posts through the Meta Graph API at each page's best time
- Keep the creative stages agent-driven while the publishing stages stay deterministic in code
- Node.js
- OpenAI API
- Meta Graph API
- AI Agents
StockIt
Solo Developer, AI-Assisted Personal ProjectA configurable, multi-tenant, mobile-first stock and sales platform with catalogue and supplier management, batch tracking, immutable inventory movements, branch-level stock, sales, receipts, reporting and role-based access control.
Highlights
- Multi-tenant stores and branches with default-deny row-level security and role-based access
- Configurable catalogue with dynamic item fields, suppliers and batch tracking
- Immutable inventory ledger for receiving, adjustments and FIFO batch allocation
- Mobile sale flow with idempotent confirmation, draft autosave and 80 mm/A4 receipts
- Operational reports for daily sales, stock levels and estimated gross profit with CSV export
- Release gates covering unit, database, accessibility and Playwright browser tests
- Angular 22
- TypeScript
- Angular Material
- Supabase
- PWA
- Playwright
- Docker
FinPal
Solo Developer, AI-Assisted Personal ProjectA personal portfolio tracker for portfolio value, dividends, asset allocation, manual assets and net worth, with statement upload and manual transaction entry. The backend follows Clean Architecture with an Angular frontend.
Highlights
- Track portfolio value, unrealized gain/loss, cost basis and multi-currency cash balances
- Dividend income history with forward estimates, plus asset allocation breakdowns
- Broker statement upload with an import review step, and manual transaction entry
- Manual assets and net worth tracking
- Clean Architecture .NET 9 backend with deploy-time-only database migrations
- .NET 9
- ASP.NET Core Web API
- EF Core
- Angular 19
- PostgreSQL
- Clean Architecture
- Playwright
Ember Survivor
Solo Developer, AI-Assisted Personal ProjectA portrait mobile action-survivor game with automatic combat, escalating waves, XP and upgrades. The project uses a deterministic, data-driven design where appropriate, together with automated tests, build checks and performance validation gates.
Highlights
- One-thumb arena gameplay with automatic attacks, escalating waves, XP and upgrade choices
- Deterministic simulation, soak-tested with 1,000 seeded runs
- One command runs the tests and builds Windows plus signed Android APK/AAB artifacts
- On-device stress test of 500 enemies over five minutes as a performance gate
- Godot 4.7
- GDScript
- Android
- gdUnit4
- Automated build/test tooling
Professional Projects
Jan 2024 to Now
Central Provident Fund Board
System Analyst, Central Provident Fund Board, SingaporeA large, multi-product platform that runs Singapore's provident fund, covering healthcare, housing, retirement and more. Different departments own each product; my team supports the whole application across all of them.
Team Size: 10Key contributions
- Investigate and fix critical production defects quickly to keep member-facing services available
- Maintain scheduled jobs and other background services in daily operation
- Monitor security threats against the system and assess their impact
- Fix non-production defects so internal users can test new releases without blockers
- Support testers, cross-functional teams and front-line staff with production queries from CPF members
- .NET Core
- Microservices
- Windows Services
- Azure Cloud
- Azure DevOps
- Angular
- MS SQL
- SonarQube
May 2023 to Dec 2023
Banking and Credit Union System
Associate Tech Lead, Zone24x7, ColomboA security-critical platform for a banking and credit union client, covering appointments, lobby assistance, data analysis and detailed per-employee reporting. Regular penetration tests and SonarQube audits shaped every change.
Team Size: 53Key contributions
- Introduced a new security layer to prevent data breaches
- Upgraded the front end from Angular 9 to 16, closing security gaps and giving a smoother application
- Implemented core business logic and supported the team leads in running a 53-person team
- Ran regular developer syncs and unblocked developers on the tech stack
- Reviewed pull requests for code quality and for issues that would fail penetration tests or security audits
- Planned AI-driven analysis and predictive models over about 10 years of collected data
- .NET Core
- Ocelot
- CQRS
- RabbitMQ
- Azure DevOps
- Angular
- MS SQL
- SonarQube
Oct 2021 to Dec 2023
Garment Factory Management and Printing System
Senior Software Engineer, IronOne Technologies and Keen Mind Mobile Solutions, ColomboA cloth printing management suite for a leading Sri Lankan apparel exporter, covering the whole flow from designers creating artwork to the warehouse that prints it and sends it to distribution.
Team Size: 12Key contributions
- Led the front-end team, and later both front-end and back-end teams, including client meetings
- Designed the front-end architecture and state management, and built the Angular 13 front end
- Built .NET Core services with Azure Functions, Azure Service Bus and Swagger documentation
- Managed the Azure cloud resources for the project
- Reviewed code for junior developers and colleagues
- .NET Core
- Azure AD
- Azure Service Bus
- Azure Functions
- Azure DevOps
- Angular
- MS SQL
Jan 2022 to Dec 2023
Video Consultation Platform
Senior Software Engineer, IronOne Technologies and Keen Mind Mobile Solutions, ColomboA video consultation platform for a European healthcare brand. Consultants run subscription-based video sessions with patients, record session events and progress, and manage everything from a role-based dashboard.
Team Size: 9Key contributions
- Customised the Jitsi Meet app to the client's requirements
- Built a new Angular 12 dashboard for the organisational structure and business settings
- Debugged and fixed issues in the Node.js back end
- Supported the client with custom app configurations
- Node.js
- Cognito
- React
- Angular
- Docker
- Jitsi
- MySQL
How I build with AI
AI agents write a lot of my personal-project code. What makes that code trustworthy is the engineering around them: specs before code, one written contract for every agent, and automated gates that decide when work is done.
Specs before code
Every change starts as a written spec, plan and task list that the agent implements against, so the intent is reviewable before any code exists.
In practice: FinPal has been built through 55 numbered GitHub Spec Kit features, from the MVP to production readiness.
One contract for every agent
A single AGENTS.md states the project's invariants for any agent, whether Claude Code or Codex. Lint rules and tests enforce the rules, so the agent can't simply ignore them.
In practice: In StockIt, ESLint blocks direct table writes and any data access from components, and money is only ever exact minor units.
Gates decide when work is done
An agent reports what it built and the evidence for it. One command runs the same format, lint, type, test, build and security checks as CI.
In practice: Ember Survivor runs 1,000 seeded simulation soaks and on-device performance gates before a milestone counts as passed.
Several agents, clear ownership
When more than one agent works on a project, each owns specific paths, and decisions go into an append-only log so later sessions inherit the reasoning.
In practice: On Ember Survivor, Codex owns simulation and performance while Claude Code owns presentation and leads integration merges.
Humans approve, code executes
Agents handle the creative and exploratory work. Anything with real-world effects stays deterministic in code and waits for a person's approval.
In practice: The social media app drafts posts with agents, but publishing to Facebook happens only after explicit approval.
Local and cloud models
I choose the tool for the job: Claude Code, Codex, Copilot and OpenCode with MCP tools, and local models through Ollama and LM Studio for private or offline work.
In practice: Agentic workflows cover implementation, refactoring, debugging, testing and repository analysis.
My experience
My education
My skills
Programming Languages
C#
TypeScript
JavaScript
HTML
CSS
SQL
Backend & Data
.NET / .NET Core
- Entity Framework
MS SQL
MySQL
PostgreSQL
Firebase & Firestore
- Supabase
Node.js
RabbitMQ
Frontend
Angular
React
Material UI
Ant Design
Semantic UI
Tailwind
- Ionic
AEM
Cloud & DevOps
Azure Cloud
Azure DevOps
Google Cloud
Docker
Git
- Playwright
- VPS Management
AI-Assisted Development
- Claude Code
- OpenAI Codex / ChatGPT
- GitHub Copilot
- OpenCode
- MCP Tools
- Ollama & LM Studio
- Agentic Workflows
- OpenAI API
- Generative AI
Latest writing
Opal Exports the Workflow. It Forgets the Test.
(opens Medium in a new tab)- prompt engineering
- generative ai tools
- artificial intelligence
AI Studio Copied My Quote’s Total. The Total Was Wrong.
(opens Medium in a new tab)- prompt engineering
- generative ai
- google gemini
Planning a Product Ad With Google Flow Agent Before Any Render
(opens Medium in a new tab)- artificial intelligence
- video marketing
- storyboarding
A Camera Angle Number Wasn’t Enough in Figma Weave
(opens Medium in a new tab)- ai
- generative ai tools
- figma weave
Your Brief Changed. Does Your Checklist Know?
(opens Medium in a new tab)- artificial intelligence
- google notebooklm
- research
The Colour Bug Inside an SVG Set
(opens Medium in a new tab)- svg
- svg editor
- generative ai tools
Hit me up!
Please contact me directly at chandima.c.ekanayake@gmail.com or through this form.



