From Java to Python
Jinja2 from the engine up
The same engine powers Flask pages, Ansible playbooks and static sites. Here is Jinja2 learned from the engine out - delimiters, autoescaping, inheritance and the Environment - with every concept run by hand, coming from the JVM.
23 Aug 2026
·
7 min read
Fine-tuning a 270M model on my rocm with unsloth libs
I ran a full LoRA fine-tune of Gemma 3 270M on my AMD Strix Halo iGPU. It froze the whole machine twice before three lines of config fixed it — here's the run, the fix, and what it taught a backend dev about how LLMs actually work.
22 Aug 2026
·
8 min read
From Java to Python
Learning Python as a Java Dev: My On-Ramp to AI
I'm a Spring/Kafka backend engineer who could read Python but never wrote it. The AI world pulled me in, so I learned it by building a 10-lesson course that maps every concept back to Java, then built the tutor agent that taught me.
19 Aug 2026
·
4 min read
LLMs, the whole thing
·
Part 6
Self-attention, from scratch: a context vector is a weighted average
The first attention mechanism in Raschka's LLM book, explained the way it finally clicked for me, a Java dev who bounces off dense maths: self-attention is just three operations, a dot product, a softmax, and a weighted average.
18 Aug 2026
·
9 min read
Maths for LLMs
Positional embeddings and vector addition
The maths under positional embeddings, from zero: a token becomes what it is plus where it sits, and that 'plus' is a literal element-wise sum of two vectors. Why the differently-sized tables never actually clash, worked by hand, with slides.
16 Aug 2026
·
5 min read
LLMs, the whole thing
·
Part 5
The Lookup Table That Learns: Token Embeddings and the Order-Blind Trap
The finale of chapter 2: how meaningless token IDs become the tensor attention actually consumes. It comes down to two lookup tables and one addition - a learnable embedding table for meaning, and a second, position-indexed table for order.
16 Aug 2026
·
6 min read
LLMs, the whole thing
·
Part 4
The Sliding Window: How One Story Becomes Thousands of Training Examples
I printed my first training batch, saw shape [8, 4], and could not say what the two numbers counted. Untangling it - one short story sliced into 1,286 windows, grabbed 8 at a time - made the whole GPT input pipeline finally go transparent.
16 Aug 2026
·
6 min read
LLMs, the whole thing
·
Part 3
From Tokens to Token IDs
An LLM never sees your text — it sees integers. Building a tokenizer from a regex and a dictionary, hitting the out-of-vocabulary wall, and why GPT’s byte-pair encoding is the fix that needs no unknown token.
14 Aug 2026
·
8 min read
Working with Claude Code
Embeddings, 384 Dimensions, Three at a Time
I built a local instrument to look at embedding space, and most of what I assumed turned out to be wrong: nothing is orthogonal, no individual dimension means anything, and king minus man plus woman does not give you queen.
13 Aug 2026
·
10 min read
Maths for LLMs
Cosine similarity and the dot product
A from-zero tour of the maths under large language models: how words become coordinates, why similarity is an angle, and the single multiply-and-add a computer uses to compare two meanings.
13 Aug 2026
·
6 min read