
Hi! I’m Redowan Delowar — also go by “rednafi” on the web.
I err on infra-leaning software work, but on occasion I’ve done and enjoyed product work along the way. Generally, I skirt around distributed systems, databases, streaming platforms, and observability work.
Recurring themes: Go, Python, distributed databases, eventual consistency, resilience patterns, high availability, observability, SRE practices, and sci-fi.
Curriculum vitae
For the paper trail inclined, here’s my CV.
Contact
Colophon
Hugo powers this blog. It’s rocking the Papermod theme with some handrolled CSS flair. I write in plain Markdown and push the content to GitHub, triggering the GitHub Actions CI, which then deploys the site to GitHub Pages.
More on the stack, deployment, and writing process if you’re curious.
Breadcrumbs
- The handle “rednafi” is just a portmanteau of my first name, Redowan, and my nickname Nafi, which my parents and a few close friends still use.
- I like sci-fis, and my all-time favourite book is Stanislaw Lem’s Solaris.
- I think through writing and not the other way around. Most of the blogs on this site take way longer to write than I’d like to admit.
Greatest hits
- Oh my poor business logic
- The diminishing half-life of knowledge
- Annotating args and kwargs in Python
- An ode to the neo-grotesque web
- HTTP requests via /dev/tcp
- You probably don’t need a DI framework
- Dotfiles stewardship for the indolent
- Configuring options in Go
- Recipes from Python SQLite docs
- Limit goroutines with buffered channels
- Pesky little scripts
- I kind of like rebasing
Recent posts
- Splintered failure modes in Go
- Re-exec testing Go subprocesses
- Revisiting interface segregation in Go
- Avoiding collisions in Go context keys
- Organizing Go tests
- Subtest grouping in Go
- Let the domain guide your application structure
- Test state, not interactions
- Early return and goroutine leak
- Lifecycle management in Go tests