ashik@dev:~$ whoami
I build the layer under the product.Ledgers, frameworks, and the tooling that keeps them honest.
Software engineer in Dhaka. Mostly Rust and Go these days — permissioned ledgers, deterministic Wasm execution, contract-first HTTP frameworks, and an unreasonable amount of self-hosted infrastructure. I write down what I break so I stop breaking it twice.
cat ~/writing/index
7 postsA User ID Is Not a File ID: Nominal Types in Rust and TypeScriptHow newtypes in Rust and branded types in TypeScript stop values that share a representation from being mixed up, and the small macro I use to make the safe version the easy one.8 min ->I Stopped Handwriting API TypesWhy every frontend I build now gets its API client generated from the backend's OpenAPI schema, and how one source of truth took a whole category of worry off my plate.9 min ->Axum Is Great. I Still Built a Framework on Top of It.Why I wrote Ferrax, a small contract-first layer over Axum, what problem kept pushing me toward it, and what I deliberately refused to copy from NestJS.8 min ->I Gave My Home Router a Git DiffHow I stopped hand-editing a MikroTik router and built a small Rust app that shows me exactly what will change before it touches anything.9 min ->Narrowing Unknown Without Lying to the CompilerA small TypeScript and Zod helper that checks a nested property at runtime and narrows the type from the same dotted path, plus where it breaks and how I use it on third-party responses.14 min ->My Greedy Algorithm Said No. It Was Wrong.A small packing function I wrote for a ledger cleanup job, why its greedy shortcut misses exact answers far more often than I expected, and the short dynamic programming fix.10 min ->
showing 6 of 7
cat ~/stack
Systems
- Rust — Axum, Tokio, Cornucopia
- Go — services, CLIs, ledgers
- Wasm execution hosts
- gRPC, protobuf
- Post-quantum signing (ML-DSA)
Product
- TypeScript, strict, no escapes
- React 19, Next.js, Effect
- Bun, Elysia, Drizzle
- PostgreSQL, SQL-first
- Flutter, React Native