kotlin 10
- Roles changed, but the old ones kept working for 30 minutes: putting a permission version in the JWT
- Stopping scheduled jobs from running twice during zero-downtime deploys with ShedLock
- Adding circuit breakers to internal service calls, and switching permission checks from fail-open to fail-closed
- Upgrading to Spring Boot 4, and finding out our LAZY was really EAGER because the entities were final
- Why I rolled back refresh token rotation after one day
- A LiveKit call-ending race: when a REST leave and a webhook change the same state
- Getting entities out of the web app — splitting domain modules from API modules
- A locked_yn nobody ever set to true — computing the period lock from dates instead of a flag
- Building a transaction statement PDF with PDFBox — coordinates start at the bottom left
- If nothing gets deleted, don't call it delete — soft deletes with a status column