Principal Engineer · 16+ years

Helping senior engineers think and design like architects.

I write about system design, mentor engineers moving toward staff and principal, and teach what I've learned the hard way.

Or go deeper: the live cohort
Live cohorts on Maven500+ articlesThe Breakpoint podcast

What engineers say

29+ engineers and colleagues, sharing what changed after we worked together.

Gazar is very expert in front-end knowledge. He is very kind and patient in helping and guiding without any judgment. Whenever I talk to him, I learn many things. Actually, he shares his updated knowledge in front-end and AI with me. I am very grateful to him for his help without any expectations.
Ava Mohammadnian
Front end Developer
Working with Ehsan has been a blast! Ehsan has done an excellent job as the JavaScript Developer at Round Table Apps. He is also very attentive to details and creative in creating an engaging experience. I would highly recommend Ehsan as an invaluable asset to any organisation or team.
Hoda Hadian Dehkordi, Software Quality Assurance Tester at Jibit
It was a great session with Ehsan. I really admired the way he made me understand about so many things. I got to learn a lot from him
Nihit Moolaney, Student
Read all 29+ testimonials →

More ways to learn

Latest writing

View all →
Graph Engineering: Every Edge You Draw Takes a Decision Away From the Model
Artificial Intelligence

Graph Engineering: Every Edge You Draw Takes a Decision Away From the Model

Agent graphs are state machines with a new name on them. The engineering question is not what a node is, it is which routing decisions you take away from the model and which you leave to it. The rule I apply: only draw edges for decisions you can make better in advance than the model can at runtime.

When Your Data Is Really a Graph: Write the Recursive Query First
System Design

When Your Data Is Really a Graph: Write the Recursive Query First

Some questions cannot be answered by adding one more join, because the number of joins depends on the data rather than on the query. That is the moment your data has become a graph. Here is how to tell, what a graph actually buys you, and the two costs nobody mentions until you are already paying them.

Semantic Caching for AI Requests, Explained Simply
Artificial Intelligence

Semantic Caching for AI Requests, Explained Simply

Your users ask the same question in different words, and you pay for every one. A semantic cache answers from meaning instead of exact text. Here is how it works, in plain language, with a working version you can build in an afternoon.

The Algorithms Worth Knowing in Code Review: Cutting Big O Without Being Clever
Algorithm

The Algorithms Worth Knowing in Code Review: Cutting Big O Without Being Clever

The small set of algorithm changes that actually come up in code review, each one shown as before and after, with the Big O it removes.

TypeScript Anti-Patterns That Cost You Twice: Build Time, Runtime, and the Interview
TypeScript

TypeScript Anti-Patterns That Cost You Twice: Build Time, Runtime, and the Interview

The TypeScript patterns I keep deleting in code review, what to write instead, where the cost lands, and the interview question each one turns into.

How I Find Problems Worth Solving
Leadership

How I Find Problems Worth Solving

Staff engineers are judged on whether a problem was worth solving, not just whether they solved it. I do not find those problems by thinking hard. I collect them, let them pile up, and wait for the shape.

Popular this week

What other engineers have been reading in the last seven days.

Where to start

The deep dives I'd point a senior engineer at first, grouped by topic.

All 16 topics →