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
Next live session · FreeFree Lightning Lesson on Maven

System Design for AI Agents: Senior vs Staff

The five things that break every LLM agent after the demo, and the design decisions that stop each one. Free, live, 45 minutes: the production judgment that separates senior engineers from staff when AI is in the stack.

Tue, 21 Jul · 6:30pm London · 45 minutes · Zoom

Can't make it? Watch past sessions →

What engineers say

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

"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
"Ehsan gave me really clear and practical advice on my resume and career direction. His feedback helped me focus on what actually matters to recruiters and improve how I present my skills. Super helpful and easy to talk to !!"
Ankit Dani
Full Stack Software Engineer
"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
Read all 26+ testimonials →

More ways to learn

Latest writing

View all →
What I Learned From DoorDash's AI Assistant Architecture
Artificial Intelligence

What I Learned From DoorDash's AI Assistant Architecture

DoorDash's eval said Gemini Flash was worse than Sonnet. It wasn't. Four things I took from their engineering series on grounding, agent memory, and evals.

Notes on Software Quality
Leadership

Notes on Software Quality

What software quality actually is, why it gets harder as teams and products grow, and what a staff engineer can still do about it even when the org is working against them.

Soon Everyone at Your Company Will Be an Engineer
Artificial Intelligence

Soon Everyone at Your Company Will Be an Engineer

AI is tearing down the wall around engineering. Why everyone becomes an engineer, org charts flatten, and every function turns into an engineering role.

The Frontend Toolchain Is Now Written in Rust and Go. What That Means for You
TypeScript

The Frontend Toolchain Is Now Written in Rust and Go. What That Means for You

tsgo, Vite 8, Turbopack, OXC, and now the React Compiler in Rust. The tools you build with are quietly being rewritten in native languages. Here is the pattern, and which of your skills survive it.

Ship and Learn Are Two Different Metrics
Artificial Intelligence

Ship and Learn Are Two Different Metrics

AI defaults close your task, they do not keep you sharp. Used without intent it bills you in cognitive debt. The posture that keeps you learning while you still ship.

The Capacity Estimation Numbers Every Engineer Should Carry Into a System Design
System Design

The Capacity Estimation Numbers Every Engineer Should Carry Into a System Design

I built a single reference page of capacity estimation formulas and latency numbers for my Senior to Staff cohort. Read it before you design anything, and walk into your next system design interview knowing exactly when to scale and how to say so.

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.

SQL, from SELECT to subqueries
SQL

SQL, from SELECT to subqueries

Worked SQLZoo solutions, joins, aggregates, GROUP BY vs HAVING, and subqueries — the queries interviewers actually ask.

Start reading →
Database performance & scaling
Database

Database performance & scaling

Indexes, query optimisation, sharding, replication and normalization — how to make a database fast and keep it fast.

Start reading →
Modern TypeScript tooling
TypeScript

Modern TypeScript tooling

Why oxlint replaced ESLint, pnpm vs npm, Lefthook vs Husky, and the Rust/Go shift in the frontend toolchain.

Start reading →
Data structures in TypeScript
Data Structures

Data structures in TypeScript

Arrays, linked lists, stacks, queues, trees, tries, graphs, heaps and hash tables — implemented and explained in TypeScript.

Start reading →
Sorting & searching algorithms
Algorithm

Sorting & searching algorithms

Insertion, selection, merge and quick sort, plus binary and substring search — the classic algorithms, step by step.

Start reading →
Design systems in practice
HTML / CSS

Design systems in practice

What a design system really is (per Atlassian), how Dropbox and Netflix build theirs, and how to roll out an internal UI component library.

Start reading →
Scaling & system architecture
System Design

Scaling & system architecture

Horizontal vs vertical scaling, capacity estimation, resilience patterns and the architecture principles behind systems that grow.

Start reading →
X vs Y: engineering trade-offs
TypeScript

X vs Y: engineering trade-offs

Head-to-head breakdowns — oxlint vs ESLint, REST vs GraphQL, SQL vs NoSQL, Svelte/Preact vs React — with the trade-offs that decide it.

Start reading →
Agents in production
Artificial Intelligence

Agents in production

Supervisor architectures, agent memory, MCP, RAG chunking, and token cost — the decisions that take an LLM agent from a demo to something that survives real traffic.

Start reading →