Blog

Writing about frontend engineering, TypeScript, and whatever else I'm working through.

Virtual Rendering for Massive Lists

How to build a virtual scrolling Vue component from scratch. Starts with fixed-size items, then tackles dynamic sizing, accessibility gotchas, and what you actually need to think about before shipping it.

Read more →

ESLint's no-restricted-syntax Rule

ESLint's no-restricted-syntax rule lets you ban specific syntax patterns using ESQuery selectors. This post walks through how the selectors work, with real examples you can drop into your config.

Read more →