I'm @brandur, an occasional writer, and engineer on Crunchy Bridge, previously Stripe and Heroku.
I most often talk about web APIs, Postgres, Rust, software safety and resilience, efficient human interfaces, and running.
How and why we started annotating all our Go tests with t.Parallel()
, and why you might want to consider doing so too. August 26, 2023
Soft Deletion Probably Isn't Worth It
The traditional soft deletion pattern using deleted_at
columns leaks into code, curbs the usefulness of foreign keys, and makes data removal difficult. Luckily, there’s an alternative. July 19, 2022
Postgres: Boundless `text` and Back Again
The text
type in Postgres, why it’s awesome, and why you might want to use varchar
anyway. Also, a story about trying to get string parameters bounded at Stripe. September 10, 2021
Older articles available here.
Why to prefer `t.Cleanup` to `defer` in tests with subtests using `t.Parallel`
Go’s defer
and t.Cleanup
have similar semantics, but there’s a good reason to prefer the use of t.Cleanup
specifically in the presence of parallel subtests. September 5, 2023
Older fragments available here.