Essays

What I believe about building product interfaces.

Personal, opinionated writing on front-end architecture, Angular, AI SaaS UX, design systems, and the habits that keep software honest after launch.

AI will improve the product cycle, not erase engineers

AI will tighten the loop between product design, customer feedback, and front-end delivery, but systems still need engineering judgment.

AIProduct DesignEngineering

The best front-end architecture is a promise about future change

I judge architecture by how calmly it lets a team change its mind after the first release.

Frontend ArchitectureProduct EngineeringOpinion

I want Angular components to speak the language of the product

A component API should read like the product decision it represents, not like a bag of styling switches.

AngularComponent APIsDesign Systems

Loading states are where a product tells the truth

A spinner often means the interface has avoided saying what is really happening.

UXPerformanceState Management

AI interfaces should admit uncertainty instead of hiding it

AI SaaS products need UI states for partial answers, missing context, low confidence, and human review.

AI SaaSError StatesUX

How I review complex front-end pull requests

I review behavior, ownership, and missing states before I spend energy on stylistic preferences.

Code ReviewFrontend Architecture

Designing Angular components that survive product complexity

Components last longer when their boundaries match responsibilities users and teams already recognize.

AngularDesign SystemsComplex UX

My bias toward boring state management

Large Angular apps usually need clear ownership and typed transitions more than dramatic state machinery.

AngularState ManagementRxJS

Dense enterprise UI deserves more respect

The hardest screens are often the quiet ones where users scan, compare, filter, and act all day.

Enterprise UXComplex UXProduct Design

The browser is still the most interesting application platform

I keep coming back to browser-native experiments because they make invisible systems feel tangible.

BrowserSystemsSide Projects