writing
Notes from the studio — how we build, what we've learned shipping real products, and the occasional opinion. No filler.
- 8 min readengineeringai
Screening insurance applications with an LLM that never decides
On Insur, every submission passes through an AI screening stage before a human sees it. The model extracts, flags, and summarizes — it never approves or rejects. Here's how that boundary is enforced in the pipeline itself.
- 7 min readengineeringsecurity
Multi-tenant authorization without row-level security
Postgres RLS is the fashionable answer for tenant isolation. On a B2B insurance platform we kept authorization in the app layer instead — two role tiers, a guard, and one defensive re-check — and here's why that was the right call.
- 5 min readengineeringdevops
Deploying Rails with Kamal and Thruster
Kamal and Thruster put a Rails app on a plain VPS with zero-downtime deploys, automatic TLS, and asset caching — no Kubernetes, no managed platform, no monthly platform bill. How the pieces fit, and what the docs don't tell you.