Working with Claude Code
I audited my prompts for a model that reads literally
Running Anthropic's prompt-audit over 2,700 lines of Claude Code steering before moving to Fable 5.1. The grep for pressure language hit once. The cruft was drift and changelog phrasing, and seven of the eight recommended prompt snippets were already in the harness.
7 Sep 2026
·
8 min read
·94 views
Working with Claude Code
The Claude Code security-guidance plugin, pushed to its limits
I had Anthropic's always-on security plugin installed for a month and assumed it was reviewing every turn. Its own log said otherwise. What each layer actually does, how far its configuration goes, and the one hook that says no.
6 Sep 2026
·
8 min read
·356 views
LLMs, the whole thing
·
Part 7
Trainable self-attention: query, key, value, and a thermostat on the softmax
Section 3.4 of Raschka's book on six tokens with real PyTorch output: three shared learned matrices, eighteen private q/k/v vectors, why d_in is forced, why scores are divided by the square root of d_k, and why 'weights' now means two different things.
3 Sep 2026
·
12 min read
·96 views
From Java to Python
FastAPI for Spring developers: the boilerplate that isn't there
I opened a FastAPI file as a Spring engineer and kept noticing what wasn't there: no MapStruct mapper, no @Valid, no springdoc. The type signature had already done the work.
1 Sep 2026
·
5 min read
·114 views
Spring and Java mechanics
The Online Part of RAG
The second half of RAG: retrieve the right chunks, ground the prompt in them, and let DeepSeek answer - or honestly say 'I don't know' when the context is silent.
31 Aug 2026
·
5 min read
·167 views
Spring and Java mechanics
The Offline Half of RAG
RAG has two halves, and only one uses a language model. A walkthrough of the other one - read, chunk, embed, index - built with Spring AI, pgvector and Ollama.
31 Aug 2026
·
6 min read
·158 views
Security and privacy, in practice
A honeypot that only listens (and fail2ban that bites)
A logging-only honeypot on my Hetzner box: an unprivileged user, a systemd sandbox with one non-obvious trap that silences it, and fail2ban to turn every knock into a self-expiring firewall ban.
30 Aug 2026
·
5 min read
·115 views
Working with Claude Code
OpenKB: knowledge that compiles
Most 'chat with your docs' tools retrieve fragments at query time. OpenKB compiles the synthesis once, at ingest - into a Markdown wiki you can read, diff, and ship as an installable Claude Code skill.
30 Aug 2026
·
5 min read
·220 views
Traces, Tempo and the LGTM stack
Auto-instrumenting Spring Batch 6 with OpenTelemetry — four silent failures
Wiring Spring Boot 4 + Spring Batch 6 to emit job/step traces into Tempo and spring_batch_* metrics into Prometheus — and the four config traps that each failed the same way: green build, zero errors, nothing exported.
26 Aug 2026
·
5 min read
·172 views
Maths for LLMs
Broadcasting: how a [4,256] table adds to a whole batch
The positional-embedding sum quietly relies on broadcasting. Here is the whole rule — align from the right, stretch the 1s — and why PyTorch never copies a byte.
23 Aug 2026
·
4 min read
·97 views