Publish the reasoning, not just the code
A README says what a tool does. The dead ends, the rejected designs and the trade-offs are what the next engineer actually needs, so they ship alongside the code.
Engineer & founder · edition 2016
Three years at the University of Ruhuna, where the fundamentals stuck: algorithms, systems, and the habit of asking how something actually works underneath.
A traineeship at Crowderia AB, building Coqeep, an Android app for booking services. The first time code I wrote was used by people I would never meet.
A storage-booking platform for Sweden, a Sampath Bank payment plugin, thirty-odd online shops, and Hope SL — soil sensors, Kafka, Spark and machine learning to decide when Sri Lankan farms should be watered.
Tech Lead at Parallax Technologies, then at KeenEye across Colombo and Paris: 21 engineers, IoT logistics (EFL Symphony), radar camera detection for a US client (Cedar), and 50+ engineers mentored along the way.
Co-founded a blockchain development studio and became its CTO. A 50+ engineer organisation, 1,000+ smart contracts for clients worldwide, an in-house audit practice — and zero critical security incidents.
Prabhava (ප්රභව) means origin. A non-profit for independent open-source work in civic data, on-device ML and embedded systems. Every project ships with its code, the story of why it exists, and the decisions behind it.
A README says what a tool does. The dead ends, the rejected designs and the trade-offs are what the next engineer actually needs, so they ship alongside the code.
Sri Lanka is ~70K populated square kilometres and 14K GN divisions. That fits in one SQLite file. Do the spatial work once, offline, and every request becomes an indexed read.
A bank SMS carries balances, card digits and merchants. The classifier should come to the phone, not the other way around.
Trilingual from day one — English, සිංහල, தமிழ். Real bank formats, real bus routes, real power cuts. Global tools rarely know what a DS division is.
If a tuition teacher cannot self-host it on a small VPS, or it needs a tile server to show a map, the design is not finished yet.
“Incubating” means incubating. Synthetic benchmarks are labelled synthetic. Honest status is a feature, and it is how trust compounds.
The soundtrack behind most of the code.
Noticing light and framing places.
Distance, wind and a clear head.
An hour with no screens at all.
Friends, lanes and friendly rivalry.
ESP32 boards, AMOLED panels and a soldering iron on the desk.