Software engineer

Iman Safari

builds reliable backend systems.

I’m a software engineer fascinated by the decisions, trade-offs, and failures that shape real-world software systems.

This is where I write about architecture, distributed systems, reliability, databases, and the things I learn while building them.

Selected work

Projects with the decisions behind them

A few flagship engineering projects, each summarized with its technical context and outcome.

Event-driven order pipeline

A service design for processing orders asynchronously, with notes on retries and ordering guarantees.

Internal developer tooling

A command-line tool that automates routine setup, with a focus on clear defaults and readable failure messages.

Reliable API gateway

A gateway layer built around timeouts, idempotent retries, and observable failure paths.

Writing

Notes on system design and trade-offs

I like explaining what I built and the decisions that shaped it. A project rarely goes in a straight line, so I try to write down the useful turns along the way: what worked, what I learned, and what I would approach differently next time.

Occasional notes on architecture and project lessons

For engineers and readers who want the trade-offs behind the work, sent only when there is something worth sharing.