Skip to content

FRONTEND ENGINEER · REACT / NEXT.JS

Interfaces that feel instant.

You're looking at the proof. This page rendered in —ms and shipped —KB of JavaScript. Measured live in your browser, not claimed by me.

Available for full-time roles and select projects.

THIS PAGE IS THE DEMO

How is this page feeling right now?

Try to slow me down. Scroll, drag, open DevTools: every number here is measured in your browser while you do it.

—Frames per second, live

Interact with the page and watch it hold.

Your setup
CPU
— cores
RAM
— GB memory
NET
— connection

Two switches, both real: they reconfigure the whole site, right now.

SKILLS, SHOWN

I'd rather show you than list technologies.

Three things I obsess about. Each card is a working demo running in this page.

live demo

Can a card weigh itself?

This card measured its own mount cost and printed it below. Performance work starts with instrumenting, not guessing.

this card took … ms to mount

live demo

Does 60fps survive your thumb?

Drag this card. The spring animates transforms only, so nothing else on the page drops a frame while you play.

Drag me.
live demo

What does accessible actually feel like?

Submit it empty or mistype it: the panel below shows exactly what a screen reader hears. No mouse required.

Keyboard only: Tab to the field, Enter to submit.

PROCESS

This site practices what it preaches.

Every claim on this page is measurable. Here is the budget I set and what your browser measured.

Largest Contentful Paint
—
JavaScript on first load
—
Cumulative Layout Shift
—

Typography: Archivo for headlines, Hanken Grotesk for reading, IBM Plex Mono for numbers: tabular digits, so live metrics never reflow the sentence.

Color: near-black base, one lime accent, orange reserved for actions only. Text contrast measures 7:1 or better across the dark theme; the light theme measures AA.

Dark mode is not for everyone. About 40% of adults have astigmatism and light text can halo, so the light switch lives in the playground. Use it.

CONTACT

You read to the end. That was the plan.

One email, two ways to use it.

Hire me

Full-time roles. Bring the hard problems.

Start a project

Freelance work. Bring the brief.