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 ↗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
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"
"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 !!"
"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."
More ways to learn
Self-paced courses
Clean Code Mastery free; System Design Mastery and Node.js & TypeScript interview prep premium.
Browse courses →1:1 mentorship
Career, system-design judgment, and the path from senior to staff and principal.
See programs →Writing & podcast
Hundreds of deep-dives on architecture, plus the Breakpoint podcast.
Read the latest →Latest writing

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
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
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
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
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
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.

oxlint vs ESLint: Why I Replaced ESLint with oxlint
Replaced ESLint with oxlint in a React TypeScript project and cut lint time from 12 seconds to under one. What I traded away and whether it was worth it.

Active Listening
Most leaders think they're good listeners. I did too.

Supervisor Agent Architecture: What Makes It Work
I have been reading deeply about supervisor agents: how they connect to RAG, how memory actually works, human-in-the-loop, dynamic agent generation, and what it costs to run them properly.

MCP: Context Is Everything — Notes from a Building with MCP Event

Activity Selection Algorithm
You have a conference room. Ten meetings want to use it. Some overlap. How do you fit the most meetings into a single day?

How to make Forms more accessible?
I once shipped a form where every field had a placeholder but no label. Looked clean. Worked fine for sighted users. Then I tested it with VoiceOver and h...
Where to start
The deep dives I'd point a senior engineer at first, grouped by topic.

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
Indexes, query optimisation, sharding, replication and normalization — how to make a database fast and keep it fast.
Start reading →
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
Arrays, linked lists, stacks, queues, trees, tries, graphs, heaps and hash tables — implemented and explained in TypeScript.
Start reading →
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
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
Horizontal vs vertical scaling, capacity estimation, resilience patterns and the architecture principles behind systems that grow.
Start reading →
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
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 →


