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.

500+ articles3 self-paced coursesThe Breakpoint podcast
Ehsan Gazar
System Design Mastery

Featured · Free course

System Design Mastery

Master system design from fundamentals to professional software architecture. A comprehensive course synthesized from Designing Data-Intensive Applications, System Design Interview, Fundamentals of Software Architecture, Building Microservices, and 30+ industry-defining books.

Intermediate to AdvancedStart learning →

Latest writing

View all →
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.

I Built a Tool to Compare Senior Engineer Salaries Across 17 Cities, and I Want Your Take

leadership

I Built a Tool to Compare Senior Engineer Salaries Across 17 Cities, and I Want Your Take

I built an interactive dashboard that compares senior software engineer compensation across 17 cities through four lenses, not just headline pay. Here is what I built, how I modelled it, and the questions I would love your opinion on.

Notes From My First Cohort: System Design Is Trade-offs, Not Answers

system design

Notes From My First Cohort: System Design Is Trade-offs, Not Answers

Tonight I taught the first live session of my Senior to Staff cohort. The lesson I kept coming back to: system design is not about the right answer, it is about reasoning along the axes and owning the trade-off.

Popular guides

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 →