vol. 02 · spring 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
In practice, more sophisticated requests directed at an LLM rarely achieve their best results through a single model call. It is often more effective to break them down into a series of specialized tasks, each supported by real data rather than assumptions. This approach not only improves the accuracy of the results, but also makes the workflow easier to understand, inspect, and troubleshoot when something does not work as expected.
read the full essay →Recent notes.
view all 6 entries →005
note
Remote debugging Java applications on Kubernetes without digging through logs
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
Exception handling in REST APIs: from concept to root cause
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