Heshan Padmasiri

Quick Bio

Me

I am currently working on the Ballerina programming language. I am currently employed by WSO2. Professionally I program in Java and Ballerina. In my free time I make little things in Go, Rust, and various esoteric programming language that catch my fancy. Personally I like low level programming and compiler/language design.

Interesting Projects

Professional projects

jballerina

Production ready version of Ballerina compiler written in Java. It directly generate JVM bytecode. I am mainly involved in the compiler side while occasionally dipping my toes in runtime.

nballerina

Experimental version of Ballerina compiler that is written in Ballerina, with runtime written in C. It can directly generate native executables using llvm. Currently only a subset of the language is supported.

nballerina-cpp

Experimental version of Ballerina compiler that takes the BIR (Ballerina Intermediate Representation) from the jballerina compiler and generate native executables using llvm. No longer in active development.

Personal projects

tree-sitter-ballerina

Ballerina grammar for tree-sitter parser. This is currently a work in progress but most the Ballerina syntax should be supported.

pea-server

File hosting service (similar to drive) that is meant to be run in a NAS. Currently not in active development, since at it’s current state it can do all I wanted.

ballerina-mode

Emacs major mode for Ballerina language. This mostly gives things like syntax highlighting and depends on the LSP for most of the complicated tasks (like go to definition).

Director

Simple file management GUI inspired by dired

Publications

All of these are based on two projects I did during university time

License plate recognition in resource constraint environments

Automated parking occupancy detection