Notes on AI agents, ML systems, and engineering experiments.
LLMs are deterministic, but small changes to a prompt can produce completely different outputs. I explored that sensitivity through the lens of dynamical systems and chaos.
A deploy hung for fifteen minutes. The cause was 3.9 GB of NVIDIA CUDA wheels being installed for a model that runs on CPU. This is the side quest from the HDR project: why PyTorch ships a CUDA runtime you don't ask for, what inference actually needs, and what I learned porting GMNet to tinygrad by hand and proving the outputs identical to a fraction of a pixel.
AI image editors strip the HDR gain map from iPhone photos. I used GMNet to make a new one, then packed it into a JPEG that works in Chrome, Preview, and Photos.
Practical techniques and hard-won tips for fine-tuning large language models: dataset prep, parameter-efficient methods, and evaluation.
An intuition-first introduction to Graph Neural Networks: message passing, aggregation, and why GNNs unlock problems that grids and sequences cannot.
Field notes from migrating a production TensorFlow 1.x project to TF 2.x — the traps, the compatibility shims, and what was actually worth the rewrite.
Training a Deep Q-Network agent in Unity to collect yellow bananas and avoid blue ones — replay buffers, target networks, the DQN essentials.
Forecasting call-center average speed of answer (ASA) using ARIMA and gradient-boosted trees (LightGBM), with what-if staffing analysis on real operational data.
Building a path planner for a simulated highway: behavior planning, trajectory generation, and smooth lane changes in traffic.
Implementing a Model Predictive Controller for autonomous vehicle steering and throttle — optimizing a cost function over a rolling horizon.
Classical computer-vision techniques — color thresholds, perspective transforms, polynomial fits — to detect lane lines from a dashcam feed.
A tour through randomness: why it matters in modeling, random walks and the Wiener process, and estimating area with Monte Carlo.