Independent field notes
23.7278° N · 90.4135° E
Mahibul HaqueSoftware EngineerDhaka
Hi, I'm Mahib.I work with computers.
…and sometimes I write about them too.
Recent writing
Longer articles, short notes, and things I'll probably need to look up again.
Browse the archiveJuly 25, 2026go
Supervised fire-and-forget in Go
A bounded worker pool for small background tasks, with task-owned contexts, panic recovery, and graceful shutdown.
July 4, 2026
goModernizers & go fixGo 1.26 rebuilt go fix on the analysis framework. It modernizes your code and respects the Go version your module declares. The post covers the modernizers, the bigger x/tools suite, and what //go:fix inline can and can't migrate.
April 18, 2026
goPeeking into Go struct tagsA quick tour of Go struct tags: how different libraries use them, how you read them at runtime with reflection, and how other tools read them at build time instead.
February 24, 2026
goWhat canceled my Go context?How Go 1.20's WithCancelCause and Go 1.21's WithTimeoutCause let you attach a reason to context cancellation, plus a gotcha with manual cancel and the stdlib pattern that covers every path.
November 1, 2025
goRevisiting interface segregation in GoApply SOLID's Interface Segregation Principle in Go with consumer-defined contracts. Learn why small interfaces and implicit implementation matter.
September 20, 2025
goLet the domain guide your application structureOrganize Go apps by domain, not technology. Learn why models/controllers structure hurts and how bounded contexts create better separation.
September 7, 2025
goEarly return and goroutine leakPrevent goroutine leaks caused by early returns with unbuffered channels. Learn buffering, draining, errgroup patterns, and goleak testing.
August 3, 2025
goGateway pattern for external service callsSeparate business logic from external service calls using the Gateway pattern. Apply dependency inversion and interface segregation in Go.
February 8, 2025
goWhy does Go's io.Reader have such a weird signature?Understand why io.Reader takes a byte slice parameter instead of returning one. Learn about heap allocations and buffer reuse in Go streams.
October 15, 2024
miscBehind the blogHow Mahib's Margins is built with Astro, Markdown, React, Tailwind CSS, GitHub Actions, GitHub Pages, Cloudflare, and R2.