WRITING ARCHIVE
2025
320 published posts.
- Stateful Nomad Failover Gets Hard at the CSI Volume Boundaryperspectives
- DNS SRV Made SIP Service Discovery Feel Less Hard-Codedwriting
- Why Decibels Add While Power Ratios Multiplyperspectives
- Civilization Through a Systems Architect's Eyesperspectives
- A Spanish Piece — Caricature, Performance, and the Risk of Musical Masksmusic
- Why I Would Still Start a Voiceware Migration With One Workload Todayperspectives
- OpenSIPS 5xx Spikes Show Signaling Qualitywriting
- Political Songs Without Lecture Tonemusic
- DDevil — Absurdity as a Way of Refusing Normal Languagemusic
- Childlike Melodies Inside Adult Subjectsmusic
- There Is Time Between Rainfall and a River's Responseperspectives
- Terraform State Locking Prevents Concurrent Writers, Not Bad Decisionswriting
- Brain Damage — The Fear of Losing the Shape of the Selfmusic
- DevOps Is a Relationship Between Disciplineswriting
- The Philosophical Problem Hidden Inside Natural Selectionperspectives
- Who Does What When an Alert Fireswriting
- EVT Approval Is Not Mass-Production Approvalwriting
- Wired RS485 Was the Recovery Path for Unknown Remote Statewriting
- OpenSIPS 5xx Spikes Are More Useful Than Total SIP Trafficwriting
- Build, Release and Run Fail Differentlywriting
- How Logging Itself Can Become an I/O Workloadwriting
- I Validate an ESP32-S3 Image Before I Let It Touch the Phonewriting
- Wot's... Uh the Deal — Ordinary Life, Passing Time, and the Search for a Better Placemusic
- How We Learned to See Natural Selectionperspectives
- Intensity Is Not Just Volumemusic
- SIP Registration Is a Device-Identity Checkpointwriting
- shell=False Is a Small Setting with a Large Security Boundarywriting
- Old School Hollywood — Celebrity, Artificiality, and the Comedy of Being Out of Placemusic
- Running Is Not the Same as Healthywriting
- CPU by Container Is Useful Only Beside Limitswriting
- Where the data Analogy Breaksperspectives
- How We Learned to See Computationperspectives
- Where the federation of services Analogy Breaksperspectives
- The Wall: A Question About Individuals and Structuresmusic
- Two-Device Local Calls Are a Better Milestone Than a Single Loopback Testwriting
- Summer '68 — A Brief Encounter Already Becoming Memorymusic
- Parent-Approved Contacts Are an Architecture Rule, Not a UI Filterwriting
- cAdvisor Used 428 MiB Until We Asked What We Actually Neededwriting
- Why Asterisk Was the Right PBX for the LOUP MVPwriting
- What The Immune System Really Isperspectives
- More TX Power Can Make the Experiment Worsewriting
- How We Learned to See The Nervous Systemperspectives
- HTTPS Latency Needs More Than One Numberwriting
- Call and Response as Social Structuremusic
- What Geometry Really Isperspectives
- How a Missing Helm Value Turned Into a Nil-Pointer Problemperspectives
- A Healthy FreeSWITCH Process Can Still Mean Broken Callswriting
- Green Is the Colour — Tenderness Inside a Restless Periodmusic
- Reliability Work Is Product Workwriting
- Ring Buffers Need Ownership Rules More Than They Need Extra Spacewriting
- When Clocks Drift, the Order of Events Can Drift Toowriting
- I2S Audio Made Timing Bugs Audiblewriting
- What Ecosystems Really Isperspectives
- Mezmerize and Hypnotize as One Split Statementmusic
- A Two-Device Pass Should Precede the Five- and Twenty-Device Rampwriting
- One Device, One SIP Identitywriting
- Listening to Mezmerize as a Sequence, Not a Listmusic
- Swap Provides Space, but Time Is the Pricewriting
- TLS Certificate Expiration Is an Availability Incident Waiting to Happenwriting
- The Show Must Go On — Performance Continuing After the Self Has Started to Disappearmusic
- Grantchester Meadows — Pastoral Calm With Memory Underneath Itmusic
- Factory Audio Test Needs Objective Signals Before Human Listeningwriting
- Disk Throughput Is Not Disk Latencywriting
- The Device Is the Source of Truth for a Firmware Releasewriting
- The Runner Is a Privilege-Separation Boundary, Not Just a Workerwriting
- Firmware Compatibility Should Be Derived from the Enrolled Devicewriting
- How We Learned to See Embryonic Developmentperspectives
- Firmware Acceptance Should End in an Observable ACTIVE Statewriting
- Signals Are Everywhere. Why Do We Notice So Few of Them?perspectives
- Childhood's End — Growing Up as an Ending You Cannot Reversemusic
- Internal Services vs External Services in Voicewareperspectives
- EVT, DVT and PVT Need Different Acceptance Questionswriting
- Tracing an IMS REGISTER Showed Me Where SIP Meets Diameterwriting
- TLS Protected My SIP Signaling, Not My RTPwriting
- Where Tailscale Serve Fits Beside Caddy and a Public Cloudflare Tunnelwriting
- Your SPA Homepage Works Through Caddy, but Refreshing /settings Returns 404writing
- The Philosophical Problem Hidden Inside Timeperspectives
- A Tinny Speaker Is Not Automatically a Codec Bugwriting
- APN in LTE and DNN in 5G Core Are Similar Until the Architecture Matterswriting
- RPO, RTO and Evidence: When a Home Server Becomes a Production Systemwriting
- The Geography Was Larger Than the Firmware Optimizationwriting
- Using `dig` to Stop Treating DNS Like a Black Boxwriting
- The Philosophical Problem Hidden Inside Feedbackperspectives
- Where Are You Drawing the Boundary of the System?perspectives
- One Hostname, Some Public Paths, Some Private Paths: Make the Boundary Obviouswriting
- Sudo Authentication Failures Belong in the Security Timelinewriting
- When a Warning Is Not the Root Cause: The I2S Mode1 Conflictwriting
- Sticky Heartbeat Results Need Release-Scoped Causalitywriting
- Three Caddy Instances Can All Be Healthy While Nobody Knows Which One Owns the Requestwriting
- Redis 8.6 Streams Finally Address the Producer Retry Ambiguity Directlywriting
- Signed Firmware Changed OTA from File Delivery into a Trust Decisionwriting
- Failure Budgets Exist Even When You Do Not Name Themwriting
- The Philosophical Problem Hidden Inside Metabolismperspectives
- Routing Calls Across Two PBXs Without Turning Kamailio into a PBXwriting
- What a Better Registry Strategy Would Look Like for Voicewareperspectives
- Highway Song — Movement, Distance, and the Sadness of Always Leavingmusic
- Rollback Safety Ends at Persistent Schema Compatibilitywriting
- FreeSWITCH Capacity Testing Needed More Than a Calls-Per-Second Numberwriting
- The Comedy of Exaggerationmusic
- Scanning 32 PHY Profiles Was a Diagnostic, Not a Network Designwriting
- Quicksilver — Atmosphere That Refuses to Become a Clear Objectmusic
- The ESP32-S3 Voice Pipeline Was Really Several Clocks Sharing One Devicewriting
- The pbx Application Name Inside the Celery Command Is an Architecture Clueperspectives
- Port 5000 and the Importance of Stable Internal Contractsperspectives
- Dogs — Ambition That Learns to Bitemusic
- She's Like Heroin — Dependency Recast as a Relationshipmusic
- Pictures — Images, Memory, and the Gap Between Seeing and Understandingmusic
- Vicinity of Obscenity — Nonsense, Desire, and the Musical Logic of Overloadmusic
- NodePort Was a Validation Step, Not the Whole Networking Storyperspectives
- Docker Security Posture Belongs in Monitoringwriting
- Delivery State Needs Its Own Tablewriting
- PostgreSQL VACUUM Reclaims Space Without Giving the File Back to the Filesystemperspectives
- March Rhythms and the Sound of Authoritymusic
- When to Reuse a Helm Template and When to Fork Itperspectives
- Where the coordinate system Analogy Breaksperspectives
- An E-Paper BUSY Timeout Can Be Power or FPC, Not Firmwarewriting
- What Homeostasis Really Isperspectives
- Where the global system clock Analogy Breaksperspectives
- Release Channels Have to Follow Promotion Statewriting
- Why 0600 Was Too Strict for a Containerized Private Keywriting
- Dual OTA Slots Need a First-Boot Acceptance Statewriting
- Cookie Domain and SameSite Policy Are Part of Cross-Subdomain SSOwriting
- The Minimum Telemetry I Want Around a Voiceware-Like Stackperspectives
- Forward Auth Works, Then the Browser Gets Stuck in a Login Redirect Loopwriting
- Service Port Mismatches: The Quiet Networking Failureperspectives
- Asterisk Dialplan Started Making Sense When I Treated It as Routingwriting
- RTP Jitter over Wi-Fi Was Mostly About Bursts, Not Average Packet Losswriting
- KV v2 Turns Secret Rotation into a Versioned State Transitionwriting
- terraform test Is Not terraform validate — and It Can Create Real Infrastructurewriting
- Alert Panels and Investigation Panels Serve Different Humanswriting
- Partition Table, Bootloader and Security Epoch Are Different Release Classeswriting
- The Philosophical Problem Hidden Inside Civilizationperspectives
- Where the distributed platform Analogy Breaksperspectives
- Where the compiled binaries Analogy Breaksperspectives
- Recording Rules Are a CPU Trade: Compute Once or Query Repeatedlywriting
- DNA Through a Systems Architect's Eyesperspectives
- Reading Notes Should Preserve Questions as Well as Answersperspectives
- The Philosophical Problem Hidden Inside Geometryperspectives
- In the Flesh — When the Persona Returns Without the Question Markmusic
- Ubuntu 18.04 on a Lab Machine: The Networking Commands I Kept Reusingwriting
- Why a Worker Might Disable Gossip, Mingle, and Heartbeatsperspectives
- Backup Monitoring Needs UNKNOWN as a Real Statewriting
- Rendering Safely When Some Voiceware Workers Are Optionalperspectives
- Don't Leave Me Now — Dependency at the Point Where Love Becomes Damagemusic
- Long Calls Expose Drift That Short Calls Hidewriting
- Hey You — The Need for Contact After Building the Barrier Yourselfmusic
- Healthcheck Duration Can Warn Before Healthcheck Failurewriting
- CAD for Presell and EVT for Engineering Solve Different Problemswriting
- A Service-Replaceable Battery Changes Mechanical and Firmware Assumptionswriting
- Mutable Tags Make Rollback Ambiguouswriting
- Mathematics Through a Systems Architect's Eyesperspectives
- A Pin Map Is an Interface Contract, Not a Convenience Headerwriting
- How We Learned to See the Cosmos and Life Beyond Earthperspectives
- SDP Is Where Signalling Hands the Call to Mediawriting
- Backup Success Is Not Recoverabilitywriting
- The Missing celery.type Bug and What It Says About Configuration Contractsperspectives
- Calibration Is Not a Number; It Is a Contract With an Environmentwriting
- A Pillow of Winds — Gentleness That Does Not Need to Be Smallmusic
- OTA Installation Must Lose to an Active Voice Callwriting
- A Device SIP Account Should Be Rotatable Without Reflashing Firmwarewriting
- Why I Kept Audio, Workers, Redis, Nginx, and the Web App Separateperspectives
- Finding a Grammar in System of a Down's Contrastsmusic
- Why My Monitoring System Needed Monitoring Toowriting
- Do Not Let Log History Block Current Workwriting
- River History Needs a Stable Point Identitywriting
- Redis Evictions Mean Memory Policy Is Affecting Datawriting
- ES8311 and ES7210 Split the Audio Problem in Twowriting
- Why an App Works on a Subdomain but Breaks Under /appwriting
- ZFS Scrub, Resilver, Snapshot, and Replication Solve Different Failure Modesperspectives
- PBX Failure Must Not Roll Back Healthy Firmwarewriting
- How Far Can a Link From a Small Blog Travel?perspectives
- Boom! — War Reduced to Images, Numbers, and Repetitionmusic
- Global Factory Credentials Would Turn One Leak into a Fleet Incidentwriting
- The Risk of :latest in a GitOps Repositoryperspectives
- The Philosophical Problem Hidden Inside Homeostasisperspectives
- Why Every Target Should Not Be Scraped Every 15 Secondswriting
- A Failed Canary Must Block Stable Promotionwriting
- The Manufacturer/Firmware Boundary Needs a Written Interfacewriting
- Why PCAP Evidence Cannot Prove Acoustic Latencywriting
- Partial Backup Directories Should Not Win the 'Newest Backup' Contestwriting
- Why System of a Down's Absurdity Still Feels Seriousmusic
- Monitor the Log Pipeline for Dropped Entrieswriting
- The Stale Docker Container Problem in Alloywriting
- Redis Eviction Means Policy Is Already Affecting Datawriting
- Git safe.directory Can Turn Provenance into UNKNOWNwriting
- The Monitoring Stack Needs a Memory Budget Toowriting
- freeDiameter Taught Me Why a DRA Is More Than a TCP Proxywriting
- Why a SIP 401 Response Usually Did Not Mean the Call Failedwriting
- Homeostasis Through a Systems Architect's Eyesperspectives
- Keep a Layer Map While Learning RFperspectives
- The Caddyfile Says dns cloudflare, but Caddy Says the Module Does Not Existwriting
- The Mobile Core Lab Became Useful When I Could Break It Predictablywriting
- How We Learned to See Informationperspectives
- Eclipse — When Everything Belongs to the Same Cyclemusic
- Bring the Boys Back Home — The Demand to Bring Human Cost Back Into the Picturemusic
- Local Images and Cluster Images Are Different Problemsperspectives
- Observability Became Useful When Every Graph Had an Operational Questionwriting
- Compose Rendering Is a Cheap Test That Catches Expensive Deployment Mistakeswriting
- The containerd Image-Path Bug That Looked Bigger Than It Wasperspectives
- Terraform moved Blocks Are Migration History, Not Cleanup Noisewriting
- Metabolism Through a Systems Architect's Eyesperspectives
- HTTP Status Semantics Are Part of Production Acceptancewriting
- The Schematic, BOM and Firmware Must Describe the Same Productwriting
- CGrates Was My First Serious Look at Rating Calls and Data Sessionswriting
- Low Packet Loss Does Not Mean Smooth Audiowriting
- A Sticky Heartbeat Result Can Rewrite the Wrong OTA Storywriting
- Alan's Psychedelic Breakfast — Making the Ordinary Strange by Listening Too Closelymusic
- Swap Usage Needs Duration and Contextwriting
- Deployment Is Not Acceptancewriting
- The Redis Streams Pending Entries List Is Your Work-in-Progress Ledgerwriting
- Freshness Guards Prevent Stale Metrics from Firing Misleading Alertswriting
- Why System of a Down Songs Change Direction So Quicklymusic
- A Practical Reticulum TCP Bridge over Tailscale on Port 4242writing
- 433 MHz and 867.2 MHz Belonged to Different Experimentswriting
- Why I Monitor MemAvailable Instead of “Free RAM”writing
- A Single Redis Hot Key Can Defeat the Point of a Clusterwriting
- A Distributed Lock Without Fencing Can Let a Dead Worker Come Back and Corrupt Stateperspectives
- Returning the Tinny EVT Unit Is Part of Root-Cause Controlwriting
- Matter-over-Thread on ESP32: The Hard Part Starts After the Demo Board Worksperspectives
- Why Voiceware Had Multiple Celery Worker Rolesperspectives
- SMART Health Is Different from Filesystem Free Spacewriting
- Computation Does Not Live Outside the Physical Worldperspectives
- A Backup Timer Firing Is Not Proof That the Backup Finishedwriting
- The Philosophical Problem Hidden Inside Climateperspectives
- Where the storage Analogy Breaksperspectives
- Speaker Quality Needs a Reference Signal Before Subjective Listeningwriting
- Complexity Through a Systems Architect's Eyesperspectives
- Gx Charging Rules Only Made Sense After I Followed the TFTwriting
- When a Health Check Fails Every Dependency at Oncewriting
- Sad Statue — When a Symbol Outlives the Belief Behind Itmusic
- Why Caddy Will Not Issue a Wildcard Certificate with the Normal HTTP Challengewriting
- The Philosophical Problem Hidden Inside The Microbiomeperspectives
- Radio Configuration Belongs in Versioned Infrastructurewriting
- Where the source code Analogy Breaksperspectives
- Container Count Is Not a Memory Budgetwriting
- Open5GS Made the EPC Feel Like a Set of Services Instead of One Big Corewriting
- The Hidden Cost of One More Hop in a Mesh Networkwriting
- Tailscale SSH and Ordinary SSH over Tailscale Are Two Different Modelswriting
- Failure Injection Is Part of the OTA Definition of Donewriting
- What Civilization Really Isperspectives
- Redis Failure Is Not the Same as Web-App Failureperspectives
- My First FreeSWITCH Lab After Getting Comfortable with Asteriskwriting
- Why I Chose Detached ECDSA P-256 Signatures for Production OTAwriting
- My Voiceware-to-Kubernetes Migration Checklistperspectives
- NAT Overload Made More Sense When I Looked at the Translation Tablewriting
- Language Through a Systems Architect's Eyesperspectives
- Machine APIs Need Machine Credentials, Not Browser Redirectswriting
- 128-Sample AEC Blocks vs 160-Sample G.711 Frameswriting
- An AXP2101 Datasheet Is Not a LOUP Power Treewriting
- Moving Terraform from count to for_each Is a State Migrationwriting
- GitHub Actions as Five-Minute External Infrastructurewriting
- Running Containers Are Not Healthy Containerswriting
- The Source Changed, So Why Are People Still Seeing the Old Page?writing
- ECDSA Signing Makes the Device Verify Who Produced the Firmwarewriting
- Why Tailscale Became the Control Plane for My Home Infrastructurewriting
- CGrates Time Rules Taught Me to Test Billing Schedules Like Codewriting
- A VoIP Change Window Should Prove the Media Path Still Existswriting
- CUBErt — Technology, Alienation, and the Joke Inside the Machinemusic
- ES7210 Channel Mapping Was an Audio-Architecture Problemwriting
- Serj and Daron — Two Voices, One Argumentmusic
- Fat Old Sun — Warmth, Slowness, and the Luxury of Staying Putmusic
- The Build/Deploy Boundary Is Where Many Platform Bugs Hideperspectives
- OpenBao 2.6 Changed the Memory-Hardening Assumptionwriting
- How I Think About Configuration Drift in Voicewareperspectives
- A Five-Minute Cache Was the Right Place for Expensive Docker Storage Inventorywriting
- Commit and Rollback Rates Reveal Database Behaviorwriting
- Root-Owned Runtime Files and Non-Root Containers Need an Explicit Contractwriting
- Caddy tls internal Works — So Why Does the Browser Still Say Untrusted?writing
- Bypassing AEC Was a Diagnostic Tool, Not a Product Directionwriting
- Information Through a Systems Architect's Eyesperspectives
- Volume Feedback Can Be a Small Partial-Refresh Overlaywriting
- Deleting a Secret from the Current Git Tree Does Not Remove It from Historywriting
- When mlock Is Gone, Swap Policy Becomes Part of Secret-Server Hardeningwriting
- Metric Cardinality Is a Capacity Problem Disguised as a Naming Problemwriting
- How We Learned to See The Brainperspectives
- STABLE Should Mean a Device Actually Ran the Releasewriting
- High-Volume Echo Moved the Bug into the Physical Productwriting
- After a Caddy Upgrade, Why Did My HTTPS Upstream Start Seeing a Different Host?writing
- Anonymous Monitoring Probes Do Not Prove a Human Session Is Brokenwriting
- Shavo Odadjian's Bass as Gluemusic
- One PostgreSQL Deadlock Is Worth Recordingwriting
- Dead-Man Monitoring Should Not Need a Credential from the Dead Systemwriting
- How I Took cAdvisor from ~428 MiB to ~20–28 MiBwriting
- Conditional Helm Templates Are Powerful—and Easy to Overcomplicateperspectives
- Echo and Feedback Are Not the Same Failurewriting
- Exact Route Allowlists Are Safer Than Bypassing Authentication for /v1writing
- 30-Day Retention and a 15 GB Cap Were Capacity Decisionswriting
- Disabling One Metric Family Can Be Better Than Tuning the Whole Monitoring Stackwriting
- My First Useful Wireshark Capture: ARP Before ICMPwriting
- A.D.D. (American Dream Denial) — The Dream as a Political Story That Can Be Refusedmusic
- FreeSWITCH Session Counts Need Per-Node Breakdownwriting
- Redis Fragmentation Can Look Like a Memory Leakwriting
- Database Size Growth Is a Capacity Trend, Not an Emergency Metricwriting
- Why a Clean PBX Forwarding Trace Still Did Not Mean Zero Lagwriting
- The Microbiome Through a Systems Architect's Eyesperspectives
- RTP Port Ranges Belong in the Network Designwriting
- RTP Is Not SIP, and That Difference Explains a Lot of Broken Callswriting
- VSYS Bulk Capacitance Shows Up as a System Problemwriting
- DTMF: The Sound of a Button and the Event of a Buttonwriting
- The Trade-Off of Deploying Voiceware Into the default Namespaceperspectives
- How We Learned to See Intelligenceperspectives
- A Secret Manager Is an Authorization System, Not Just Encrypted .envwriting
- Static Auto-Unseal Is a Temporary Root of Trust, Not HAwriting
- Find Existing Before Create Is a Practical Reconciliation Patternwriting
- A 2.4 GHz Antenna Is Not a Generic Antenna for 433 or 868 MHzwriting
- One of My Turns — When Suppressed Emotion Changes State Too Quicklymusic
- Feedback Does Not Automatically Produce Stabilityperspectives
- Why repoURL and path Form a Deployment Contractperspectives
- The Voiceware Deployment Template and the Value of Boring Repetitionperspectives
- What Communication Technology Really Isperspectives
- Writing Moves Thought Outside the Headperspectives
- DNA Is Not Source Code — So What Is It?perspectives
- Breathe (In the Air) — Learning to Live Before Habit Learns to Live for Youmusic
- What Do We Lose When We Do Not Keep Every Trace?writing
- RTP Burst Measurements Need the Network and the Playout Buffer in the Same Reportwriting
- terraform_remote_state Is a Trust Boundary, Not Just a Conveniencewriting
- Writable Layer Size Should Not Be Polled Expensively Every Scrapewriting
- Where the deployment plan Analogy Breaksperspectives
- Any Colour You Like — Choice, Illusion, and the Pleasure of Pure Motionmusic
- When UART Logging Became a Real-Time Audio Bugwriting