vol. 03 · summer 2026
An engineering notebook of fixes, tweaks, and patterns worth reusing.
Kubernetes, AWS, dev environments, and the occasional deeper dive. Each post starts from a real problem, the fix that worked, and the reasoning behind it.
This month's essay.
long-form · once a month · ishThe problem
Running a local model on a Mac usually means assembling separate CLI tools: one to download weights, one to serve them, a third to chat. Whether a model fits in memory at a given context length stays guesswork until the load fails, and connecting your own code to the result is one more integration.
read the full essay →Recent essays.
long-form · deep dives007
essay
Re-evaluating runtime choices when integration is no longer the bottleneck
The cost of moving to a new technology was never learning the language itself. It was the integration work: assembling the surrounding framework stack, adapting it to an existing system, and wiring it into production tooling, often slowed down by inconsistent documentation and fragile tutorials before anything became productive.
Jun 22, 2026
006
essay
InvestigatorAI: a near-production multi-agent AI system
Complex investigative requests rarely get their best results from a single model call. Decomposing them into specialized tasks, each grounded in real data, improves accuracy and makes the workflow inspectable when a finding is wrong.
Jun 03, 2026
004
essay
Observability in a hybrid microservices stack: Spring Boot, FastAPI, and LangChain on Kubernetes
A failure in a service that calls two others usually means checking multiple log streams with no shared context. Propagating a correlation ID through every request hop turns debugging into a single query instead of timestamp archaeology.
May 05, 2026
Recent notes.
view all 9 entries →008
note
Native image vs JVM on Spring Boot 4.1: 4.3x less memory, 18x faster startup
Native image versus JVM comparisons are usually quoted from external benchmarks. This service is built both ways from one source tree and measured on one dashboard, so the numbers describe this code on this cluster.
Jul 14, 2026
005
note
Remote debugging Java on Kubernetes: attaching the IDE to the JVM inside the pod
Debugging through logs in Kubernetes often means rebuilding images, redeploying, reproducing the issue, and hoping the logs contain the missing detail. Remote debugging shortens that loop by letting you inspect the live application directly inside the cluster.
May 09, 2026
003
note
Centralized exception handling in REST APIs: the same handler contract in Spring and FastAPI
Most API bugs trace back to exceptions that were either silently swallowed (making the error invisible) or dumped raw into the response, exposing internals. A centralized handler with consistent logging and a structured error response fixes both.
May 03, 2026
002
note
Working with Kubernetes locally: Minikube, multiple clusters, and k9s
Testing Kubernetes workloads against a remote cluster costs three minutes per cycle, minimum. A local cluster built with Minikube collapses that loop to seconds.
May 03, 2026
001
note
Dev environment from scratch: managing Java, Python, and Node versions on Mac
Jumping between projects means jumping between language versions. Without a version manager, we're either pinned to one version or stuck reinstalling runtimes by hand.
May 01, 2026