Wathsala Gamarachchi
Software engineer, from the interface down to the database.
I build and maintain web applications in C# and ASP.NET MVC, with JavaScript on the front, MySQL underneath and Azure DevOps pipelines shipping it — currently at Waterlily Labs, on business software used in a UK property-management context. A lot of my work happens inside established codebases: reading them, tracing a problem through every layer, and changing them carefully.
Right now Learning Python, PostgreSQL, Airflow and dbt — the data layer underneath the applications I build.
Same shape, different substrate
My thesis followed produce from a Sri Lankan farm to the market. My day job follows a request from a click to the database and back. Both are a chain of hand-offs, and the problems live between them.
What I researched
-
01
Farm
The crop leaves the field in the best condition it will ever be in.
-
02
Transport
Heat, handling and time. Much of the loss happens here, unrecorded.
-
03
Intermediary
It changes hands and changes price, and the farmer rarely sees the final one.
-
04
Market
Whatever survived, priced on what it looks like at the end.
What I build
-
01
Interface
Razor, jQuery and Bootstrap — where a person clicks and expects it to work.
-
02
Application
C# and ASP.NET MVC: rules, background jobs with Hangfire, live updates with SignalR.
-
03
Data
MySQL through Entity Framework and Dapper — where it has to be right.
-
04
Delivery
Azure DevOps YAML pipelines and tests, so a change reaches production intact.
Every layer gets the work in some state from the one before it and hands it on. Most of what I do is understanding those hand-offs well enough to change one without breaking the next. Read the research
Current orbit Where I work
Most engineering is changing software that already works without breaking it. That is most of what I do, and the part I have come to enjoy.
Waterlily Labs
- Software Engineer Intern
- Junior Software Engineer
- Software Engineer
Full-stack work on established business applications used in a UK property-management context — feature development, maintenance and delivery across the interface, the application layer and the database.
- Build and change features end to end: Razor views and jQuery on the front, C# and ASP.NET MVC 5 controllers and services behind them, MySQL underneath.
- Work inside existing production codebases on .NET Framework 4.7.2 — reading unfamiliar code, tracing behaviour through layers, and fixing defects without breaking what depends on them.
- Write and maintain data access against MySQL with Entity Framework 6 and Dapper, and work with the existing relational schema behind each feature.
- Work with background processing (Hangfire), real-time updates (SignalR) and sign-in through OWIN with Azure AD.
Selected missions Selected work
Each one has a problem it was built to solve — and an honest status line.
What I work with
The full list — each skill marked by whether I used it in production, in my own projects, or am still learning it — is on the experience page.
Day to day
Application and interface work, in production.
- C#
- ASP.NET MVC 5
- Dependency injection
- Hangfire
- SignalR
- OWIN · Azure AD
- JavaScript
- jQuery
- Razor views
- HTML · CSS
- Bootstrap 3 & 5
- Responsive, mobile-first UI
Data & delivery
The database underneath and the pipeline after.
- SQL
- MySQL
- Entity Framework 6 · EF Core
- Dapper
- Azure DevOps
- YAML pipelines · CI/CD
- Azure Boards / TFS
- Git
- MSTest · Moq
- Serilog
Learning properly
Building with them, not claiming them yet.
- Python
- PostgreSQL
- Airflow · dbt
Open a transmission Send a letter
I am open to full-stack, backend and software engineering roles. If you are hiring, untangling a codebase, or curious about anything here, I would like to hear from you.