Frontend Architecture
React with TypeScript is my primary stack. I prefer Next.js for its file-based routing, server components, and deployment story. For state, I reach for Zustand over Redux — less boilerplate, simpler mental model. Styling is Tailwind CSS — utility-first keeps components self-contained and refactoring safe. I avoid component libraries when possible; custom components are easier to maintain and evolve than fighting library opinions.
Backend & Data
Node.js with TypeScript on the backend for full-stack type safety. PostgreSQL is my default database — it handles 90% of use cases without reaching for specialized stores. I design APIs around resources and invariants, not UI screens. Caching strategy is always intentional: Redis for hot paths, HTTP caching for static content, and database query optimization before adding cache layers.
Infrastructure & DevOps
Docker for reproducible environments, AWS for production workloads, Vercel for frontend deployments. I set up CI/CD pipelines early — automated testing, linting, and deployment on every push. Monitoring isn't an afterthought: structured logging, error tracking, and key metrics from day one. I believe in infrastructure as code and gitops workflows.
Tooling & Process
Biome over ESLint + Prettier — one tool, faster, opinionated. Bun as package manager for speed. Conventional commits for readable git history. Code reviews focused on architecture and correctness, not style (that's what formatters are for). I write tests for behavior, not implementation — integration tests over unit tests for most business logic.