Work Experience
Senior Technical Lead — Fcode Labs
Oct 2024 — Present · Colombo (Remote)
- Design and document backend architecture across 7 Python services (Django/DRF, Wagtail, FastAPI on Aurora Postgres) for the Health Ministry Singapore (MOHT) digital mental health platform; authored the architecture guides for three backend redesigns and the release checklist the other backend repos follow.
- Take requirements from the BA, design the backend, write the tickets and deliver them with another backend engineer; hold routine design authority, escalating only to break an established convention or for a structural call.
- Implemented Cognito authentication across the backend services — user credential flows, service-to-service auth and token verification — and designed the authorisation model: the role and permission scheme and how it is enforced in the services.
- Identified ~$350/month of removable managed-search spend by moving a 7,000-document semantic index into the existing Aurora Postgres via pgvector — removing a paid dependency and an RDS-trigger → Lambda → API → reindex sync pipeline.
- Shipped that migration as a drop-in replacement behind an existing abstraction, deliberately leaving the legacy service and its sync pipeline running in parallel so rollback was one import revert and a redeploy.
- Designed a debounced cache-warming strategy — selective eviction on save, a Redis queue absorbing edit bursts, and a background worker that deduplicates and rebuilds five minutes after the last edit, so N edits to a resource cost one rebuild rather than N.
- Authored GitLab CI pipelines from scratch and refactored existing ones into reusable components — unit tests and Snyk on every PR, SonarQube and deploy on merge to develop, production gated behind a release tag.
- Rebuilt a production Docker image through an architecture change, using multi-stage builds to cut the shipped image down to its runtime.
- Drive testing and code-quality practice on a team targeting 90%+ coverage.
Career Break
Feb 2024 — Sep 2024
- A planned career break for personal reasons; spent the latter part of it preparing for the next role — data structures and algorithms, and interview preparation.
Senior Python Engineer — Gapstars
May 2022 — Feb 2024 · Embedded with Spotr (NL) and Bots (NL)
- Embedded directly in two Dutch clients' engineering teams — interviewed by the client and working in their standups as a member of their team, with no agency layer in between.
- Serverless AWS backend for an insurance property-inspection platform — a routing Lambda dispatching to service Lambdas, with Step Functions and Airflow behind it.
- Maintained and debugged production Airflow pipelines handling multi-source ingestion and image processing, including a weekly production→staging data reconciliation.
- Operated a bulk ingestion process pulling tens to hundreds of GB onto a dedicated EC2 instance before loading into the data stores.
- Worked TDD against a 95%+ coverage baseline on a cryptocurrency trading platform's portfolio API and kept it there.
Head of Systems Development (Technical Lead) — Rukula
Dec 2017 — May 2022 · Microfinance lender
- Sole owner of production at a microfinance lender — wrote the system, deployed it, ran the servers and was the person called when it broke, with real money moving through it.
- Built loan origination through partner retailers: algorithmic affordability and risk decisions, document workflow, and weekly/monthly repayment collection.
- Designed and built a merchant portal replacing a chat-based document workflow with a structured, searchable one — per-sale processing fell from 20 minutes to 7, and the merchant support lead reported handling three times the sales in the same time.
- Grew the function from one developer to two; took requirements directly from the CEO and the finance, recoveries and sales department heads, with no analyst layer.
- Learned design thinking at a weekend seminar, taught it to the team on the Monday, and had the junior engineer present the resulting design to department heads and the CEO.
- Ran a Dockerised platform behind nginx on DigitalOcean; introduced the staging environment and its deploy branch, and set up uptime monitoring and alerting, daily off-box database backups and log archival.
- Traced a production disk-fill to unbounded log rotation; added 7-day retention and archived logs to S3 so debugging history survived the cleanup.
- Designed and built the API surface for a merchant-collected repayment product with the national payment infrastructure operator, directing the outsourced mobile agency — built their APIs, taught them the business flow and reviewed their designs. Blocked on the bank side and not launched.
Associate Tech Lead / Software Engineer — Eutech Cybernetics Lanka
Sep 2012 — Nov 2017 · Smart buildings & smart cities
- Built Incident Management, Work Order and Corrective Work Request from scratch during the v3 rewrite of an intelligent building management product, working directly with the CTO at head office.
- Product shipped in three topologies — vendor cloud, customer server, or customer data centre — with an on-premise connector streaming real-time building telemetry to the hosted instance.
- Stationed on site in Doha as acting Solution Architect on a flagship smart-city development inside a four-tier multinational vendor chain — owned our design documentation, designed and built the incident dashboard, and bridged the on-site vendor teams to the offshore engineering team.
- Integration engineer in Saudi Arabia — collected data points across client departments and integrated them into the platform, and performed rolling updates against on-premise Windows Server / MS SQL infrastructure in a customer data centre.
- Conducted FAT with the upstream contractor, UAT with the client on both programmes, and handover training for the vendor taking over maintenance.
Backend & automation engineer — Independent / freelance
2020 — 2021 · Remote, international clients
- Ran a freelance Python automation practice — 83 orders for 47 clients at 100% on-time delivery, 5.0 from 65 public reviews, across clients in Sri Lanka, the UK and Europe.
- Replaced a client's repetitive manual data entry with a three-tier service — desktop entry client, VPS worker driving headless Chrome, per-submission status in a database, and a dashboard over it.
- Built backend APIs for a dental inventory and ecommerce platform — Flask, PostgreSQL and Redis; designed database schemas, improved performance through caching, and implemented CI pipelines and testing.
- Converted a CTO's Jupyter notebooks into a Dagster pipeline built from scratch, making exploratory analysis scheduled, observable and re-runnable.