<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/feed.rss.xml" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Harry Roberts</title>
    <description>Consultant Web Performance Engineer</description>
    <link>https://speakerdeck.com/csswizardry</link>
    <atom:link rel="self" type="application/rss+xml" href="https://speakerdeck.com/csswizardry.rss"/>
    <lastBuildDate>2015-02-19 06:50:20 -0500</lastBuildDate>
    <item>
      <title>Build for the Web, Build on the Web, Build With the Web</title>
      <description>Every layer of abstraction made in the browser moves you further from the platform, ties you further into framework lock-in, and moves you further away from fast.

By using progressive enhancement, you can opt into browser-native features that are usually faster, more accessible, more secure, and—perhaps most importantly to the business—maintained by someone else.

The beauty of opting into web platform features as they become available is that your site becomes contextual. The same codebase adapts into its environment, playing to its strengths, rather than trying to build and ship your own environment from the ground up. Meet your users where they are.</description>
      <media:content url="https://files.speakerdeck.com/presentations/c79c3d8186c2437a9217359137304944/preview_slide_0.jpg?38711499" type="image/jpeg" medium="image"/>
      <content:encoded>Every layer of abstraction made in the browser moves you further from the platform, ties you further into framework lock-in, and moves you further away from fast.

By using progressive enhancement, you can opt into browser-native features that are usually faster, more accessible, more secure, and—perhaps most importantly to the business—maintained by someone else.

The beauty of opting into web platform features as they become available is that your site becomes contextual. The same codebase adapts into its environment, playing to its strengths, rather than trying to build and ship your own environment from the ground up. Meet your users where they are.</content:encoded>
      <pubDate>Thu, 12 Mar 2026 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/csswizardry/build-for-the-web-build-on-the-web-build-with-the-web</link>
      <guid>https://speakerdeck.com/csswizardry/build-for-the-web-build-on-the-web-build-with-the-web</guid>
    </item>
    <item>
      <title>Site-Speed That Sticks</title>
      <description></description>
      <media:content url="https://files.speakerdeck.com/presentations/bd1f2c5c38454f909b2c3ef00ecb6afc/preview_slide_0.jpg?32629153" type="image/jpeg" medium="image"/>
      <content:encoded></content:encoded>
      <pubDate>Thu, 14 Nov 2024 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/csswizardry/site-speed-that-sticks</link>
      <guid>https://speakerdeck.com/csswizardry/site-speed-that-sticks</guid>
    </item>
    <item>
      <title>How to Think Like a Performance Engineer</title>
      <description>As awareness and tooling around site speed have been improving at a very exciting rate, has performance testing actually become any easier? Any more straightforward? As someone who spends every day auditing client projects, I think areas of confusion have actually increased in many places. Which tools should we be using? Can we trust them? How do we run tests that serve as realistic and actionable predictors? And how do we know when we’ve won?

In this talk, we’ll look at highly practical tools and workflows to ensure that every test we run has a purpose and gives us data we can truly leverage. By the end, we will all have a shared idea of what effective performance testing looks like, as well as customised and fine-tuned tooling to ensure replicable and predictable tests.</description>
      <media:content url="https://files.speakerdeck.com/presentations/1c27c7ec3f4f409f85e5deeace32600a/preview_slide_0.jpg?31017543" type="image/jpeg" medium="image"/>
      <content:encoded>As awareness and tooling around site speed have been improving at a very exciting rate, has performance testing actually become any easier? Any more straightforward? As someone who spends every day auditing client projects, I think areas of confusion have actually increased in many places. Which tools should we be using? Can we trust them? How do we run tests that serve as realistic and actionable predictors? And how do we know when we’ve won?

In this talk, we’ll look at highly practical tools and workflows to ensure that every test we run has a purpose and gives us data we can truly leverage. By the end, we will all have a shared idea of what effective performance testing looks like, as well as customised and fine-tuned tooling to ensure replicable and predictable tests.</content:encoded>
      <pubDate>Wed, 17 Jul 2024 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/csswizardry/how-to-think-like-a-performance-engineer</link>
      <guid>https://speakerdeck.com/csswizardry/how-to-think-like-a-performance-engineer</guid>
    </item>
    <item>
      <title>cache rules everything</title>
      <description>Caching is something most developers take for granted, but experience tells me time and time again that most developers also don’t understand how to configure their caching rules safely, correctly, or effectively. Do you know what no-cache means? Do you know what the Pragma header does? Do you know the difference between Last-Modified or ETag? Expires or Cache-Control? You will soon.

