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…
Your Repository Is Just a Database
If you’ve ever stared at a git tutorial and thought “why does this have to be so complicated?” — you’re not alone. Most git documentation is written by developers, for developers. It assumes you think…