Posts
Projects
- REINFORCE on a lunar lander and Flappy Bird Code - 06 June 2026
- Practicing ML from scratch on Deep-ML Visit - 03 June 2026
- Backprop through time, from scratch - 16 May 2026
- A first LSTM in PyTorch, classifying MNIST as a sequence Code - 16 May 2026
- Five PyTorch notebooks I typed out by hand Code - 16 May 2026
- Transfer learning lost to my small CNN on FER2013 Code - 14 May 2026
- First PyTorch project, an MNIST classifier Code - 12 May 2026
- HackerRank Orchestrate 2026: a support triage agent that doesn't hallucinate Code - 03 May 2026
- A YouTube debate-video aggregator with AI recommendations Visit Code - 03 May 2026
- A full-stack web app for eight dollars a year Visit - 06 March 2026
Notes
- World models and the text ceiling - 14 June 2026
- PPO as a stack of repairs to the policy gradient - 09 June 2026
- GRPO and the critic it throws away - 09 June 2026
- Soft Actor-Critic: paying an agent to stay unsure - 08 June 2026
- Dueling DQN: splitting state value from action advantage - 04 June 2026
- Simply explained: dueling DQN - 04 June 2026
- Double DQN: why the max leans high - 04 June 2026
- Simply explained: double DQN - 04 June 2026
- Quantization notes, from FP32 down to packed 4-bit weights - 31 May 2026
- Eigenvectors: vectors for which a matrix doesn't cause a change in direction - 30 May 2026
- Basic linear algebra notes - 29 May 2026