In this talk, we’ll remove the noise, get rid of everything we don’t need, and then step through a series of real-life scenarios to work out how to solve almost any caching situation with a series of questions.</description>
      <media:content url="https://files.speakerdeck.com/presentations/aa8c9f60b1344687a00670b05d699544/preview_slide_0.jpg?27143095" type="image/jpeg" medium="image"/>
      <content:encoded>Caching is something most developers take for granted, but experience tells me time and time again that most developers also don’t understand how to configure their caching rules safely, correctly, or effectively. Do you know what no-cache means? Do you know what the Pragma header does? Do you know the difference between Last-Modified or ETag? Expires or Cache-Control? You will soon.

In this talk, we’ll remove the noise, get rid of everything we don’t need, and then step through a series of real-life scenarios to work out how to solve almost any caching situation with a series of questions.</content:encoded>
      <pubDate>Sat, 23 Sep 2023 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/csswizardry/cache-rules-everything</link>
      <guid>https://speakerdeck.com/csswizardry/cache-rules-everything</guid>
    </item>
    <item>
      <title>My Website Is Slow!  Where Do I Start?</title>
      <description>Working as a performance consultant, I tend to collaborate with many different clients over the course of a year. Two things they all have in common: they all know their website is slow, but they don’t know why or where.

When some sites can run to dozens of templates across thousands of pages, finding problem areas can feel like shooting in the dark, and making a start can feel completely paralysing. In this talk, we’ll look at some practical approaches, tools, and workflows to quickly and effectively determine where our primary liabilities lie, what they are, and—most importantly—which steps to take first.</description>
      <media:content url="https://files.speakerdeck.com/presentations/df03a13cd32b4a6aa43567bae254cecc/preview_slide_0.jpg?25756375" type="image/jpeg" medium="image"/>
      <content:encoded>Working as a performance consultant, I tend to collaborate with many different clients over the course of a year. Two things they all have in common: they all know their website is slow, but they don’t know why or where.

When some sites can run to dozens of templates across thousands of pages, finding problem areas can feel like shooting in the dark, and making a start can feel completely paralysing. In this talk, we’ll look at some practical approaches, tools, and workflows to quickly and effectively determine where our primary liabilities lie, what they are, and—most importantly—which steps to take first.</content:encoded>
      <pubDate>Wed, 24 May 2023 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/csswizardry/my-website-is-slow-where-do-i-start</link>
      <guid>https://speakerdeck.com/csswizardry/my-website-is-slow-where-do-i-start</guid>
    </item>
    <item>
      <title>Optimising Largest Contentful Paint</title>
      <description>Since Google announced their Core Web Vitals (CWV) initiative, being fast is more important than ever. However, despite being by far the easiest CWV to monitor, debug, and optimise—in both the lab and field—Largest Contentful Paint (LCP) is still the one that most websites struggle with.

In this very practical talk, we’ll look at what exactly comprises LCP, how we might be working against ourselves, and how to make opportunistic optimisations to get ourselves back in the green (and beyond).

And even if none of those terms meant anything to you, don’t worry! You’ll leave this talk fully equipped to go back to your own projects and clients and make all the improvements they’ll need. Get ready to ask for a pay rise.</description>
      <media:content url="https://files.speakerdeck.com/presentations/1f5ab14cac204f9eb662a7b1c7133ccf/preview_slide_0.jpg?23232146" type="image/jpeg" medium="image"/>
      <content:encoded>Since Google announced their Core Web Vitals (CWV) initiative, being fast is more important than ever. However, despite being by far the easiest CWV to monitor, debug, and optimise—in both the lab and field—Largest Contentful Paint (LCP) is still the one that most websites struggle with.

In this very practical talk, we’ll look at what exactly comprises LCP, how we might be working against ourselves, and how to make opportunistic optimisations to get ourselves back in the green (and beyond).

