Founder & CEO at KRAG. Full-stack developer building websites, web apps, and software across the stack — from embedded systems to production web services. Currently also at The Nex.
Studying Electronics & IT at the University of Colombo. Based in Sri Lanka.
Writing about systems programming, developer tooling, data engineering, and things worth understanding properly.
recent posts
Bazel for Multi-Language Monorepos: One Build System for Go, C++, TypeScript, and WASM
A practical guide to Bazel for beginners — how it manages a monorepo with Go backend, C++ ImGui chart, TypeScript React frontend, Protobuf schemas, and FlatBuffers, including platform transitions for WASM compilation.
Building a Multi-Screen TUI in Go with Bubbletea
How to build a production-grade terminal UI with multiple screens, live data, and keyboard navigation using the Bubbletea framework — with real examples from a 6-screen market data TUI.
ClickHouse for Financial Data: Candles, Footprints, and the Timezone Trap
How to use ClickHouse to compute OHLCV candles, footprint charts, and enriched market data from raw trades — and why getting candle boundary alignment right for non-UTC timezones is trickier than it looks.
Docker, Docker Hub, GitHub Packages, and CI/CD Pipelines: The Complete Picture
A complete guide to Docker from zero — images, containers, Docker Hub, GitHub Container Registry, and how to wire everything together with a GitHub Actions CI/CD pipeline that builds, tests, and deploys automatically.
FlatBuffers and Protobuf in One System: Picking the Right Serialization Format
A beginner-friendly guide to serialization formats — what Protobuf and FlatBuffers actually do, how they differ, and why a system might use both for different consumers.
Git + GitHub CLI: A Unified Terminal Workflow
How to combine git and the GitHub CLI (gh) into one seamless workflow — from branching to PRs, code review, CI monitoring, and releases — without ever opening a browser.