Blog
Thoughts on software engineering, web development, and technology
When the CI Job Ended but the Migration Kept Running
Failing, cancelling or timing out a GitHub Actions job doesn't stop the ECS task it started. Now a cleanup step stops the task, and a guard refuses to start a second migration while one is still alive.
The Session Cleanup That Crashed Every 15 Minutes
An Etherpad upgrade added a session cleanup that loads every session key at once, and it crashed our dev instance about every 15 minutes. Etherpad already ships a setting to turn it off, as long as the value ends up a real boolean false.
When a Failed Lookup Looks Like 'No Access'
Our app's boot code merged "the backend says you have no organization" and "the lookup failed" into one boolean, so a backend brownout told healthy users their access was gone. Carrying the reason with the decision fixed it.
When an Imported Metric Has to Forget Its Source
Deleting an imported metric could reuse an existing archive feature. Turning it into a manual metric meant keeping its history but clearing every trace of where it came from.
Keeping Form Entries Alive With sessionStorage
A sign-up form only caught a taken email at the very last step. A Back button and a small, safe sessionStorage helper let users fix it without retyping.
When Frequency Became Part of a Metric's Identity
Changing how often an imported metric is measured can't be a simple edit. So frequency became part of what makes a metric unique, and a change became a fresh import.
Connected, Expired, Disconnected, Available: Four States, No Migration
A single yes/no field couldn't tell an expired authorization from a user who disconnected. The imported metrics already knew the difference, so the new state came from existing data, not a schema change.
When Your Feature Flag Only Covers the Frontend
We shipped a new page in small pieces behind a frontend feature flag. The flag hid the page, not the backend, so every backend piece had to be safe in production.
When Every Funnel Visit Needs Exactly One Ending
Adding analytics events to a setup flow took one line each. The real work was making sure every visit ends in exactly one way.
Warning Users Before They Leave a Half-Finished Flow
A leave warning for a three-step import flow. The modal was simple; deciding when not to show it was the real work.
Built by Sam Lee with
♥