Home
Back home

Blog

Writing about ML, data, and things I learn along the way.

October 2025

Building a RAG Pipeline: Patterns That Worked

Patterns and techniques for building RAG systems with LangGraph, Qdrant, and OpenAI. Covers chunking, hybrid retrieval, query rewriting, and hallucination prevention.

LangGraphQdrantRAGOpenAIPython
Read post
December 2023

What 27,000 Steam Games Reveal About Genre Evolution

Building a bipartite genre network from the Steam database, projecting it into a weighted graph, running centrality and community detection, and learning why static game properties cannot predict playtime.

PythonNetworkXGephiLouvainRegression
Read post
January 2024

Learning ML and Deep Learning by Building Everything Twice

Implementing every ML algorithm twice: first from scratch in NumPy, then in PyTorch. From linear regression through CNNs, RNNs, and transformers, with miniprojects on MNIST, CIFAR-10, CelebA, and IMDB.

PythonNumPyPyTorchDeep LearningFrom Scratch
Read post
April 2026

Audio Feature Extraction: Designing an Audio Metrics Pipeline

Techniques for extracting quantitative voice metrics from raw WAV files. Covers pitch tracking, loudness measurement, spectral analysis, and silence detection using Python libraries.

ParselmouthlibrosaFastAPIAudio MLPython
Read post