And even if none of those terms meant anything to you, don’t worry! You’ll leave this talk fully equipped to go back to your own projects and clients and make all the improvements they’ll need. Get ready to ask for a pay rise.</content:encoded>
      <pubDate>Thu, 06 Oct 2022 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/csswizardry/optimising-largest-contentful-paint</link>
      <guid>https://speakerdeck.com/csswizardry/optimising-largest-contentful-paint</guid>
    </item>
    <item>
      <title>Get Your Head Straight</title>
      <description>Despite being the only section of a website that a user never sees, the HEAD is arguably the most important. It is bound to its own unique set of rules and often governs the overall speed of the page. In this talk, we’ll look at some specific caveats, some fascinating intricacies, and—critically—the optimum order for a faster HEAD. Find out why your HEAD tags are so messy, so vital, and, I promise you, so interesting.</description>
      <media:content url="https://files.speakerdeck.com/presentations/3a0d26bdfec642e496cb6d04103360b0/preview_slide_0.jpg?19131534" type="image/jpeg" medium="image"/>
      <content:encoded>Despite being the only section of a website that a user never sees, the HEAD is arguably the most important. It is bound to its own unique set of rules and often governs the overall speed of the page. In this talk, we’ll look at some specific caveats, some fascinating intricacies, and—critically—the optimum order for a faster HEAD. Find out why your HEAD tags are so messy, so vital, and, I promise you, so interesting.</content:encoded>
      <pubDate>Wed, 22 Sep 2021 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/csswizardry/get-your-head-straight</link>
      <guid>https://speakerdeck.com/csswizardry/get-your-head-straight</guid>
    </item>
    <item>
      <title>From Milliseconds  to Millions: A Look at the Numbers Powering Web Performance</title>
      <description>We all know performance is big business, but how big? Let’s take a look at some of the numbers powering the web performance industry from both sides of the table. What do performance improvements mean for my clients, and how do we translate that into a working relationship?</description>
      <media:content url="https://files.speakerdeck.com/presentations/d0d9245d53474591a3d9c1cf47d61766/preview_slide_0.jpg?14176350" type="image/jpeg" medium="image"/>
      <content:encoded>We all know performance is big business, but how big? Let’s take a look at some of the numbers powering the web performance industry from both sides of the table. What do performance improvements mean for my clients, and how do we translate that into a working relationship?</content:encoded>
      <pubDate>Fri, 08 Nov 2019 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/csswizardry/from-milliseconds-to-millions-a-look-at-the-numbers-powering-web-performance</link>
      <guid>https://speakerdeck.com/csswizardry/from-milliseconds-to-millions-a-look-at-the-numbers-powering-web-performance</guid>
    </item>
    <item>
      <title>More Than You Ever Wanted to Know About Resource Hints</title>
      <description>Resource Hints are a great way for developers to make their web pages faster by allowing us to be a little bit smarter than the browser. Although not a new specification—they’ve been around in some form or another for years!—are we truly getting the most out of them? And do we understand them thoroughly enough to use them most effectively? Heck, do we even know what a ‘Resource Hint’ is?! Well, by the end of this talk, we’ll all be experts.

Let’s take a look at all of the different Resource Hints we have available to us, real-world examples of how best to use them, and learn about some of the more obscure intricacies and gotchas that we need to be aware of if we want to really get the best out of them (and to make sure that we really are being smarter than the browser).</description>
      <media:content url="https://files.speakerdeck.com/presentations/4cf314e24e6d400f81f98567cf8f6288/preview_slide_0.jpg?12392020" type="image/jpeg" medium="image"/>
      <content:encoded>Resource Hints are a great way for developers to make their web pages faster by allowing us to be a little bit smarter than the browser. Although not a new specification—they’ve been around in some form or another for years!—are we truly getting the most out of them? And do we understand them thoroughly enough to use them most effectively? Heck, do we even know what a ‘Resource Hint’ is?! Well, by the end of this talk, we’ll all be experts.

Let’s take a look at all of the different Resource Hints we have available to us, real-world examples of how best to use them, and learn about some of the more obscure intricacies and gotchas that we need to be aware of if we want to really get the best out of them (and to make sure that we really are being smarter than the browser).</content:encoded>
      <pubDate>Sat, 20 Apr 2019 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/csswizardry/more-than-you-ever-wanted-to-know-about-resource-hints</link>
      <guid>https://speakerdeck.com/csswizardry/more-than-you-ever-wanted-to-know-about-resource-hints</guid>
    </item>
    <item>
      <title>It’s My (Third) Party, and I’ll Cry if I Want To</title>
      <description>Like it or not, a huge part of modern web development involves the use of third-party providers: fonts, analytics, ads, tracking, and more all have an impact of performance, and can leave us (or, more worryingly, our visitors) susceptible to performance degradation.

