About
Hi, I’m Redowan - also go by “rednafi” on the web. I work with computers. I oscillate between product and platform engineering to keep a foot in both user-facing and infra work.
I’m keen on building fault-tolerant distributed systems and understanding their fringe behaviors at scale. At the same time, I take pride in crafting products people love to use.
Occasionally I give talks and appear on podcasts . I also keep a blogroll of writers I enjoy.
Outside of work, I love reading sci-fi and running.
Currently, I’m based in Berlin and working at Wolt/DoorDash. If you’re around, feel free to reach out. I’m always up for a chat.
Connect
Curriculum vitae
For the paper trail inclined, here’s my CV .
Colophon
Hugo powers this blog with a handrolled theme. 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.
Disclosure
I don’t receive any compensation for writing here and don’t accept sponsorships. If that ever changes, I’ll disclose it. All opinions expressed on this site are my own and don’t reflect those of my employer.
Greatest hits
- I kind of like rebasing
- Oh my poor business logic
- What canceled my Go context?
- The diminishing half-life of knowledge
- Preventing accidental struct copies in Go
- You probably don’t need a DI framework
- ETag and HTTP caching
- Writing a circuit breaker in Go
- Structured concurrency & Go
- Revisiting interface segregation in Go
- Reminiscing CGI scripts
- Let the domain guide your application structure
- Your Go tests probably don’t need a mocking library