Web Performance, Part 3: Get to first paint faster
In this post, we cover how to make the page faster without changing much of the code. We follow the first seconds of a slow checkout page and cut TTFB and FCP one wait at a time.
Essays and long-form learnings on engineering, fundamentals, and shipping software.
In this post, we cover how to make the page faster without changing much of the code. We follow the first seconds of a slow checkout page and cut TTFB and FCP one wait at a time.
Your Lighthouse score says 98, yet real customers still wait. Lab, synthetic and field data each tell part of the story. Here is how to read them. You will also learn to set goals that keep you accountable.
Before you can make a page fast, you need to know what "fast" means. A plain guide to the Core Web Vitals, how they are scored, and how to capture them yourself.
Your salary went up. So why does it feel like you have less? A simple explanation of real income, sparked by PM Lawrence Wong's comments at the Forbes Global CEO Conference.
Four acronyms, one question: where and when does your HTML get built? A plain walkthrough of client-side, server-side, static and incremental rendering, and how to pick between them.
Ever wondered how the bugs in an app gets fixed without users downloading any latest version of the app? This is where OTA comes into picutre. Read more to learn what it is and how it works.
A loading spinner makes the wait feel shorter. It does not make the wait shorter. Here are the strategies that actually shrink page load time in React Native, and the one that only hides it.
Two ways to answer the same question - who is making this request? They work differently enough that the choice between them shapes a lot of what you build on top. Here's how each one works, what separates them, and where each one fits.
I'm a frontend engineer working on becoming fullstack, and instead of rushing to write code in Node.js, I spent a week figuring out what Node is actually doing underneath. Here's what finally made the event loop click.
One long conversation with an AI assistant degrades the same way one long function does. Here's how I split my workflow into five stages, each with its own agent, its own context, and its own job.
AI can write code fast, but it has no idea whether that code survives contact with real users. Four bugs it will happily hand you, and why understanding the system underneath still matters more than ever.
One small change made my code way easier to read and maintain. Instead of nesting conditionals deeper and deeper, handle edge cases first and let the happy path speak for itself.