In this talk, we’ll take a look at unruly or uninvited (third-)party guests: how to detect them, how to audit them, and how to manage them. We’ll also look at the different tools available to help us stress-test and quantify the overhead these third parties bring, and what that means for users and businesses alike.</description>
      <media:content url="https://files.speakerdeck.com/presentations/917f7f8fbbd1461ebaeeac4c17c0de55/preview_slide_0.jpg?11216047" type="image/jpeg" medium="image"/>
      <content:encoded>Like it or not, a huge part of modern web development involves the use of third-party providers: fonts, analytics, ads, tracking, and more all have an impact of performance, and can leave us (or, more worryingly, our visitors) susceptible to performance degradation.

In this talk, we’ll take a look at unruly or uninvited (third-)party guests: how to detect them, how to audit them, and how to manage them. We’ll also look at the different tools available to help us stress-test and quantify the overhead these third parties bring, and what that means for users and businesses alike.</content:encoded>
      <pubDate>Fri, 11 May 2018 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/csswizardry/its-my-third-party-and-ill-cry-if-i-want-to</link>
      <guid>https://speakerdeck.com/csswizardry/its-my-third-party-and-ill-cry-if-i-want-to</guid>
    </item>
    <item>
      <title>FaCSSt: CSS &amp; Performance</title>
      <description>Ahh… CSS and performance. Two of my favourite things! But how well do they play together? It depends…

In this very matter-of-fact talk, we’ll be looking at all of the different ways CSS can make our websites faster or slower. From the common and perhaps more obvious, to the unusual and obscure ways in which CSS can impact performance for better or worse.</description>
      <media:content url="https://files.speakerdeck.com/presentations/db04ce4145444f5188aee71c73ffd8f9/preview_slide_0.jpg?10141780" type="image/jpeg" medium="image"/>
      <content:encoded>Ahh… CSS and performance. Two of my favourite things! But how well do they play together? It depends…

In this very matter-of-fact talk, we’ll be looking at all of the different ways CSS can make our websites faster or slower. From the common and perhaps more obvious, to the unusual and obscure ways in which CSS can impact performance for better or worse.</content:encoded>
      <pubDate>Fri, 23 Mar 2018 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/csswizardry/facsst-css-and-performance-1</link>
      <guid>https://speakerdeck.com/csswizardry/facsst-css-and-performance-1</guid>
    </item>
    <item>
      <title>Vim for Front-end Developers</title>
      <description>When most people think of Vim, they think of hardcore programmers and sysadmins staring at green and black terminal screens all day. In this talk, I’ll demystify some of Vim’s more esoteric ways, and show how we as front-end developers can make use of its powerful features.

**N.B.** These slides won’t make a great deal of sense without their animated GIFs—sorry.</description>
      <media:content url="https://files.speakerdeck.com/presentations/44e84ec03be2439584ed99eb9e69c6a4/preview_slide_0.jpg?9380836" type="image/jpeg" medium="image"/>
      <content:encoded>When most people think of Vim, they think of hardcore programmers and sysadmins staring at green and black terminal screens all day. In this talk, I’ll demystify some of Vim’s more esoteric ways, and show how we as front-end developers can make use of its powerful features.

**N.B.** These slides won’t make a great deal of sense without their animated GIFs—sorry.</content:encoded>
      <pubDate>Thu, 08 Feb 2018 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/csswizardry/vim-for-front-end-developers</link>
      <guid>https://speakerdeck.com/csswizardry/vim-for-front-end-developers</guid>
    </item>
    <item>
      <title>Why Fast Matters</title>
      <description>We’re all—I hope!—well aware that performance is important; it’s great for business and it’s great for our users. But things are still not fast enough. With more and more emerging markets coming online, and more and more apps moving to the web platform, we’re reaching an intersection where connections are getting slower and websites are getting heavier. In this talk, we’ll learn just what these emerging markets mean to us, and how we can begin to move in the right direction.</description>
      <media:content url="https://files.speakerdeck.com/presentations/fa75856904534da5a853867fde5d5b19/preview_slide_0.jpg?7984434" type="image/jpeg" medium="image"/>
      <content:encoded>We’re all—I hope!—well aware that performance is important; it’s great for business and it’s great for our users. But things are still not fast enough. With more and more emerging markets coming online, and more and more apps moving to the web platform, we’re reaching an intersection where connections are getting slower and websites are getting heavier. In this talk, we’ll learn just what these emerging markets mean to us, and how we can begin to move in the right direction.</content:encoded>
      <pubDate>Wed, 17 May 2017 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/csswizardry/why-fast-matters</link>
      <guid>https://speakerdeck.com/csswizardry/why-fast-matters</guid>
    </item>
    <item>
      <title>Refactoring CSS Without Losing Your Mind</title>
      <description>Refactoring CSS Without Losing Your Mind
