About
Engineer, founder, occasional cyclist
I’m Nipun — a software engineer from Sri Lanka. I like problems where the data is messy, the users are real, and the constraints are local.
I started writing software professionally in 2016. Today I’m co-founder and CTO of PerfectUs, a blockchain studio where I’ve built a team of 50+ engineers and shipped 1,000+ smart contracts. Before that I led teams at KeenEye and Parallax, building IoT, logistics, ERP and payment systems for clients in Europe, the US and Sri Lanka.
What connects most of it is a stubborn interest in making things work here. Global tools rarely know what a DS division is, how a Sri Lankan bank formats an SMS, or that a good app should speak Sinhala and Tamil as well as English. So I build the missing pieces — and increasingly, I build them in the open.
That’s what Prabhava Labs is for: a non-profit for independent open-source work, with a simple publishing rule — the code, the story, and the decisions all ship together. The dead ends are part of the documentation.
Outside of work you’ll find me on a bicycle, in a pool, behind a camera, or at a desk covered in ESP32 boards.
The story so far
How I got here
- 2014
Computer science in Matara
Three years at the University of Ruhuna, where the fundamentals stuck: algorithms, systems, and the habit of asking how something actually works underneath.
- 2016
First real users
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.
- 2017
Freelance, everything at once
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.
- 2019
Leading teams
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.
- 2021
PerfectUs
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.
- 2026
Prabhava Labs
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.
How I think
Defaults I reach for
Opinions held firmly enough to act on, loosely enough to change when the data says so.
- 01
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.
- 02
Precompute everything that fits
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.
- 03
Private by default, local when possible
A bank SMS carries balances, card digits and merchants. The classifier should come to the phone, not the other way around.
- 04
Build for here
Trilingual from day one — English, සිංහල, தமிழ். Real bank formats, real bus routes, real power cuts. Global tools rarely know what a DS division is.
- 05
Cheap to run, easy to own
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.
- 06
Say where it stands
“Incubating” means incubating. Synthetic benchmarks are labelled synthetic. Honest status is a feature, and it is how trust compounds.
Toolbox
What I work with
Languages
- Solidity
- TypeScript
- JavaScript
- Go
- Rust
- Java
- PHP
- Python
- Kotlin
- Dart
- C / C++
- SQL
Blockchain
- EVM chains
- Smart-contract development & auditing
- DeFi
- NFTs & GameFi
- dApps
- Tokenisation
- Hyperledger Fabric
- Crypto payments
Backend & data
- Node.js
- Laravel
- PostgreSQL / PostGIS
- MySQL
- MongoDB
- Elasticsearch
- Kafka
- Spark / Hadoop
- ETL pipelines
Frontend & mobile
- React
- Next.js
- Astro
- Vue.js
- Flutter
- Android
- PWAs
Cloud & DevOps
- AWS
- Docker
- Kubernetes
- Jenkins
- Ansible
- CI/CD
- Linux
AI & ML
- On-device ML
- LLM applications
- Model evaluation
- AI & bot development
IoT & embedded
- ESP32-S3
- Arduino
- MQTT
- Bluetooth LE
- Firmware
Away from the keyboard
Life, offline
Music
The soundtrack behind most of the code.
Photography
Noticing light and framing places.
Cycling
Distance, wind and a clear head.
Swimming
An hour with no screens at all.
Bowling
Friends, lanes and friendly rivalry.
Hardware
ESP32 boards, AMOLED panels and a soldering iron on the desk.