Putting the Contract Under CI/CD: Database Deployments You Can Trust
So far in this series the database has a published interface (the ) and a read surface that you keep stable even when an wants to bind straight to your tables. Both of those are…
A Decision Framework (and When to Stop Arguing)
This is the finale of the “Where Does Business Logic Live?” series. Over five posts we have looked at , the , the , the reality, and the . Now let’s make it actionable. This…
Performance and Operations: Measuring Instead of Arguing
This is Part 4 of the “Where Does Business Logic Live?” series. Parts and made the principled cases for the database and the application tier. Principles are where these debates start; measurements are where they…
The Case for Business Logic in Application Layers
This is the third post in the “Where Does Business Logic Live?” series, and it is the deliberate mirror image of the last one. In I made the strongest case I could for putting data-centric…
Self-Hosting Forgejo on Windows Server Hyper-V Step-by-Step
A complete walkthrough for running Forgejo on Debian 13 inside a Windows Server Hyper-V VM, with Docker Compose, Let’s Encrypt TLS, GitHub repo mirroring, and automated backups to a Windows network share.
Sharing GitHub Copilot Instructions Across Repos and Teams
Your AI assistant starts every conversation as a blank slate. It doesn’t know your team uses COALESCE instead of ISNULL. It doesn’t know your naming conventions, your commit message format, or the three anti-patterns that…