Skip to content

All posts 28 posts

CS · Fundamentals

How DNS workswhy one name lookup sent 8 queries in Kubernetes

When code calls http.Get, the name has to become an IP address before any request goes out. That's DNS's job. With the same setup as a Kubernetes pod, one name lookup sent 8 queries to a tiny DNS server I wrote to count them.

Infra · Kubernetes

Kubernetes on‑premises ErrImagePullpulling an image that's already there

When customers called because an installed service wouldn't start, the pod was usually in ErrImagePull, sometimes ImagePullBackOff. At first that puzzled me.

Infra · Kubernetes

Kubernetes requests and limitswho killed it, OOMKilled or Evicted?

Writing the GOMEMLIMIT post, I mentioned container memory limits often, but on the Kubernetes side I only knew requests as a floor and limits as a ceiling.

AI · AI Tools

AI job search and tailored resumesjobhunt, a Claude Code and Codex skill

While preparing to change jobs, I repeated the same chores every week. I searched job sites, read each posting to judge the fit, and reworked my resume.

Go · Concepts

Go goroutine leaks and pprofchannels, mutexes, and exit paths

Starting a goroutine is easy. The hard part was deciding who changes the data, who finishes the work, and when a function may return.

Go · Concepts

Go sync.Pool and buffer reuseafter Put, Bytes() isn't yours

In the previous post, total allocations stayed at 256MiB however I set GOGC and GOMEMLIMIT. Reusing short-lived buffers with sync.Pool is one way to shrink it.

AI · Essays

LLM prompting vs RAG vs fine‑tuningweights or input?

I spend a good part of every day working with AI, for code and for writing. Yet I couldn't explain how the model was built, or in what order it computes an answer to what I send it.

Go · Concepts

Go GOMEMLIMIT and GOGCOOMKilled with an 800MB heap

The container limit was 1GB, yet the process was OOMKilled with an 800MB heap. Go has a garbage collector, so how did memory run out?

Go · Concepts

Go GMP and GOMAXPROCScontainer CPU limits and goroutines

Put go in front of a call and it runs concurrently. So do 100,000 goroutines mean 100,000 threads? Does GOMAXPROCS=1 mean one task at a time?

esc

Recent posts

↑↓ move↵ openOpen search page ›