atombit

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.

01

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

02

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

03

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

04

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

05

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

06

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