Blog
Engineering and leadership, out of work I actually shipped. Most of these start as a note to myself somewhere in the middle of a deploy.
A breakdown of the small CMS that powers this site. Posts live in Supabase Postgres, markdown is rendered with unified and remark, code is highlighted by Shiki, and admin uses Server Actions. No CMS subscription, no platform lock in.
AI assistants have a hidden limit: their memory fills up like a whiteboard, and then they get worse. Here is the simple trick — sending a helper — that keeps them sharp. No tech background needed.
A pnpm workspace layout that lets a Next.js web app and an Expo mobile app share Zod schemas, Supabase client, and types without bundler arguments. Includes the exact config that makes it work.
A walkthrough of the tenant isolation model I use in OrderBind, a multi tenant order management SaaS built on Supabase. Covers schema design, RLS policies, role hierarchy, and the migration discipline that keeps it sane.
A million tokens sounds like marketing. After three months of pointing it at real pull requests, here is what actually shifts in the work, and the two habits I had to unlearn.
Two years of trying to share dev content from Dhaka with US and EU readers. The schedule I actually use, the killer single slot if you can only post once, and what I had to learn the hard way.
A camera-driven parking system across multiple lots was selling the same spot twice. We tried mutexes, optimistic concurrency, and queues before reaching for the boring database primitive that actually fixed it.
Most AI products in regulated domains die before they get adopted. The reason is rarely the model. It is the framing. A note from shipping a clinical AI tool that surgeons actually use.
Most rewrites cost more than they pay back. A note on why I keep picking Django, Postgres, and Next.js on purpose, and why a senior engineer's job is more often than they expect telling smart people no.
Newsletter
New posts, in your inbox. Nothing else goes to that list.