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.
Staff Software Engineer building the future at JumpCloud. Focused on developer experience, innovation, and shipping products that matter.
Full-stack engineer passionate about creating innovative solutions that deliver real value. I focus on crafting exceptional developer experiences, building intuitive products, and turning complex problems into elegant solutions.
My expertise spans modern JavaScript frameworks, C# backend development, developer tooling, CI workflows, and design systems. I thrive on building the infrastructure that empowers teams to ship amazing products faster.
Building user-focused solutions that deliver real value
Vue.js, React, TypeScript, C#, .NET, Golang
Tooling, CI/CD, Monorepos, Design Systems
Team mentoring, architecture, problem-solving
Deep dives into software engineering, performance optimization, and developer tools
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.
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.
How we test Vue components at JumpCloud: test what the component does, not how it works. Covers catching edge cases, preventing regressions, and writing tests you can trust through refactors.
Let's connect and explore opportunities to work together