Profile Photo

Hi, I'm Vinuka

Backend Developer | Rust Enthusiast | Linux Tinkerer | Car Lover

About Me

I'm Vinuka. I build backend systems, and I write about the things I figure out along the way.

I like sitting with a problem until I actually understand it. A lot of what I build comes from that curiosity more than anything else. The 3D slicer I'm working on in Rust started because I wanted to understand how volume computation actually works on a mesh, not because anyone asked for it. That's just the kind of thing I find interesting.

I also co-founded Kernel70 with a few friends while studying, and through that I've shipped production software for real clients, from real-time tracking platforms running in the UK to backend systems for organizations here in Sri Lanka.

Outside of programming, I drive a manual. I genuinely enjoy it. The rev matching, the engine braking, being aware of exactly what the car is doing. There's something about not letting the machine do everything for you that I find satisfying. I feel the same way about working closer to the systems layer, honestly.

If you're into backend work or just like how systems fit together, there's probably something here for you.

What I'm Building

Real-Time Adaptive Bitrate (ABR) Transcoding Engine

My final year project is a real-time adaptive bitrate streaming engine written in Rust. The idea is simple: ingest a high frame rate source and transcode it on the fly into multiple bitrate formats so the client always gets the best stream their connection can handle.

The interesting problems are in the transcoding pipeline. Keeping up with a live source in real time, managing memory without falling behind, and making the bitrate switching decisions fast enough that the viewer never notices. That's what I'm currently working through.

It's a sports broadcasting use case at heart, where dropped frames and buffering actually matter.

If you've worked with FFmpeg from Rust before, I'd genuinely love to hear how you approached it.

Technical Skills

Systems & Architecture

Systems Programming

I write performance-critical code in Rust and Go. That means thinking about allocations, understanding what the compiler is actually doing, and not reaching for an abstraction when the problem is fundamentally a low-level one.

Distributed Messaging

I've built services that talk over gRPC, Kafka, and Redis Pub/Sub. A lot of that work in Go comes down to getting the concurrency right: channels and mutexes, making sure shared state stays consistent.

Security & Identity

I've built IAM systems from scratch. OAuth2, WebAuthn, TOTP-based MFA, JWT rotation with Redis-backed session invalidation. I've read enough about how these go wrong to take it seriously.

Unix Environment & Tooling

I live in the terminal. Neovim, tmux, a tiling WM, and a dotfiles repo that keeps everything reproducible across machines. If I'm doing something more than twice it gets a script.

Data & Infrastructure

Database Engineering

I work with PostgreSQL and MySQL. Most of the interesting work is in the schema design and access patterns, getting those right early saves a lot of pain later. I use Redis on top for caching and session management to keep the database load reasonable.

Cloud-Native Tooling

I deploy on AWS mostly, ECS, Lambda, S3, and some GCP. Docker for containerization, Terraform for infrastructure, and GitHub Actions for CI/CD. Nothing exotic, just making sure things actually ship and stay running.

Primary Tech Stack

Go (Fiber, CHI)
Rust (Axum, Tonic)
TypeScript (Express)
Java
PHP

Key Projects

Distributed Content Engine

This is the engine that powers this site. It's a server-side rendered content system built in Rust with Axum and Askama. Markdown files go in, HTML comes out, images get uploaded to S3 automatically. Redis sits in front of the rendered output and database reads to keep response times low. It runs on AWS Lambda across multiple regions, with a Cloudflare Worker acting as a reverse proxy to route each request to the closest region.
Yes, it's overengineered for a blog. I had fun building it.

rust axum awslambda cloudflareworkers redis s3
[25 Apr > 23 Nov]

Real-Time Driver Tracking System

This one is actually in production. A UK-based chauffeur and airport transfer service uses it to manage 50+ drivers and 200+ clients. Each active booking maps to a Kafka partition, and Redis tracks the partition state, connection counts, and last known location per stream. Drivers push location updates, Kafka buffers them, and passengers receive them over WebSockets in real time. Once a trip ends the full route gets archived to S3, so drivers, passengers, and admins can replay the entire journey. Cron jobs handle automatic job termination for anything running over 24 hours.

go kafka redis S3 WebSockets SSE
[24 May > 24 Sep]

IAM Server

A centralized auth server built in Go. Supports email/password, magic link login, and OAuth with Google, GitHub, and Twitter. Users can layer on TOTP or Passkeys on top. The session layer uses RS256 JWT pairs with short-lived access tokens and Redis-backed refresh token rotation. What I found interesting was how many separate Redis instances this ended up needing: one for sessions, one for rate limiting, one for WebAuthn challenges, one for email tokens, and a general system cache. Each has a different TTL and eviction policy.

go postgresql redis oauth2 webauthn jwt
[23 Oct > 23 Dec]

3D Mesh Engine & Slicer

I got curious about how 3D printing cost estimation actually works and ended up building this. mesh_rs is a CLI tool in Rust for analyzing and manipulating 3D mesh files. It computes signed volume using the divergence theorem, bounding box diagonals, triangle counts, and can scale meshes to a target size. It handles both binary and ASCII STL as well as OBJ. The volume computation was the interesting part: getting it right on concave and non-manifold meshes took some care, and I ended up using Kahan summation to keep floating point drift under control on high vertex count models. Published as a crate on crates.io and still actively working on it.

rust cli algorithms mesh-processing crates.io
[25 Jun > *]

Experience

MoneyDoc | Financial Consulting Platform

2025 Dec > 2026 Apr

Kernel 70 | Client Project

A platform for a financial consulting service with three separate roles: client, consultant, and admin. I was responsible for the REST APIs, IAM system, and caching strategy. The most interesting piece was the Google Calendar integration. Consultants manage their availability through their Google Workspace account and the platform stays in sync automatically, so clients can never book time that's already been claimed externally.

nestjs api redis postgresql jwt

PAFFREL | CMS & Digital Library

2024 > 2025

Kernel 70 | Client Project

PAFFREL is an election monitoring organization in Sri Lanka. We built two platforms for them. The CMS handles their publications, event records, and organizational content through a REST API with Redis caching to keep database load reasonable. I also built the authentication system for it. The digital library lets them digitize their physical books and make them publicly available as PDFs. I wrote a Lambda function that triggers on S3 upload, extracts the first page of each PDF, and serves it as the cover image automatically.

nestjs aws lambda s3 redis postgresql

Driver Management Platform

2024 May > 2024 Sept

Kernel 70 | Client Project

Built for a UK-based chauffeur and airport transfer service. Actively used by 50+ drivers and 200+ clients. See the projects section for the full technical breakdown.

go kafka websockets sse redis s3

Education

Bsc(Hons) Computer Science

2023 - 2027

NSBM Green University, Colombo, Sri Lanka

Get in Touch

I'm always open to discussing new projects, opportunities, or partnerships. Feel free to reach out through any of the channels below.

Quick Message