Harry Roberts
where else to find them
website:https://csswizardry.com
github:csswizardry
bluesky:csswizardry.com
linkedin:csswizardry
speakerdeck:csswizardry
youtube:@csswizardry
instagram:csswizardry
facebook:mcveventography
what they talk about
all 9 in the filters
where they keep going back
- performance.now()6 editions2018–2025
- JS Fest2 editions2018–2019
- Frontend United2 editions2016–2018
all 24 in the filters
on a stage with
never shared a talk
who talks about the same things
- Tim Kadlec12 talks
- Tammy Everts14 talks
- Anna Migas12 talks
- Steve Souders26 talks
- Doug Sillars20 talks
- Ben Schwarz10 talks
| title | conference | date |
|---|---|---|
| How to Think like a Performance Engineer | performance.now() 2025 | 2025-10-30 |
Starts with concrete tooling and numbers: use the Chrome User Experience Report and Treyo to learn that real users hit ~3.2s P75 where Lighthouse sometimes… | ||
| Site-Speed That Sticks | performance.now() 2024 | 2024-11-14 |
Practical playbook and hard numbers: a five‑step performance framework from project definition through deployment, with concrete tools and tests you can run… | ||
| Cache Rules Everything | performance.now() 2023 | 2023-11-02 |
Only two headers actually solve HTTP caching: cache-control and ETag; remove clutter like Pragma, Expires and Last-Modified. Use directives you can reason… | ||
| Optimising Largest Contentful Paint | Øredev 2022 | 2022-11-08 |
LCP is the measured time to render the page’s largest contentful element and Google’s „good“ threshold is 2.5s; only ~54% of sites hit acceptable LCP and a… | ||
| Optimising Largest Contentful Paint | performance.now() 2022 | 2022-10-27 |
Explains that Largest Contentful Paint (LCP) is measurable and fixable with concrete steps not fluff citing Core Web Vitals 2.5s target and HTTP Archive… | ||
| Get Your Head Straight | SmashingConf Freiburg 2022 | 2022-09-05 |
HTML is parsed line by line so anything in the head blocks render; the head becomes the single biggest render‑blocking part of a page. A real demo starts at… | ||
| Get Your "head" Straight | beyond tellerrand Düsseldorf 2021 | 2021-11-08 |
Shows that reordering head reduces start render from 9.3s to 2.6s; moving a meta content security policy to the top saves about 3.7 seconds by preserving the… | ||
| From Milliseconds to Millions: The Numbers Driving Web Perf | performance.now() 2019 | 2019-11-21 |
Slides and numbers drive decisions: concrete wins, not vague topics. Case studies show measurable impact — 6.2–6.4 seconds faster on mobile without touching ad… | ||
| From Milliseconds to Millions | ffconf 2019 | 2019-11-08 |
Concrete numbers, measurable wins, and the actual fixes decide tonight. Case studies show a site dropping from ~16s to ~6s global load, a Venezuela hotspot… | ||
| “More Than You Ever Wanted to Know About Resource Hints” | Clarity 2019 | 2019-08-20 |
Resource hints are five simple HTML lines that actually change load time: dns-prefetch saves ~80–120ms for common names but can hit 1–10s in edge cases… | ||
| More Than You Wanted to Know About Resource Hints | Shift Dev 2019 | 2019-05-30 |
158-slide deep dive that distils six concrete resource hints and how to use them: DNS prefetch, preconnect, prefetch, preload. Examples include preconnect… | ||
| It’s My (Third) Party, and I’ll Cry if I Want To | JSHeroes 2019 | 2019-04-11 |
Shows how to measure actual cost of third parties and then fix them: use WebPageTest + RequestMap to map domains and run block-tests, use Charles throttling to… | ||
| It’s My (Third) Party, and I’ll Cry if I Want To | JS Fest 2019 Spring | 2019-04-04 |
Shows specific failures and fixes: measure third‑party overhead with WebPageTest and Request Map to get a jellyfish CSV, rerun blocking tests, and simulate… | ||
| It’s My (Third) Party, and I’ll Cry if I Want To | FrontEnd Con 2018 | 2018-12-04 |
Shows how to find, measure and fix third-party cost: run WebPageTest and feed its ID into RequestMap to get a CSV, import that into a spreadsheet, then re-run… | ||
| It’s My (Third) Party, and I’ll Cry if I Want To | Cold Front 2018 | 2018-11-13 |
Third-party scripts often multiply requests and bytes — WebPageTest plus RequestMap shows requests rising 4.2× and bytes 2.7×, and blocking tag managers can… | ||
| It's My (Third) Party and I'll Cry If I Want To | performance.now() 2018 | 2018-11-08 |
Shows concrete failures and fixes: a tag manager outage blocks rendering for ~80–90 seconds (Chrome timeout ~80s) and can freeze pages; WebPageTest plus… | ||
| FaCSSt: CSS and Performance | Web Unleashed 2018 | 2018-10-01 |
Claims and numbers: embedding images as base64-encoded images in CSS inflates critical CSS and causes up to 10x slower first paint on mobile (examples: ~700ms… | ||
| Third-Party Performance Auditing | Smashing Conference Toronto 2018 | 2018-06-26 |
-- no description -- | ||
| FaCSSt—CSS and Performance | Frontend United 2018 | 2018-06-01 |
Claims and measurements focus decisions: saving 300 ms = potential £8.1M/yr; a 1 MB stylesheet = ~200 ms parse on Moto G4; base64 in CSS makes first paint… | ||
| It’s My (Third) Party and I'll Cry If I Want To | DeltaV Conference 2018 | 2018-05-10 |
Shows concrete audits and fixes: uses requestmap.webperf.tools plus WebPageTest and the WebPageTest block feature to compare before/after, probes origins with… | ||
| FaCSSt: CSS & Performance | JS Fest 2018 | 2018-03-30 |
Slides and experiments show concrete, actionable findings: a 1 MB stylesheet takes about 200 ms parse on a Moto G, base64-encoding images in CSS makes parsing… | ||
| Why Fast Matters | JS Fest 2018 | 2018-03-30 |
Shows that shaving 0.3s drives an extra £8.1M per year, turning on gzip cuts bandwidth by 43%, and cutting load times 80% yields an 80% jump in organic… | ||
| FaCSSt—CSS and Performance | Render Conference 2018 | 2018-03-23 |
CSS parsing and delivery actually decide perceived speed: a 1 MB stylesheet costs about 200 ms parse on a Moto G4, embedding images with base64 blows up… | ||
| Why Fast Matters | Beyond Tellerrand Munich 2018 | 2018-01-15 |
Case studies show concrete wins: reducing latency by 0.3s yields £8.1M in extra revenue for a train ticket retailer, turning on gzip saves 43% of a large… | ||
| Why Fast Matters | CSSConf Budapest 2017 | 2017-10-25 |
A case study shows shaving 0.3s = £8.1m from a train-ticket checkout; Netflix cuts costs by 43% bandwidth saved by gzip; GQ reduces load time 80% and gains 32%… | ||
| Refactoring CSS Without Losing Your Mind | CSSconf Argentina 2016 | 2016-08-07 |
Argues that refactoring must be specific: prove costs with numbers (theme hacks total 9 days versus a 7‑day refactor), avoid giant “refactoring tunnels,” and… | ||
| CSS for Software Engineers for CSS Developers | CSS Day + HTML Special 2016 | 2016-06-16 |
116‑slide sprint that maps concrete software‑engineering principles onto CSS: uses variables and mixins for a single source of truth, breaks classes by… | ||
| CSS for Software Engineers for CSS Developers | Frontend United 2016 | 2016-05-27 |
Argues that stealing software‑engineering patterns makes CSS easier to maintain: use DRY via variables and mixins (preprocessors or PostCSS produce the single… | ||
| CSS for Software Engineers for CSS Developers | Front-Trends 2016 | 2016-05-18 |
Argues for stealing classical SE patterns for CSS and gives concrete techniques: use preprocessors and mixins to enforce a single source of truth (e.g., $unit… | ||
| 4½ Methods for Theming in (S)CSS | CSSConf Australia 2015 | 2015-03-26 |
Claims four concrete theming patterns plus a half for user customization and shows working code: Sass-based theme pallet, Sass config theming… | ||
| 10 Principles for effective Front-end Development | dotCSS 2014 | 2014-11-14 |
Ten concrete principles: favor the simplest option and reduce moving parts, quantify cost versus value, pick pragmatic over perfect, and think at the product… | ||
| Normalising designs for better quality CSS | CSSConf EU 2013 | 2013-09-13 |
Argues for saying no to designs that bloat CSS and for pragmatic tradeoffs that keep a codebase tiny and maintainable. Uses concrete rules: a 16px base font… | ||
| nothing matches | ||