Blog
Qwen-Image-2.1-Turbo: Theory of Operation
Follow a prompt through the text encoder, diffusion transformer, and VAE, with interactive diagrams and a calculator for exploring model memory.
I Asked GPT-6 Astra for a 3D Boudhanath and Got 2,004 Prayer Flags
I've used Claude daily for months. Then GPT-6 Astra landed, so I pointed it at a 3D reconstruction of Boudhanath. Two hours later, I hadn't written a line.
Claude Code Features I Found by Using It Every Day
I've used Claude Code daily for months. The biggest wins came from features I stumbled onto, not the docs: rewind, queued prompts, /goal, /powerup, and more.
Docker Basics: What a Dead Server Taught Me About Containers
I spent a week setting up a Fortran weather model on a server. Then it died. Here's the Docker intro and tips I wish I'd had before redoing it all by hand.
When Invariant Learning Helps a GNN Recommender (and When It Collapses)
LightGCN's Recall@20 drops 46% when you swap a random split for a temporal one. Here's how invariant learning partially fixes it, and the failure mode we found when IRM is pushed too hard.
Why Deep GNNs Don't Work: Oversmoothing, Oversquashing, and Underreaching
Stacking layers works for CNNs and Transformers. Try it on a graph neural network and it breaks in three distinct ways, each with its own mechanism and its own fix.
Should You Even Use a GNN?
Most graph-shaped problems aren't graph problems. A framework for deciding when a GNN is worth the complexity, and when XGBoost with aggregate features will quietly beat it.
15 Claude Code Features Most People Don't Know About
Boris Cherny from Anthropic shared his favorite hidden features: mobile coding, session teleporting, automated loops, parallel worktree agents, voice input, and more.
Domain Adaptation: Why Your Model Breaks When the Background Changes
Car classifiers that fail in garages, X-ray models that break across hospitals, and how MMD forces neural networks to learn features that transfer across domains.
Sharp vs. Flat Minima: Why Some Models Generalize and Others Just Memorize
Neural networks can memorize random labels. So why do they generalize on real data? The answer is in the geometry of the loss surface.
Invariance and Equivariance: Teaching Neural Networks About Symmetry
Why CNNs break when you rotate the input, how the Reynolds operator builds symmetry into weight space, and a 1,800-parameter network that crushed a 454,000-parameter CNN.
Disentangled Representations: Why VAEs Can't Disentangle (and What Actually Works)
Locatello et al. proved unsupervised disentanglement is impossible. Here's why rotational symmetry breaks identifiability, and how sparsity fixes it.
Why Your Model Works in the Notebook but Breaks in Production
Covariate shift, concept drift, retraining strategies, and the monitoring that keeps ML systems alive after deployment.
Recommendation Systems: From Matrix Factorization to Two-Tower Models
Collaborative filtering, content-based methods, two-tower retrieval, GNN-based recs, and the popularity bias problem that breaks most systems.
Airflow and DAGs: The Orchestration Tool Every Data Team Ends Up Using
What Airflow is, how DAGs work, building your first ML pipeline, error handling, and when to use something else instead.
Spark, Hadoop, and PySpark: When You Actually Need Distributed Computing
Hadoop's legacy, why Spark replaced it, PySpark for ML feature engineering, and the honest threshold for when single-machine tools stop working.
Deploying ML Models with SageMaker: Endpoints, Scaling, and When Not to Bother
Real-time and serverless endpoints, auto-scaling, A/B testing with production variants, cost optimization, and when a FastAPI server is the better choice.
Getting Started with Claude Code: Everything I Wish I Knew on Day One
A beginner's guide to Claude Code covering CLAUDE.md, context management, key commands, and the feedback loop that makes it actually useful.
Claude Code Beyond the Basics: Agents, Context Engineering, and Production Workflows
An intermediate guide to Claude Code covering context management, CLAUDE.md patterns, subagents, custom commands, hooks, MCP, skills, and CI integration.
Building a RAG System from Scratch
A step-by-step guide to building retrieval-augmented generation with Python. Embeddings, vector search, and generation, no frameworks required.
Context Poisoning: How Attackers Manipulate LLM Context Windows
Prompt injection, data poisoning in RAG systems, and adversarial inputs that hijack LLM behavior. Real attack vectors and practical defenses for production systems.
What is Fine-Tuning, and Why Does Every AI Company Do It?
RLHF, LoRA, full fine-tuning explained without the jargon. How companies take a base model and turn it into something actually useful.
Fitting Big Models on Small GPUs
Quantization techniques (GPTQ, GGUF, AWQ), distillation as a size reduction strategy, and practical tradeoffs for running 70B models on consumer hardware.
Model Distillation: The Technique, The Controversy, and How To Do It
What model distillation is, how DeepSeek allegedly used it on frontier model outputs, and a practical guide with lessons from our reasoning distillation paper.
Automated Rule Generation for Fraud Detection Using Deep Learning and Explainability
How to automatically extract interpretable, auditable fraud detection rules from LSTM models using SHAP, Anchors, knowledge distillation, and temporal pattern mining.
UrbanTherm: GPU-Accelerated Surface Energy Balance for Urban Microclimate Modeling
How we extended SOLWEIG with a full surface energy balance solver, Newton-Raphson surface temperatures, multi-layer conduction, canopy transpiration, and spatial air temperature, all running on GPU at 1m resolution.
Industry-Level RAG Practices: A Comprehensive Reference
A detailed guide covering the full RAG pipeline: chunking, embeddings, vector databases, retrieval strategies, reranking, advanced architectures (CRAG, Self-RAG, Graph RAG, RAPTOR), evaluation, and production deployment.