Insights
Notes from systems in production.
Written while building the systems, not researched afterwards — .NET architecture, multi-tenant data, integration and the parts that break.
Migrating .NET Framework to .NET 8 without a rewrite that never lands
The parallel rewrite is the default plan and the default failure. What an incremental migration actually looks like, and the two things that decide whether it finishes.
Architecture
atombit · 7 min · 09 Aug 2026
Multi-tenant isolation belongs in the data layer, not in your queries
Every tenant leak has the same root cause: one query that forgot the filter. Why remembering is not a strategy, and where the boundary actually has to sit.
Architecture
atombit · 8 min · 09 Aug 2026
Document OCR in production: the parts that are not the model
Extraction accuracy is the demo. Rate limits, latency, confidence thresholds and what you do with a bad read are the product.
AI
atombit · 7 min · 09 Aug 2026
A single messaging channel is a reliability bug, not a feature choice
WhatsApp delivery is not guaranteed delivery. What happens when a message has to arrive, and how failover to SMS actually gets designed rather than bolted on.
Integration
atombit · 6 min · 23 Aug 2026
Role-based access control that stops at the record, not the screen
Hiding a button is not access control. Why permission checks belong at the query, what per-record scoping actually requires, and where an audit log earns its keep.
Architecture
atombit · 7 min · 23 Aug 2026
A safe natural-language-to-SQL assistant is mostly about what it cannot do
Letting a model answer questions over your database is easy to demo and easy to get wrong. Read-only access, a fixed schema and a parsed output do the actual safety work.
AI
atombit · 6 min · 23 Aug 2026
