Digital garden
Notes that grow.
Every note here is one idea, stated as a claim, linked to at least two others. Nothing is finished - things move from seedling to evergreen as they earn it.
- Tools - tools, budding, 9 inbound
- Retries without backoff turn a blip into an outage - distributed-systems, budding, 6 inbound
- Traefik v3 - a self-hosted reverse proxy setup - tools, budding, 5 inbound
- Idempotency is a property, not a mechanism - distributed-systems, evergreen, 5 inbound
- Timeouts are a design decision, not a default - distributed-systems, budding, 5 inbound
- Music - music, budding, 4 inbound
- At-least-once delivery makes deduplication your job - distributed-systems, budding, 4 inbound
- Cache invalidation fails at boundaries you don't own - distributed-systems, budding, 4 inbound
- Identity & Access - identity, seedling, 3 inbound
- Linux - linux, budding, 3 inbound
- A shared database is distributed coupling in disguise - distributed-systems, budding, 3 inbound
- A queue is a loan against future capacity - distributed-systems, budding, 3 inbound
- An access token is not proof of identity - identity, budding, 2 inbound
- FFmpeg - how to do (almost) anything - tools, evergreen, 2 inbound
- Inspecting & tuning a running Linux system - linux, budding, 2 inbound
- Loading patches, sounds & backups on the Korg Pa1000 - music, budding, 2 inbound
- The OIDC authorization-code flow with PKCE - identity, budding, 2 inbound
- Self-hosting Vaultwarden behind Traefik - tools, budding, 2 inbound
- Make any project agent-ready - developer-experience, budding, 2 inbound
- Onboarding a human and onboarding an AI are the same problem - developer-experience, budding, 2 inbound
- It's a wave - doing anything with audio - music, budding, 1 inbound
- Modding the Korg Pa50 - floppy to USB - music, budding, 1 inbound
- Sharing USB devices over the network with USB-IP - linux, budding, 1 inbound
- Auto-updating Docker containers with Watchtower - tools, budding, 1 inbound
- Recovering lost files with TestDisk and PhotoRec - tools, evergreen, 1 inbound
- Self-hosting 9router - one endpoint for every LLM provider - tools, budding, 1 inbound
- Self-hosting Rustpad behind Traefik - tools, budding, 1 inbound
- Web SSH with Sshwifty behind Traefik - tools, budding, 1 inbound
- Distributed Systems - distributed-systems, budding, 1 inbound
- Developer Experience - developer-experience, budding, 1 inbound
- The outbox pattern gets you at-least-once without a shared database - distributed-systems, budding, 1 inbound
- A circuit breaker protects the caller, not the callee - distributed-systems, budding, 1 inbound
- This is a garden, not a blog. - unsorted, evergreen, 0 inbound
MapsCurated doors into a domain.7
- 🌱Identity & AccessWho is this user, and what are they allowed to do? The moment you hand that question to an identity…3
- 🌿LinuxThe commandline muscle memory oneliners for inspecting, tuning, and debugging a live Linux system…3
- 🌿MusicNotes on making and running music gear the keyboards, synths, and workflows I actually use, and the…4
- 🌿ToolsPractical guides for the software I reach for when something breaks the battletested, often…9
- 🌳This is a garden, not a blog.Welcome to my garden a second brain I tend in the open. A blog ships a post and walks away. A…
- 🌿Distributed SystemsAn evolving map of hardwon lessons about building systems that span more than one machine where the…1
- 🌿Developer ExperienceThe scaffolding around the code the docs, conventions, and context that decide whether a new…1
ConceptsOne claim per note.11
- 🌿Retries without backoff turn a blip into an outage6
- 🌳Idempotency is a property, not a mechanism5
- 🌿Timeouts are a design decision, not a default5
- 🌿At-least-once delivery makes deduplication your job4
- 🌿Cache invalidation fails at boundaries you don't own4
- 🌿A shared database is distributed coupling in disguise3
- 🌿A queue is a loan against future capacity3
- 🌿An access token is not proof of identity2
- 🌿Onboarding a human and onboarding an AI are the same problem2
- 🌿The outbox pattern gets you at-least-once without a shared database1
- 🌿A circuit breaker protects the caller, not the callee1
GuidesStep-by-step, reproducible.15
- 🌿Traefik v3 - a self-hosted reverse proxy setup5
- 🌳FFmpeg - how to do (almost) anything2
- 🌿Inspecting & tuning a running Linux system2
- 🌿Loading patches, sounds & backups on the Korg Pa10002
- 🌿The OIDC authorization-code flow with PKCE2
- 🌿Self-hosting Vaultwarden behind Traefik2
- 🌿Make any project agent-ready2
- 🌿It's a wave - doing anything with audio1
- 🌿Modding the Korg Pa50 - floppy to USB1
- 🌿Sharing USB devices over the network with USB-IP1
- 🌿Auto-updating Docker containers with Watchtower1
- 🌳Recovering lost files with TestDisk and PhotoRec1
- 🌿Self-hosting 9router - one endpoint for every LLM provider1
- 🌿Self-hosting Rustpad behind Traefik1
- 🌿Web SSH with Sshwifty behind Traefik1