Writing

Notes on what I build and learn.
My Dev Setup: Same Keys Everywhere

My Dev Setup: Same Keys Everywhere

Omarchy, Neovim, tmux, IntelliJ and a split keyboard, set up so one habit works in every tool.
Calling C++ and Go from Dart using FFI

Calling C++ and Go from Dart using FFI

Calling native libraries from Dart with dart:ffi, and which languages work.
Understanding JWT Refresh Token Rotation & Revocation

Understanding JWT Refresh Token Rotation & Revocation

Why a refresh token lives for 7 days, and what the revoke column is for.
Speed Up Whisper with CTranslate2

Speed Up Whisper with CTranslate2

Converting Whisper with CTranslate2 so it runs faster and lighter.
Data Extraction with LangChain and Ollama Locally

Data Extraction with LangChain and Ollama Locally

Getting typed rows out of a local LLM with Pydantic and LangChain.
Khmer Speech Recognition

Khmer Speech Recognition

Fine-tuning Whisper for Khmer, and why the data was the hard part.
Audio Augmentation Techniques for Deep Learning

Audio Augmentation Techniques for Deep Learning

Six ways to stretch a small audio dataset, with the code I use.
7-Segment LED Display with Proteus Simulation

7-Segment LED Display with Proteus Simulation

Turning four input bits into ten digits with K-maps, then simulating the circuit in Proteus.
Russey Keo High School Memories

Russey Keo High School Memories

A video of my high school years, made after the BACII exam.
© 2026 Phanith LIM