Projects
My ongoing repo where I build language models and related concepts from first principles. I’ve worked through multiple sub-projects so far:
- Character-level GPT
- GPT-2 124M reimplementation with RoPE
- BPE tokenizer from scratch (with a Rust encoder for 3.7x speedup)
- LLM inference with KV cache and speculative decoding
- Supervised fine-tuning for reasoning and instruction following
- Expert iteration for self-improvement on math
- Group Relative Policy Optimization (GRPO)
Currently working on a FlashAttention2 implementation from first principles.
I built this as a Claude Code plugin that provides multiple skills for classical image processing: format conversion, SVG-to-raster, resize/crop/rotate, color adjustments, blur/sharpen/denoise, edge detection and segmentation, and image compositing with background removal.
I wrote this ComfyUI custom node package for loading SVG files and rasterizing them into images with configurable width, scale, background color, and border. Uses CairoSVG under the hood.
A collection of various tutorials I wrote for my own use and to share with others.
I used deep learning super-resolution (SRCNN, EDSR, VDSR) to upscale seismic data by 2x in the spatial direction and remove spatial aliasing. This work was published as a paper back in 2019, built during my time at TU Delft and University of Amsterdam.
My reading notes and summaries for deep learning papers organized by category. Covers diffusion models (DDPM, DDIM, ControlNet, SDXL, and more), Transformers (Attention Is All You Need), and GANs.
I put together four progressively more sophisticated PyTorch training templates using CIFAR-10: vanilla single-GPU, multi-GPU with DistributedDataParallel, PyTorch Lightning with TensorBoard, and PyTorch Lightning + Hydra for rapid experimentation with swappable models, optimizers, and configs.
I explored how to pipeline models with skip connections (ResNets, UNets) across multiple GPUs using torchgpipe.
A sample Plotly Dash interactive dashboard I built for tracking stock price movement with simple moving average and candlestick pattern charts.
Gists
Step-by-Step Guide to setup your own personal GPU server
I wrote this comprehensive guide for setting up remote SSH access to a personal GPU workstation running Ubuntu, covering SSH keys, firewall setup, and ngrok tunneling.
Managing multiple CUDA versions using environment modules
My notes on installing multiple CUDA versions side by side on Ubuntu and switching between them using environment-modules.