Professional notes by Craig Johnston
long-form, short-form, working drafts · since 2008
long-form, short-form, working drafts · since 2008
VOL. XIX · MMXXVI
81 NOTES IN PRINT
81 NOTES IN PRINT
Latest note · folio diagram
flowchart LR A1[Familiar tool bias] -.- M1 A2[SQL is the default hammer] -.- M1 A3[Routing hints feel optional] -.- M1 M1[Mode A: Path of Least Resistance] --> P B1[Reads the tool description] -.- M2 B2[Repeats it back accurately] -.- M2 B3[Acts on the training-data prior anyway] -.- M2 M2[Mode B: Comprehension is not Compliance] --> P P((BAD AGENT<br/>OUTPUT))
What building an MCP-powered data platform taught me about why LLMs ignore the instructions you spent months writing.
Recent Notes
LXXX
PostgreSQL to OpenSearch with PySpark on Kubernetes
Date-windowed ETL, idempotent upserts, and CronJob scheduling
25 FEB 2026
LXXIXGoReleaser with Cosign Signing and Syft SBOM
Signed Builds and Supply Chain Security for Go Projects
11 FEB 2026
LXXVIIIAI on a Leash: Complete Go Project Configuration
AI on a Leash for Go
09 FEB 2026
LXXVIIRalph's Uncle
AI on a Leash
06 FEB 2026
LXXVIGo's Constraints and Idioms Make AI Coding Better
From Vibe Coding to Vibe Engineering
04 FEB 2026
LXXVMCP Is Flawed. Build With It Anyway.
Context has always been the hard problem. MCP forces you to solve it.
20 JAN 2026
LXXIVAI Data Lake Access with MCP and S3
Building composable MCP servers for object storage
19 JAN 2026
LXXIIIAI Data Warehouse Access with MCP and Trino
Building composable MCP servers for enterprise data
17 JAN 2026
LXXIIkubefwd: Forward Kubernetes Services to Localhost by Name
One command, no configuration, automatic reconnection
04 JAN 2026
LXXIkubefwd in 2026: Interactive TUI and Auto-Reconnect
The complete guide to kubefwd's new features
04 JAN 2026
LXXAI-Assisted Kubernetes Development with kubefwd
Let your AI assistant manage cluster connections
04 JAN 2026
LXIXApache NiFi: Dynamic HTTP Listeners with portpxy
Apache NiFi Part 5
20 APR 2023
LXVIIIApache NiFi: JOLT Transformations Part 2
Apache NiFi Part 4
15 FEB 2023
LXVIIApache NiFi: JOLT Transformations Part 1
Apache NiFi Part 3
10 DEC 2022
LXVIApache NiFi: Securing Your Data Flows
Apache NiFi Part 2
05 OCT 2022
LXVApache NiFi: Production Kubernetes Deployment
Apache NiFi Part 1
30 JUL 2022
LXIVLinear Algebra in Go: High-Performance Computing
Linear Algebra in Go Part 10
25 MAY 2022
LXIIILinear Algebra in Go: Neural Network Foundations
Linear Algebra in Go Part 9
20 MAR 2022
LXIILinear Algebra in Go: PCA Implementation
Linear Algebra in Go Part 8
15 JAN 2022
LXILinear Algebra in Go: Building a Regression Library
Linear Algebra in Go Part 7
10 NOV 2021
LXLinear Algebra in Go: Statistics and Data Analysis
Linear Algebra in Go Part 6
05 SEP 2021
LIXLinear Algebra in Go: SVD and Decompositions
Linear Algebra in Go Part 5
30 JUN 2021
LVIIILinear Algebra in Go: Eigenvalue Problems
Linear Algebra in Go Part 4
25 APR 2021
LVIILinear Algebra in Go: Solving Linear Systems
Linear Algebra in Go Part 3
20 FEB 2021
LVILinear Algebra in Go: Matrix Fundamentals
Linear Algebra in Go Part 2
15 DEC 2020
LVLinear Algebra in Go: Vectors and Basic Operations
Linear Algebra in Go Part 1
10 OCT 2020
LIIIAdvanced Platform Development with Kubernetes
Enabling Data Management, the Internet of Things, Blockchain, and Machine Learning
30 AUG 2020
LIVLinear Algebra: Practical Applications in ML
Linear Algebra Crash Course for Programmers Part 12
30 AUG 2020
LIILinear Algebra: Principal Component Analysis
Linear Algebra Crash Course for Programmers Part 11
25 JUN 2020
LILinear Algebra: Singular Value Decomposition
Linear Algebra Crash Course for Programmers Part 10
20 APR 2020