.NET · Cloud · DevOps
Hi, I'm Imran Emon.
I build production .NET backends and the infrastructure they run on — from EF Core and Hangfire inside the application, to Docker, Kubernetes and Terraform underneath it. Most of what I write here comes from real systems I shipped and real incidents that taught me something.
Currently building VettifyNG, a legal case management SaaS serving four portals from a single .NET 10 API.
Recent posts
- 2026-09-10
When OAuth Login 500s in Prod but Not Locally: The Migration That Never Ran
A production 500 on every Google/Facebook social login, with a 42P01 'relation does not exist' error buried under classified rejection logs. Root cause: EF Core migrations were gated behind IsDevelopment() and never ran in production.
dotnetef-corepostgresqloauth - 2026-09-09
The Caddyfile That Committed Broken: File-Global Matchers Get Rejected
A security fix that never actually deployed: a Caddy request matcher defined at file-global scope is invalid Caddyfile syntax, Caddy rejects the whole config, and the bootstrap silently skipped it. Here's the snippet pattern that fixes it.
caddydevopssecurity - 2026-09-08
Virus Scanning a 2-vCPU VPS: Why ClamAV Became a Docker Sidecar
Running ClamAV for user-uploaded document scanning on a tiny VPS seemed impossible — 1GB RAM for the daemon, plus cold-start signature loads. The architecture that made it work: a ClamAV sidecar container speaking the clamd INSTREAM protocol.
dotnetdockersecurityarchitecture - 2026-09-07
EF Core NoTracking Broke 50 Repository Methods, and I Reverted It
A one-line 'performance optimization' — global AsNoTracking in EF Core — silently broke every fetch-then-mutate pattern in a 50-method repository layer. Here's the failure mode and why I rolled it back.
dotnetef-corepostgresql - 2026-09-06
The Two-Second Crash: Debugging Hangfire.PostgreSql on a Fresh VPS
Our API container kept dying ~2 seconds after boot on a freshly rebuilt VPS. Caddy 502s everywhere. The culprit was a transaction-enlistment mismatch between Hangfire.PostgreSql and Npgsql.
dotnethangfirepostgresqldocker
Things I work with
Projects
VettifyNG
Legal case management SaaS — four portals (user, lawyer, corporate, admin) on one API. Case intake with document virus scanning, payment flows, lawyer matching and opinion workflows, Hangfire background jobs, OAuth (Google/Facebook) with deauthorize & data-deletion callbacks, Telegram bot integration, deployed on hardened VPS via GitHub Actions CI/CD.
Visit app.vettify.site →