Tanner Hodges

November 29, 2021

#18 New Website + Newsletter

Last week I realized it was time to switch gears. Keeping this weekly “mini blog” for 3+ months has helped me gather my thoughts. Now it’s time to move into the next phase: work. You can read the latest draft of Catching Up With Web Performance at https://catchingup.dev. For all future updates, I have a new, dedicated newsletter: https...
Read more

November 22, 2021

#17 Cars, Pareto, and Performance

How a Car Works is an incredible resource—literally building an entire car from scratch, starting from the engine block. And it’s amazing how often “performance” comes up. Building a car, performance is constantly top-of-mind. How does the block’s material affect its fuel economy? How does vibration in the crankshaft affect RPM? It’s a...
Read more

November 15, 2021

#16 Looking for everyday problems

I’ve been getting back in the weeds of things, raw engineering instead of just theorizing. It feels good to get my hands dirty with code, feel the pain of everyday problems (“Why isn’t webpack working?” “How come my CSS won’t load?” “How am I supposed to…?”). How do we talk about performance at this raw, everyday level? Abstractions ar...
Read more

November 8, 2021

#15 Diagnostics and triage

Most of the time, performance tuning is about fixing problems. The site was slow, the checkout was unavailable, etc. Like a doctor trying to diagnose an illness, we jump into a situation with little context, searching for clues to what could be causing the problem. Metrics are tests that help narrow down causes. “They have a high LCP? ...
Read more

November 1, 2021

#14 Performance happens over time

Performance is an infinite game. One of the most interesting aspects of performance to me lately is how it doesn’t stop. It goes on. It’s long. It’s historical. Like, we’re keeping track of this now! (Just look at those CrUX dashboards!) And the time scale isn’t just day-over-day, or week-over-week. No, it’s month-over-month, pushing y...
Read more

October 25, 2021

#13 Functional vs Non-Functional Requirements

When you say “Jump”, performance says “How high?” It’s not just the thing you do, it’s how well you do it. Functional requirements focus on what you do (your function) while non-functional requirements focus on how you do it, on the quality of that thing you’re doing. It’s a subtle but powerful shift in thinking: • The car drives, but ...
Read more

October 18, 2021

#12 “Who did it better?”

How do you decide what to measure? It’s a question I keep circling around. Sure, we have metrics other smart people told us to use, but how should we use them? How do I know they matter to me in my situation right now? How do I know when they’re not enough? A game I’ve started playing is “Who did it better?”—but for website functionali...
Read more

October 11, 2021

#11 Performance by proxy and metric trees

You’re trying to make something better. How do you know it’s better? At the core of every performance metric is a belief, a fundamental belief about what makes something good. Some things are obvious—a vacuum cleans, a flashlight lights—but most things worth measuring are anything but obvious. Most of the time what we want to measure i...
Read more

October 4, 2021

#10 Good metrics tell stories

Good metrics have causality. They tell stories. They say “if this then that”. They clearly measure progress towards a specific goal: run fast win race, study hard pass test, save money buy house, etc. Goals say where you want to go. Strategies say how you plan to get there. Metrics measure your progress, and objectives are like checkpo...
Read more

September 27, 2021

#9 What’s on your dashboard?

When you’re driving, what information do you keep in front of you? What’s so important that you’d put it on your dashboard? “I need to know X, Y, and Z.” In the car, you definitely want to know your speed, and you want to know how much gas you have left. What else? There’s other information you need access to (like the volume of the ra...
Read more

See more posts »