Archive

2026  26

May  5

If you won't carry the pager, maybe don't push to mainline · article
Testing Go CLIs with testscript · article
A tour of txtar · article
Type-safe slogging · article
Hoisting wire plumbing out of your Go handlers · article

February  2

What canceled my Go context? · article
Structured concurrency & Go · article

2025  27

December  1

Tap compare testing for service migration · article

November  3

Splintered failure modes in Go · article
Re-exec testing Go subprocesses · article
Revisiting interface segregation in Go · article

October  3

Avoiding collisions in Go context keys · article
Organizing Go tests · article
Subtest grouping in Go · article

September  3

Let the domain guide your application structure · article
Test state, not interactions · article
Early return and goroutine leak · article

August  2

Lifecycle management in Go tests · article
Gateway pattern for external service calls · article

May  1

You probably don't need a DI framework · article

April  3

Preventing accidental struct copies in Go · article
Go 1.24's "tool" directive · article
Capturing console output in Go tests · article

March  4

Deferred teardown closure in Go testing · article
Three flavors of sorting Go slices · article
Nil comparisons and Go interface · article
Stacked middleware vs embedded delegation in Go · article

February  2

Why does Go's io.Reader have such a weird signature? · article
Go slice gotchas · article

January  4

The domain knowledge dilemma · article
Hierarchical rate limiting with Redis sorted sets · article
Dynamic shell variables · article
Link blog in a static site · article

2024  40

December  4

Running only a single instance of a process · article
Function types and single-method interfaces in Go · article
SSH saga · article
Injecting Pytest fixtures without cluttering test signatures · article

October  4

Docker mount revisited · article
Topological sort · article
Writing a circuit breaker in Go · article
Discovering direnv · article

September  5

Notes on building event-driven systems · article
Bash namerefs for dynamic variable referencing · article
Behind the blog · article
Shell redirection syntax soup · article
Shades of testing HTTP requests in Python · article

August  4

Taming parametrize with pytest.param · article
HTTP requests via /dev/tcp · article
Log context propagation in Python ASGI apps · article
Please don't hijack my Python root logger · article

July  3

The *nix install command · article
Here-doc headache · article
The sane pull request · article

June  1

I kind of like rebasing · article

May  1

Protobuffed contracts · article

April  2

TypeIs does what I thought TypeGuard would do in Python · article
ETag and HTTP caching · article

March  2

Crossing the CORS crossroad · article
Dysfunctional options pattern in Go · article

February  4

Einstellung effect · article
Strategy pattern in Go · article
Anemic stack traces in Go · article
Retry function in Go · article

January  8

Type assertion vs type switches in Go · article
Patching pydantic settings in pytest · article
Omitting dev dependencies in Go binaries · article
Eschewing black box API calls · article
Annotating args and kwargs in Python · article
Rate limiting via Nginx · article
Statically enforcing frozen data classes in Python · article
Planning palooza · article

2023  48

December  3

Reminiscing CGI scripts · article
Debugging dockerized Python apps in VSCode · article
Banish state-mutating methods from data classes · article

November  3

Finding flow amid chaos · article
The diminishing half-life of knowledge · article
Oh my poor business logic · article

October  2

Pesky little scripts · article
Footnotes for the win · article

September  4

Dotfile stewardship for the indolent · article
An ode to the neo-grotesque web · article
Self-hosted Google Fonts in Hugo · article
Configuring options in Go · article

August  7

Dummy load balancer in a single Go script · article
Limit goroutines with buffered channels · article
Writing a TOTP client in Go · article
Interface guards in Go · article
Writing on well-trodden topics · article
Go structured logging with slog · article
Notes on exit interviews · article

March  1

Tinkering with Unix domain sockets · article

2022  61

December  1

Colon command in shell scripts · article

November  3

Faster bulk_update in Django · article
Installing Python on macOS with asdf · article
Save models with update_fields for better performance in Django · article

October  4

Python logging quirks in AWS Lambda environment · article
Dissecting an outage caused by eager-loading file content · article
Auditing commit messages on GitHub · article
To quote or not to quote · article

September  5

Returning values from a shell function · article
Verifying webhook origin via payload hash signing · article
Recipes from Python SQLite docs · article
Prefer urlsplit over urlparse to destructure URLs · article
Pick random values from an array in SQL(ite) · article

August  1

ExitStack in Python · article