Solving problems with math and computers is still my favourite kind of work. I started as a software engineer, moved into research, and now find myself writing more code again — partly because AI coding agents make it practical to explore harder, wider engineering problems in parallel. That has pulled me toward high-performance systems in modern C++ (C++23), CUDA/ROCm kernels, model runtimes, and tooling that turns research ideas into something concrete. I still care about the older virtues: readable code, tests, documentation, open-source tools, and permissive licenses.

I sometimes participate in StackOverflow QA threads.

Here are some of my selected projects:


Tahoma: A C++ Playground for Learning

My personal playground for learning modern GPU systems and experimenting with my own ideas for AI. It’s a C++23 project (built on libTorch) where I tinker with training and inference for NMT, LLM, classification, and multimodal models. Current experiments include fused CUDA/ROCm kernels, faster GEMMs, memory-transfer optimizations, CUDA graphs, paged attention, continuous batching, multi-GPU synchronization over NCCL/RCCL rings, faster rollouts for RL training, and low-bit quantization.


pigzpp: Fast Parallel Compression, Everywhere

A clean-room C++23 rewrite of pigz (parallel gzip) that grew into a multi-language compression library — Python, Go, Rust, and WebAssembly bindings over one accelerated core (zlib-ng / Intel ISA-L), plus a native ZIP container and a fast PNG codec. Highlights include up to 80× over Python’s stdlib gzip, a projected ~12× reduction in BuildKit’s layer-gzip stage after integration, and PNG encoding measured at 8.6× Pillow and 1.2× OpenCV — all using standard gzip/ZIP/PNG formats.


PyMarian: Fast NMT & Evaluation in Python

Python bindings to Marian NMT (C++) with Intel MKL and NVIDIA CUDA backends; up to 9.5x speedups and ~50% memory reduction versus PyTorch.


SotaStream: Streaming MT Training

A streaming approach to machine translation training for extremely large datasets, with flexible on-the-fly sampling and augmentation.


RTG: Reader Translator Generator

Neural Machine Translation Toolkit.


MTData: Machine Translation Data

A tool that locates, downloads, and prepares parallel data for machine translation from many data sources.


NLCodec: Natural Language CoDec

A library to do coding-decoding such as Word, Character, and Byte-Pair-Encoding of natural language text.


awkg: Python awk

awk like line-processing tool with python as scripting language.


VirtChar: Virtual Characters

Dialog systems that imitate characters from the popular TV show named F.R.I.E.N.D.S.


JunkDetect: Junk Detector

A tool to detect junk or not-junk text with support for 100 languages.


Sparkler: Spark Crawler

A large scale web crawler on Apache Spark, with Apache Solr backend for crawler database.


Auto Extractor

HTML web page clustering tool based on DOM structure and CSS style similarity.


Supervising UI

A simple web UI for labelling images to be used for image recognition.


More Tools