vihangaREADME.md

Melbourne, AU

VihangaMihirangaMalaviarachchi

Hi there! I am a Computer Science graduate from Monash University. I started programming for full stack web development but over the last two years, I have spent my time specializing in LLMs and the rapidly evolving area of agentic AI products.

I am based in Melbourne and looking for work that involves LLM development or building agentic systems like harnesses.

This site is in its earlier phase so it is quite bare bones; it is mostly a glorified resume 😀.

I plan on turning this site into a blog later on, documenting deep dives into engineering discoveries as well as lifestyle oriented content that I find interesting.

Axle: My terminal coding agent.

It's a coding TUI inspired by Claude Code and OpenCode and is mostly written from scratch on top of OpenTUI library. It combines features I like from popular coding agent interfaces and automates some of the manual workflows that I use daily.

Axle running in a terminal, with the subagent panel on the left, the transcript in the middle, and a diff on the right.
Axle auditing its own source code with the help of multiple subagents. Meta stuff 😎

It’s invite only for now. Email contact@vihangamihiranga.com and I’ll send you a code.

Some cool stuff.

In no particular order.

ByteTok
LLM tokenizer, written in Rust BTW.
Deep Learning
  • A byte-level BPE tokenizer bundled as a Python package with the training and encode/decode pipeline written in Rust.
  • Encoding and decoding both run in parallel and on large batches, the average speed is roughly 15 MB/s in and 77M tokens a second out.

Under development

Bloxshein
Blockchain built from the Bitcoin paper
Systems
  • A proof-of-work blockchain in Rust that follows the original Bitcoin paper.
  • Currently, it supports SPV and full wallets with a mempool, mining rewards and transaction fees and digital signatures for all transactions.
  • New features are being added monthly.
Yurei
2D platformer in C++ and SDL3
Game Dev
  • A 2D platformer written in C++23 on top of SDL3. The player is a samurai and the enemy sprites are yokai from Japanese folklore.
  • So far it has a game object system with separate update and draw passes for each layer, and a player state machine for idling, running and jumping.
  • Really basic stuff at this point as this project was my introduction to modern C++. I have some ambitious plans such as adding Jev as the middleman for real time NPC decision making.

Other projects

Monex
Go bank core with atomic cross-currency transfers
Systems
  • A bank backend in Go with accounts and cross-currency transfers that ensure atomic transfers.
  • It uses Postgres underneath, with SQLC generating the query layer so the schema and the Go types stay in sync.
  • Additionally, it supports gRPC with gRPC-Gateway adding a REST layer for clients that want JSON.
  • Other features include logging, sessions with refresh tokens, email verification and a CI/CD pipeline that publishes to EKS.
GogRPCPostgreSQLAWS
Source on GitHub
LiminalGPT
Decoder-only transformer for surrealist prose
Deep Learning
  • A decoder-only transformer trained from scratch to write surrealist prose. It uses ByteTok for tokenization, so the two projects feed each other.
  • The corpus is small and cleaned by hand. The architecture follows the Attention Is All You Need paper.
  • I have started working on a proper sequel to this project that will include the whole pipeline from pretraining to server deployment.
PythonPyTorch
Source on GitHub
RAG Agent
Document Retrieval assistant with HyDE and query expansion
AI Agent
  • A simple assistant built on LangGraph. This was basically my introduction to 'ai agents'. Back then (3 years ago lol), this was meta but now this type of workflow is considered prehistoric. Nonetheless, it is easy to get lost in the sauce and forget from where we started; so I'm keeping it here for posterity.
  • The system drafts a hypothetical answer and searches with that instead of the raw question, then rewrites the question a few different ways, so a vague request has a higher chance of hitting the most relevant embeddings.
LangGraphLangChainChromaDB
Source on GitHub
Autodiff
Backpropagation from scratch, no frameworks
Deep Learning
  • A scalar autograd engine with no libraries underneath it, written as my introduction to backpropagation.
  • This project by Andrej Karpathy was what started my deep learning journey! In simple terms, it builds a graph from a mathematical expression, then walks it backwards and accumulates the gradients.
  • On top of this graph network, this project includes abstractions in the form of neurons, layers, and a small MLP that allows you to train a simple neural network with plain gradient descent.

What I use.

I am familiar with a little bit of everything. However, I have not mastered any of these languages or tools. That being said, I prefer writing Python, TypeScript or Rust. Fun fact: I haven't used Java in 3 years!

  • Python
  • TypeScript
  • Rust

Below, I am mentioning everything else I am comfortable with for the AI ATS systems :)

Languages
TypeScript
JavaScript
Python
Rust
Go
C
C++
Java
SQL
Infrastructure & Tools
AWS
Cloudflare Workers
Docker
PostgreSQL
SQLite
Prisma
Bun
Vite
Git
GitHub Actions
Postman
Libraries & Frameworks
React
OpenTUI
TanStack Start
Tailwind CSS
Hono
Gin
gRPC
Vercel AI SDK
PyTorch
LangChain
LangGraph
ChromaDB

Monash, 2022 to 2026.

I finished my Bachelor of Computer Science degree in 2025, specializing in algorithms and data structures. My Honours thesis is on detecting AI generated audio deepfakes.

2026
Bachelor of Computer Science (Honours)
Monash University · Melbourne, Australia
In progress

Supervised in partnership with the Australian Federal Police.

Cloned voices show up in scam and impersonation calls a lot, and people are bad at catching them. Current detectors fail once the audio stops being clean, where their accuracy degrades when the clip is shortened, run through phone-quality compression, or generated with a system the detector hasn’t seen before.

My thesis tests whether representing audio as discrete tokens can improve detection compared with the continuous features commonly used today. I am building a pipeline that keeps the same benchmarks and self-supervised speech encoders, changing only the representation.

2022 to 2025
Bachelor of Computer Science, Algorithms & Data Structures
Monash University · Melbourne, Australia
Graduated December 2025

I’m looking for work in deep learning, backend infrastructure, and AI agents.

I’m based in Victoria, Melbourne. Email is the fastest way to reach me, and I’ll usually reply within three days.

Go to file

Search for a file to open