Working with CSS is tricky enough as it is; working with legacy CSS can be nightmarish. In this talk, we’ll look at how we decide what to refactor and when; how we can refactor code whilst still shipping features; how to avoid regressions when adding new CSS; how we can avoid the dreaded refactoring tunnels; running new and legacy code in tandem; and a bunch of other neat little tips and tricks.</description>
      <media:content url="https://files.speakerdeck.com/presentations/f8b1f7c78b164414ae6659b31f3589d6/preview_slide_0.jpg?6663198" type="image/jpeg" medium="image"/>
      <content:encoded>Refactoring CSS Without Losing Your Mind
Working with CSS is tricky enough as it is; working with legacy CSS can be nightmarish. In this talk, we’ll look at how we decide what to refactor and when; how we can refactor code whilst still shipping features; how to avoid regressions when adding new CSS; how we can avoid the dreaded refactoring tunnels; running new and legacy code in tandem; and a bunch of other neat little tips and tricks.</content:encoded>
      <pubDate>Sun, 07 Aug 2016 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/csswizardry/refactoring-css-without-losing-your-mind</link>
      <guid>https://speakerdeck.com/csswizardry/refactoring-css-without-losing-your-mind</guid>
    </item>
    <item>
      <title>A Rather Peculiar Journey</title>
      <description>Slides from my crowdsourced Webstock ’16 talk.</description>
      <media:content url="https://files.speakerdeck.com/presentations/10ec1c9fbe01475686d6f0cf7cc8f396/preview_slide_0.jpg?5866090" type="image/jpeg" medium="image"/>
      <content:encoded>Slides from my crowdsourced Webstock ’16 talk.</content:encoded>
      <pubDate>Wed, 10 Feb 2016 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/csswizardry/a-rather-peculiar-journey</link>
      <guid>https://speakerdeck.com/csswizardry/a-rather-peculiar-journey</guid>
    </item>
    <item>
      <title>FaCSSt—CSS &amp; Performance</title>
      <description>How CSS can improve (or harm) performance.</description>
      <media:content url="https://files.speakerdeck.com/presentations/9353bf6fd04d4b6cb6c503bf3ef25c11/preview_slide_0.jpg?5799227" type="image/jpeg" medium="image"/>
      <content:encoded>How CSS can improve (or harm) performance.</content:encoded>
      <pubDate>Thu, 21 Jan 2016 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/csswizardry/facsst-css-and-performance</link>
      <guid>https://speakerdeck.com/csswizardry/facsst-css-and-performance</guid>
    </item>
    <item>
      <title>CSS for Software Engineers for CSS Developers</title>
      <description>Applying traditional software engineering principles directly (or indirectly) to CSS.</description>
      <media:content url="https://files.speakerdeck.com/presentations/087e1c8ae1c4452f82ae6fd5e6215a9a/preview_slide_0.jpg?5242039" type="image/jpeg" medium="image"/>
      <content:encoded>Applying traditional software engineering principles directly (or indirectly) to CSS.</content:encoded>
      <pubDate>Tue, 15 Sep 2015 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/csswizardry/css-for-software-engineers-for-css-developers</link>
      <guid>https://speakerdeck.com/csswizardry/css-for-software-engineers-for-css-developers</guid>
    </item>
    <item>
      <title>4½ Methods for Theming in (S)CSS</title>
      <description>A detailed look at four (and a bit) different ways to provide various types of theming functionality in your UI projects.</description>
      <media:content url="https://files.speakerdeck.com/presentations/3005a4d5882d428aa52bb09c54174fd5/preview_slide_0.jpg?4575188" type="image/jpeg" medium="image"/>
      <content:encoded>A detailed look at four (and a bit) different ways to provide various types of theming functionality in your UI projects.</content:encoded>
      <pubDate>Thu, 19 Feb 2015 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/csswizardry/4half-methods-for-theming-in-s-css</link>
      <guid>https://speakerdeck.com/csswizardry/4half-methods-for-theming-in-s-css</guid>
    </item>
  </channel>
</rss>
