<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>vmcforge — engineering notebook</title><description>Small fixes, environment tricks, and the patterns I keep reaching for.</description><link>https://vmcforge.dev/</link><item><title>Observability in a hybrid microservices stack: Spring Boot, FastAPI, and LangChain on Kubernetes</title><link>https://vmcforge.dev/essays/observability-microservices-spring-fastapi-langchain-kubernetes/</link><guid isPermaLink="true">https://vmcforge.dev/essays/observability-microservices-spring-fastapi-langchain-kubernetes/</guid><description>Three services, three runtimes, one request. When it fails, you need logs, metrics, and a distributed trace that all share the same correlation ID — so the question &apos;what happened?&apos; has a single answer, not four parallel grep sessions.</description><pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate></item><item><title>Exception handling in REST APIs: from concept to root cause</title><link>https://vmcforge.dev/notes/exception-handling-rest-api-spring-fastapi/</link><guid isPermaLink="true">https://vmcforge.dev/notes/exception-handling-rest-api-spring-fastapi/</guid><description>After twenty years of code review, the same pattern breaks teams: exceptions get swallowed or leaked raw. A centralized handler with a clear contract fixes both — and works the same way in Spring and FastAPI.</description><pubDate>Sun, 03 May 2026 00:00:00 GMT</pubDate></item><item><title>Working with Kubernetes locally: Minikube, multiple clusters, and k9s</title><link>https://vmcforge.dev/essays/local-kubernetes-minikube-k9s/</link><guid isPermaLink="true">https://vmcforge.dev/essays/local-kubernetes-minikube-k9s/</guid><description>Iterating against a remote Kubernetes cluster means a build-push-deploy cycle on every change. Minikube gives you real clusters on your machine — several of them — where you can test the full deployment path without consequences.</description><pubDate>Sun, 03 May 2026 00:00:00 GMT</pubDate></item><item><title>Dev environment from scratch: managing Java, Python, and Node versions on Mac</title><link>https://vmcforge.dev/essays/dev-environment-from-scratch-sdkman-pyenv-nvm/</link><guid isPermaLink="true">https://vmcforge.dev/essays/dev-environment-from-scratch-sdkman-pyenv-nvm/</guid><description>Before you write a single line of code, you need to be able to switch between language versions without thinking. This is how I set that up.</description><pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate></item></channel></rss>