Back home

Blog

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

From Raw Sensor Logs to an Activity Classifier

A build-journey walkthrough of my Activity Recognition project using WISDM sensor data. Covers ingestion, phone accel/gyro fusion, sliding-window framing, XGBoost training, and what confusion matrix errors taught me.

PythonWISDMXGBoostTime SeriesSensor Fusion
Read post

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

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

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

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