
{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Simon Hearne — Talks",
  "language": "en",
  "home_page_url": "https://simonhearne.com/talks/",
  "feed_url": "https://simonhearne.com/feed/talks.json",
  "description": "Conference talks and webinars, with slides and video",
  "icon": "https://simonhearne.com/images/simon.jpg",
  "authors": [
    { "name": "Simon Hearne", "url": "https://simonhearne.com/about/", "avatar": "https://simonhearne.com/images/simon.jpg" }
  ],
  "items": [{
      "id": "https://simonhearne.com/2026/rag-cost-curve/",
      "url": "https://simonhearne.com/2026/rag-cost-curve/",
      "title": "The RAG Cost Curve",
      "summary": "When does a retrieval index actually beat live search? Measured break-even points, not vendor claims: 334 queries a day on a short agent history, never on code the model already knows, and 24 on code it has never seen.",
      "image": "https://talks.simonhearne.com/og/rag-cost-curve.png",
      "tags": ["VectorDB","Zilliz","Milvus","talk","conference"],
      "authors": [{ "name": "Simon Hearne", "url": "https://simonhearne.com/about/" }],"content_html": "<p>My abstract promised a number. Measuring it changed the claim.</p>\n<h2 id=\"about-the-talk\" tabindex=\"-1\">About the talk<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2026/rag-cost-curve/#about-the-talk\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>&quot;Just use RAG&quot; and &quot;RAG is dead&quot; are both answers to a question nobody asked precisely. An index costs money to build, to store and to keep current. Live search costs money every time you run it. Which one wins is not a matter of taste, it is a crossover point, and it moves depending on what you are searching and how often.</p>\n<p>This talk puts a number on that crossover for two workloads, conversation memory and code search, and shows the measurements behind it. Every figure comes from a committed CSV, every chart renders from that CSV at build time, and the whole study runs on a laptop with Docker.</p>\n<p>The honest finding is that the index does not always win. It loses badly in one of the cases I measured, and the talk spends time there rather than skipping past it.</p>\n<h2 id=\"what-s-covered\" tabindex=\"-1\">What's covered<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2026/rag-cost-curve/#what-s-covered\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<ul>\n<li><strong>Defining break-even.</strong> What goes into the cost of an index against the cost of live search, and why &quot;worth it&quot; is meaningless without naming what you are comparing against.</li>\n<li><strong>Quantisation and dimensionality reduction.</strong> Scalar, product and RaBitQ quantisation, PCA and Matryoshka embeddings, what each costs you in recall, and how refinement claws precision back. SQ8 won on its own.</li>\n<li><strong>Does recall even matter?</strong> Recall barely moves answer quality until it falls off a cliff, mostly because most questions never had a choice. Aim for recall@k of about 0.95 and stop optimising.</li>\n<li><strong>Two measured workloads.</strong> Conversation memory, and code search against three repositories: one the model already knows, one it has never seen, and the same repository stuffed into context instead of grepped.</li>\n<li><strong>The cost curves, assembled.</strong> Where each workload crosses over, and where it never does.</li>\n</ul>\n<h2 id=\"what-the-numbers-said\" tabindex=\"-1\">What the numbers said<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2026/rag-cost-curve/#what-the-numbers-said\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><strong>Live search wins</strong> when the corpus is small and the model already knows it:</p>\n<ul>\n<li>A short agent history, at 98k tokens of conversation memory, needs <strong>334 queries a day</strong> before a dedicated index pays for itself.</li>\n<li>On <code>fastapi</code>, a repository the model already knows, break-even is <strong>infinite at every size</strong>. No query volume repays the index, because grep is cheaper every time.</li>\n<li>Hold the prompt cache at 99% rather than the measured rate and the crossover is still <strong>232 queries a day</strong>, so the cache assumption is not doing all the work.</li>\n</ul>\n<p><strong>The index wins</strong> as the corpus grows, or when the model has never seen it:</p>\n<ul>\n<li>Conversation memory collapses fast: <strong>15 queries a day</strong> at 392k tokens and <strong>10</strong> at 1.2M, against 334 at 98k.</li>\n<li>On code the model has never seen, the index is <strong>40% cheaper per correct answer</strong> than grep, and more accurate with it: 39 of 40 correct against 36.</li>\n<li>Against stuffing the same repository into context rather than grepping it, the index repays at <strong>12 queries a day</strong>: $0.29 a query re-sent against $0.067 indexed.</li>\n</ul>\n<p>That last pair is the sharpest thing in the talk. Same repository, same index, same box, same prices. The only thing that changes is what the live arm does, and the answer flips from &quot;no volume repays this&quot; to &quot;twelve queries a day&quot;. The question is never &quot;is retrieval worth it&quot;, it is &quot;worth it against what&quot;.</p>\n<h2 id=\"reproduce-it\" tabindex=\"-1\">Reproduce it<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2026/rag-cost-curve/#reproduce-it\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Everything in the talk runs on your own machine, given Docker with 16GB of RAM or more:</p>\n<pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">make</span> setup <span class=\"token operator\">&amp;&amp;</span> <span class=\"token builtin class-name\">source</span> .venv/bin/activate<br /><span class=\"token function\">make</span> up            <span class=\"token comment\"># docker compose up -d + Milvus health wait</span><br /><span class=\"token function\">make</span> data-1m       <span class=\"token comment\"># or data-10m</span><br />jupyter lab        <span class=\"token comment\"># notebooks 01 to 06b in order</span></code></pre>\n<p>If you want the tooling rather than the study, <a href=\"https://github.com/zilliztech/memsearch\">memsearch</a> gives Claude semantic recall over its own conversation history, and <a href=\"https://github.com/zilliztech/claude-context\">claude-context</a> adds semantic code search to coding agents over MCP.</p>\n<p>Presented at <a href=\"https://haystackconf.com/speaker/simon-hearne/\">Haystack Europe 2026</a> in Berlin on 15 September 2026.</p>\n",
      "date_published": "2026-09-15T00:00:00Z",
      "date_modified": "2026-09-15T00:00:00Z",
      "_markdown": { "url": "https://simonhearne.com/2026/rag-cost-curve/index.md" },
      "_talk": {
        "slides_url": "https://talks.simonhearne.com/rag-cost-curve/",
        "video_url": null,
        "links": [
          { "label": "Reproduce every number", "href": "https://github.com/simonhearne/rag-cost-curve" }
        ]
      }
    },{
      "id": "https://simonhearne.com/2026/migrating-to-milvus-talk/",
      "url": "https://simonhearne.com/2026/migrating-to-milvus-talk/",
      "title": "Migrating to Milvus: Tooling, Deployment Choices and Lessons from Real Migrations",
      "summary": "How to move from Elasticsearch or OpenSearch to Milvus or Zilliz Cloud: migration tooling, a real end-to-end walkthrough, deployment choices, and lessons from real customer migrations.",
      "image": "https://simonhearne.com/images/milvus_migration_hero.jpg",
      "tags": ["VectorDB","Zilliz","Milvus","video","talk"],
      "authors": [{ "name": "Simon Hearne", "url": "https://simonhearne.com/about/" }],"content_html": "<p>This is the follow-up to <a href=\"https://simonhearne.com/2026/milvus_search_gap/\">Milvus 3.0: Closing the Search Gap</a>. If you are moving self-managed Milvus rather than Elasticsearch, see <a href=\"https://simonhearne.com/2026/migrating-milvus/\">Migrating Self-managed Milvus to Managed Milvus</a>.</p>\n<h2 id=\"about-the-webinar\" tabindex=\"-1\">About the webinar<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2026/migrating-to-milvus-talk/#about-the-webinar\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Milvus 3.0 expands the range of search workloads teams can run in Milvus, with stronger full-text retrieval plus in-engine sorting, aggregation and faceting. In <a href=\"https://simonhearne.com/2026/milvus_search_gap/\">the previous webinar</a> I explored these search improvements and compared Elasticsearch and Milvus with live side-by-side queries.</p>\n<p>In this follow-up session I move from comparison to migration. I show how Zilliz Migration Service helps move data from Elasticsearch or OpenSearch into Milvus or Zilliz Cloud, then walk through a real migration workflow. I also compare Elastic Cloud (ESS) and Zilliz Cloud, discuss deployment options across open-source Milvus, Zilliz Cloud and Zilliz BYOC (Bring Your Own Cloud), and share lessons from customer migrations.</p>\n<p>If you use Elasticsearch or OpenSearch today and are considering a migration, this is the walkthrough for you.</p>\n<h2 id=\"what-s-covered\" tabindex=\"-1\">What's covered<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2026/migrating-to-milvus-talk/#what-s-covered\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<ul>\n<li><strong>The migration path.</strong> The major stages and decisions in an Elasticsearch or OpenSearch migration to Milvus or Zilliz Cloud.</li>\n<li><strong>Migration tooling and a real walkthrough.</strong> How VTS (the open-source migration tool) and Zilliz Migration Service (the managed service built on VTS) move Elasticsearch and OpenSearch data, followed by a real migration workflow end to end.</li>\n<li><strong>Licensing and commercial tradeoffs.</strong> Licensing models and the commercial considerations behind Elastic Cloud (ESS) and Zilliz Cloud.</li>\n<li><strong>Deployment choices.</strong> Open-source Milvus, Zilliz Cloud and Zilliz BYOC compared across operating model, control and security needs.</li>\n<li><strong>Customer migration stories.</strong> Why real teams moved, how they approached the migration, and what they learned along the way.</li>\n<li><strong>Live AMA.</strong> Around 20 minutes of migration, architecture and evaluation questions.</li>\n</ul>\n<p>Presented as a <a href=\"https://zilliz.com/event/migrating-from-elasticsearch-opensearch-to-milvus\">Zilliz webinar</a> on 2 September 2026.</p>\n",
      "date_published": "2026-09-02T00:00:00Z",
      "date_modified": "2026-09-08T00:00:00Z",
      "_markdown": { "url": "https://simonhearne.com/2026/migrating-to-milvus-talk/index.md" },
      "_talk": {
        "slides_url": "https://talks.simonhearne.com/2026-09-milvus-migration/",
        "video_url": "https://www.youtube.com/watch?v=0xU3Ks2vXIM"
      }
    },{
      "id": "https://simonhearne.com/2026/milvus_search_gap/",
      "url": "https://simonhearne.com/2026/milvus_search_gap/",
      "title": "Milvus 3.0: Closing the Search Gap",
      "summary": "Milvus 3.0 closes the gap between vector search and full-text search: one engine for both. A customer-backed comparison of Milvus 3.0 and Elasticsearch 9.14, with live side-by-side queries you can reproduce yourself.",
      "image": "https://simonhearne.com/images/search_gap_hero.jpg",
      "tags": ["VectorDB","Zilliz","Milvus","video","talk"],
      "authors": [{ "name": "Simon Hearne", "url": "https://simonhearne.com/about/" }],"content_html": "<p>The follow-up webinar, <a href=\"https://simonhearne.com/2026/migrating-to-milvus-talk/\">Migrating to Milvus</a>, moves from comparison to migration: tooling, deployment choices and lessons from real migrations.</p>\n<h2 id=\"about-the-webinar\" tabindex=\"-1\">About the webinar<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2026/milvus_search_gap/#about-the-webinar\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Milvus has long been known for vector search and has supported full-text search since Milvus 2.5, allowing teams to combine lexical and semantic retrieval in one engine. With Milvus 3.0, full-text search takes another major leap:</p>\n<ul>\n<li><strong>Compressed BM25 indexes</strong> roughly 3× smaller than those in Milvus 2.6 at comparable recall, reducing memory and bandwidth pressure.</li>\n<li><strong>SINDI</strong>, a new sparse-retrieval algorithm that delivered roughly 5× to 10× the QPS of MaxScore across four learned-sparse benchmarks, and extends the optimised retrieval path to native BM25.</li>\n<li><strong>Sorting, aggregation and faceting</strong> inside the engine.</li>\n</ul>\n<p>With stronger full-text retrieval added to Milvus's established vector-search foundation, teams can reconsider whether AI retrieval still requires a separate full-text system, along with the infrastructure, pipelines and result-fusion logic that come with it. This talk is a customer-backed comparison of Elasticsearch and Milvus, including live side-by-side queries against Milvus 3.0 and Elasticsearch 9.14. Query semantics, results and performance are all reproducible with the open-source lab linked above.</p>\n<h2 id=\"what-s-covered\" tabindex=\"-1\">What's covered<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2026/milvus_search_gap/#what-s-covered\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<ul>\n<li><strong>Milvus 3.0 full-text search.</strong> BM25, sparse retrieval, index efficiency, server-side sorting, aggregation and faceted search, with a brief look at planned fuzzy matching, multi-phase reranking and JSON-field aggregations.</li>\n<li><strong>Elasticsearch vs. Milvus.</strong> Search capabilities, performance and operational tradeoffs across the two systems.</li>\n<li><strong>Live query demo.</strong> The same queries in Elasticsearch and Milvus, with results and latency visible on screen.</li>\n<li><strong>Hybrid search and ranking.</strong> How full-text and vector results can be combined through ranking and fusion methods such as RRF.</li>\n<li><strong>Production customer evidence.</strong> How real teams improve retrieval quality, support growing workloads and simplify search operations.</li>\n<li><strong>Live AMA.</strong> A 20-minute discussion of search patterns and architecture questions.</li>\n</ul>\n<p>Presented as a <a href=\"https://zilliz.com/event/faster-more-powerful-full-text-search-milvus-3-0\">Zilliz webinar</a> on 19 August 2026.</p>\n",
      "date_published": "2026-08-19T00:00:00Z",
      "date_modified": "2026-08-19T00:00:00Z",
      "_markdown": { "url": "https://simonhearne.com/2026/milvus_search_gap/index.md" },
      "_talk": {
        "slides_url": "https://talks.simonhearne.com/2026-08-milvus-search-gap/",
        "video_url": "https://www.youtube.com/watch?v=XxcA1NSQnCo",
        "links": [
          { "label": "Test it yourself!", "href": "https://github.com/simonhearne/milvus_es_lab" }
        ]
      }
    },{
      "id": "https://simonhearne.com/2026/visualising-vector-search/",
      "url": "https://simonhearne.com/2026/visualising-vector-search/",
      "title": "Vector Search, Visualised",
      "summary": "Vector search has no EXPLAIN. Through interactive visualisations, this talk shows what embeddings look like in high-dimensional space, what quantisation does to your recall, and how to catch retrieval failures before your agents do.",
      "image": "https://talks.simonhearne.com/og/vector-search-visualised.png",
      "tags": ["VectorDB","Zilliz","Milvus","talk","video"],
      "authors": [{ "name": "Simon Hearne", "url": "https://simonhearne.com/about/" }],"content_html": "<h2 id=\"about-the-talk\" tabindex=\"-1\">About the talk<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2026/visualising-vector-search/#about-the-talk\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>SQL makes sense. But when it breaks, you reach for <code>EXPLAIN</code>. Vector search offers no such comfort. Multi-thousand-dimension embeddings, approximate nearest-neighbour indexes, and quantisation tradeoffs make it hard to know what your system is doing, and harder still to diagnose when results quietly degrade.</p>\n<p>Through interactive visualisations, this talk shows what embeddings look like in high-dimensional space, what quantisation does to your recall, and how to catch retrieval failures before your agents do. You'll leave with a sharper mental model and a diagnostic toolkit for the production problems hardest to see.</p>\n<h2 id=\"what-s-covered\" tabindex=\"-1\">What's covered<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2026/visualising-vector-search/#what-s-covered\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<ul>\n<li><strong>Why vector search exists.</strong> Keyword search matches tokens, vector search matches meaning. How models turn text, images and faces into numbers, and what &quot;similar&quot; really means.</li>\n<li><strong>Exact vs. approximate search.</strong> Why flat search doesn't scale, the trade-off triangle of speed, accuracy and cost, and how recall and precision measure what you give up.</li>\n<li><strong>ANN indexes, visualised.</strong> IVF partitions the space, HNSW navigates a graph, DiskANN reaches past RAM. Each with its tuning knobs and where it lands on the triangle.</li>\n<li><strong>Quantisation and dimensionality reduction.</strong> Scalar, product and RaBitQ quantisation, PCA and Matryoshka embeddings, what each costs you in recall, and how refinement claws precision back.</li>\n<li><strong>Filters and silent failure.</strong> Why filtering quietly wrecks recall, three ways out by selectivity, and the signals of degradation that your agent will never report.</li>\n<li><strong>The EXPLAIN you don't get.</strong> How to measure what you can't see, and strategies that actually work in production.</li>\n</ul>\n<p>Presented at <a href=\"https://www.pingcap.com/blog/tidb-scaile-europe-2026/\">TiDB SCaiLE Europe 2026</a> in Stockholm on 4 June 2026 as &quot;When EXPLAIN Isn't Enough: Visualising Vector Search for Engineering and Product Teams&quot;.</p>\n",
      "date_published": "2026-06-04T00:00:00Z",
      "date_modified": "2026-06-04T00:00:00Z",
      "_markdown": { "url": "https://simonhearne.com/2026/visualising-vector-search/index.md" },
      "_talk": {
        "slides_url": "https://talks.simonhearne.com/vector-search-visualised/",
        "video_url": "https://www.youtube.com/watch?v=kY-il0pWjdY"
      }
    },{
      "id": "https://simonhearne.com/2022/third-parties-request-map/",
      "url": "https://simonhearne.com/2022/third-parties-request-map/",
      "title": "WebPageTest Live: Third Parties and Request Map with Simon Hearne",
      "summary": "Third parties have always been a challenge. Having resources loading on your site, beyond your control isn't something users sign up for. In 2015, Simon Hearne created a tool called REQUEST MAP to track just that: requests. This great visualization tool allowed you to see where the request as…",
      "image": "https://simonhearne.com/images/wpt_requestmap_twitch.jpg",
      "tags": ["WebPerf","video","talk"],
      "authors": [{ "name": "Simon Hearne", "url": "https://simonhearne.com/about/" }],"content_html": "<p>Most WebPageTest walkthroughs stop at the waterfall. This session was about what you do next.</p>\n<h2 id=\"about-the-talk\" tabindex=\"-1\">About the talk<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2022/third-parties-request-map/#about-the-talk\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>A live WebPageTest session working through real publisher sites, using Request Map to see which third parties are pulling in which other third parties, and where that chain starts costing real time.</p>\n<p>Alongside the audits it collects the practical mechanics that rarely make it into tutorials: getting past cookie consent banners without breaking your measurement, and a handful of bookmarklets that make WebPageTest's own interface easier to read.</p>\n<h2 id=\"what-s-covered\" tabindex=\"-1\">What's covered<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2022/third-parties-request-map/#what-s-covered\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<ul>\n<li><strong>Live audits.</strong> Global Publishers, Harper's Bazaar and OK Magazine, with Request Map used to trace third-party chains back to whoever invited them.</li>\n<li><strong>Getting past cookie banners, two ways.</strong> Click the button with <code>execAndWait</code>, which simulates a first-time visit and can be merged using <code>combineSteps</code> or split with <code>setEventName</code>; or set the consent cookie directly with <code>setCookie</code>, which emulates a repeat visitor and is the better choice for testing holistic performance.</li>\n<li><strong>Why the cookie method needs maintenance.</strong> Consent cookies are time-limited, must be set on the exact page origin including protocol and without a trailing slash, and often need a combination of cookies before the banner clears.</li>\n<li><strong>Five bookmarklets.</strong> Widening filmstrips, widening the run column, reversing comparison order, jumping from SpeedCurve to the underlying WebPageTest result, and opening the Request Map beta from any test.</li>\n<li><strong>A workflow tip.</strong> Leave the Object tab open to skip quickly between images.</li>\n</ul>\n<p>Recorded as a WebPageTest Live stream. Note that the WebPageTest and Request Map result links in the accompanying speaker notes have since expired.</p>\n",
      "date_published": "2022-10-11T00:00:00Z",
      "date_modified": "2022-10-11T00:00:00Z",
      "_markdown": { "url": "https://simonhearne.com/2022/third-parties-request-map/index.md" },
      "_talk": {
        "slides_url": null,
        "video_url": "https://www.youtube.com/watch?v=TY82pTfhnXY",
        "links": [
          { "label": "View Speaker Notes", "href": "https://notes.simonhearne.com/WebPageTest-Twitch-Stream-Notes-e812abaf4d3445c0ac70678a29ca9e0f" }
        ]
      }
    },{
      "id": "https://simonhearne.com/2021/inclusive-design/",
      "url": "https://simonhearne.com/2021/inclusive-design/",
      "title": "An Inclusive Web is Fast by Default",
      "summary": "Web performance is critical to inclusive design - users on low-end devices or with poor connectivity are excluded from large and slow applications",
      "image": "https://simonhearne.com/images/social_inclusive-design.jpg",
      "tags": ["WebPerf","video","talk"],
      "authors": [{ "name": "Simon Hearne", "url": "https://simonhearne.com/about/" }],"content_html": "<p>Performance is not an average, it is a distribution — and the people at the far end of it are being quietly excluded.</p>\n<h2 id=\"about-the-talk\" tabindex=\"-1\">About the talk<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2021/inclusive-design/#about-the-talk\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>When a home connection fails and drops you to 20–50kbps, the web stops being slow and starts being unusable. That is the everyday condition for a large share of the world: around 65% of people in developing nations have no access to fast internet, against roughly 20% in developed ones.</p>\n<p>This talk argues that inclusion and performance are the same project, and that the analytics telling you everything is fine are often measuring only the users who managed to stay.</p>\n<h2 id=\"what-s-covered\" tabindex=\"-1\">What's covered<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2021/inclusive-design/#what-s-covered\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<ul>\n<li><strong>Survivorship bias in your own data.</strong> The users who gave up never appear in the numbers — and with something like 88% of Firefox users blocking Google Analytics, the sample is narrower than it looks.</li>\n<li><strong>YouTube's Project Feather.</strong> A player cut from 1,200kB to under 100kB across 14 requests measured <em>slower</em> in the field, because the people who opted in were concentrated in South East Asia, Africa and South America. The deck still counts it a success, crediting it with opening YouTube to millions of new users.</li>\n<li><strong>Performance as a distribution.</strong> Why the median hides the problem, and why the tail is where exclusion actually lives.</li>\n<li><strong>Building empathy deliberately.</strong> Chrome throttling, Facebook's &quot;2G Tuesdays&quot;, a roughly $300 test handset, and browsing with JavaScript switched off.</li>\n<li><strong>What to do about it.</strong> Progressive enhancement, lazy-loaded images in WEBP or AVIF, less client-side JavaScript, inline critical CSS, properly sized responsive images, and a performance budget that includes third parties.</li>\n<li><strong>Tools.</strong> WebPageTest, What Does My Site Cost?, Treo, PageSpeed Insights and YellowLab Tools.</li>\n</ul>\n<p>The deck closes on William Gibson: &quot;The future is already here, it's just not evenly distributed.&quot;</p>\n",
      "date_published": "2021-09-23T00:00:00Z",
      "date_modified": "2021-09-23T00:00:00Z",
      "_markdown": { "url": "https://simonhearne.com/2021/inclusive-design/index.md" },
      "_talk": {
        "slides_url": "https://simonhearne.com/presentations/inclusive-design/#/",
        "video_url": "https://www.youtube.com/watch?v=MiXy2x6flww"
      }
    },{
      "id": "https://simonhearne.com/2020/psychology-of-speed/",
      "url": "https://simonhearne.com/2020/psychology-of-speed/",
      "title": "The Psychology of Speed",
      "summary": "We intuitively know that faster is better, but what's the psychology and physiology behind it?",
      "image": "https://simonhearne.com/images/psych-speed-social.jpg",
      "tags": ["WebPerf","video","talk"],
      "authors": [{ "name": "Simon Hearne", "url": "https://simonhearne.com/about/" }],"content_html": "<p>Feeling fast and being fast are different problems. This talk is about the gap between them.</p>\n<h2 id=\"about-the-talk\" tabindex=\"-1\">About the talk<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2020/psychology-of-speed/#about-the-talk\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Performance work starts with a stopwatch, but the number on the stopwatch and the speed a user perceives are not the same quantity. The difference is psychological, it is well studied, and it is largely under your control as a designer.</p>\n<p>This talk takes the research on waiting — why an occupied wait feels shorter, why uncertainty hurts more than duration — and maps it onto the concrete decisions you make when building an interface.</p>\n<h2 id=\"what-s-covered\" tabindex=\"-1\">What's covered<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2020/psychology-of-speed/#what-s-covered\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<ul>\n<li><strong>What the business data shows.</strong> The BBC lost 10% of additional users for every extra second of load time; Pinterest turned a 40% load-time improvement into 15% more SEO traffic and 15% more conversions; the Financial Times saw engagement rise 30%.</li>\n<li><strong>Three rules of waiting.</strong> Unoccupied time feels longer than occupied time, anxiety stretches a wait, and an unknown wait feels longest of all.</li>\n<li><strong>Miller's thresholds.</strong> Feedback inside 100ms, updates every second, actions completed within three seconds — published in 1968, and still the budget.</li>\n<li><strong>Targets worth holding.</strong> Cumulative Layout Shift at 0, First Input Delay between 50 and 100ms, First Contentful Paint at one second, Largest Contentful Paint at three, Time to Interactive at three and a half.</li>\n<li><strong>Designing the wait.</strong> Occupy it by showing something early and prioritising content; reduce anxiety with visual stability, optimistic UI and feedback; remove uncertainty by anchoring the user, showing progress and explaining the delay.</li>\n<li><strong>Measuring perception.</strong> RUM over synthetic, custom User Timing marks for the moments that matter to you, and full capture rather than a sample.</li>\n</ul>\n",
      "date_published": "2020-10-15T00:00:00Z",
      "date_modified": "2020-10-15T00:00:00Z",
      "_markdown": { "url": "https://simonhearne.com/2020/psychology-of-speed/index.md" },
      "_talk": {
        "slides_url": "https://simonhearne.com/presentations/psych-speed/#/",
        "video_url": "https://www.youtube.com/watch?v=7i_yQyHdxUo"
      }
    },{
      "id": "https://simonhearne.com/2019/third-party-deep/",
      "url": "https://simonhearne.com/2019/third-party-deep/",
      "title": "Deep dive into third-party performance",
      "summary": "A deep-dive into the impact of third-party tags on web performance.",
      "image": "https://simonhearne.com/images/social_third-party-deep.jpg",
      "tags": ["WebPerf","video","talk"],
      "authors": [{ "name": "Simon Hearne", "url": "https://simonhearne.com/about/" }],"content_html": "<p>Every third-party tag is someone else's code, running on your users' devices, with your name on it. This talk is seven times that went wrong.</p>\n<h2 id=\"about-the-talk\" tabindex=\"-1\">About the talk<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2019/third-party-deep/#about-the-talk\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>By late 2019 the median website was 37% third-party requests by count (HTTP Archive, October 2019). Analytics, advertising, optimisation, JavaScript CDNs and tag managers all arrive with a business case, and all of them execute with the same privileges as the code you wrote yourself.</p>\n<p>This talk works through seven real incidents — outages, revenue losses, and one case of a &quot;performance&quot; tool making things measurably slower — and pulls a defence out of each.</p>\n<h2 id=\"what-s-covered\" tabindex=\"-1\">What's covered<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2019/third-party-deep/#what-s-covered\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<ul>\n<li><strong>A thirty-second wait.</strong> A social sharing script blocked <code>document.ready</code> and took critical application logic down with it during a China launch. Sync is still king, so feature-flag it and defer it.</li>\n<li><strong>A 30% conversion drop.</strong> A silent third-party update broke a checkout button. Subresource Integrity prevents unannounced changes, and was live on just 5.15% of pages.</li>\n<li><strong>The tool that cost a second.</strong> An unload-event listener added roughly a second of latency. Synthetic tests never saw it; RUM did.</li>\n<li><strong>A 26% revenue swing.</strong> A review provider degraded Android badly enough that removing it lifted Android revenue by 26%. Adaptive tag loading is the middle path.</li>\n<li><strong>Malicious ads and crypto miners.</strong> Content Security Policy (6.11% adoption) and <code>connect-src</code> restrictions, plus CPU metrics to catch what network metrics miss.</li>\n<li><strong>A/B testing tools.</strong> Render-blocking by design, with a 500ms default SLA. Proxy through your CDN, self-host, or move it to the edge.</li>\n<li><strong>A loading order.</strong> Immediate for experimentation and tag management, fast for session and performance tracking, late for ads, reviews and live chat.</li>\n</ul>\n<p>As Tim Kadlec puts it in the deck: &quot;Everything should have a value because everything has a cost.&quot;</p>\n",
      "date_published": "2019-11-22T00:00:00Z",
      "date_modified": "2019-11-22T00:00:00Z",
      "_markdown": { "url": "https://simonhearne.com/2019/third-party-deep/index.md" },
      "_talk": {
        "slides_url": "https://simonhearne.com/presentations/third-party-deep/#/",
        "video_url": "https://www.youtube.com/watch?v=uXv9JFvrnwo"
      }
    },{
      "id": "https://simonhearne.com/2018/third-party-weak-links/",
      "url": "https://simonhearne.com/2018/third-party-weak-links/",
      "title": "Third-Party Content - the weak link?",
      "summary": "The Resource Timing API allows site owners to measure how third-parties perform for every single pageview. Combining this data with business intelligence provides new insight to the impact of third-party providers on business performance.",
      "image": "https://simonhearne.com/images/weak-links-social.jpg",
      "tags": ["WebPerf","video","talk"],
      "authors": [{ "name": "Simon Hearne", "url": "https://simonhearne.com/about/" }],"content_html": "<p>The Resource Timing API allows site owners to measure how third-parties perform for every single pageview. Combining this data with business intelligence provides new insight to the impact of third-party providers on business performance.</p><p><a href=\"https://docs.google.com/presentation/d/1pUo2SrWPvJ5vwYIbpebqFqnhAwGZ2pVryKP2kzqA_Uw/edit?usp=sharing\">Slides</a></p><p><a href=\"https://www.youtube.com/watch?v=9ol9MNGqVOM\">Watch the talk</a></p>",
      "date_published": "2018-01-14T00:00:00Z",
      "date_modified": "2018-01-14T00:00:00Z",
      "_markdown": { "url": "https://simonhearne.com/2018/third-party-weak-links/index.md" },
      "_talk": {
        "slides_url": "https://docs.google.com/presentation/d/1pUo2SrWPvJ5vwYIbpebqFqnhAwGZ2pVryKP2kzqA_Uw/edit?usp=sharing",
        "video_url": "https://www.youtube.com/watch?v=9ol9MNGqVOM"
      }
    },{
      "id": "https://simonhearne.com/2016/too-hot-to-handle/",
      "url": "https://simonhearne.com/2016/too-hot-to-handle/",
      "title": "Too hot to handle - optimizing for low powered devices",
      "summary": "We know what web performance is—getting pages to render fast for as many customers as possible. Traditionally, the focus has been on the network, improving the time to deliver critical content, but the combination of modern web applications, better network connectivity, and HTTP/2 is reducing the…",
      "image": "https://simonhearne.com/images/too_hot.jpg",
      "tags": ["WebPerf","video","talk"],
      "authors": [{ "name": "Simon Hearne", "url": "https://simonhearne.com/about/" }],"content_html": "<p>The phone in a developer's pocket is not the phone in a user's pocket. Everything in this talk follows from that gap.</p>\n<h2 id=\"about-the-talk\" tabindex=\"-1\">About the talk<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2016/too-hot-to-handle/#about-the-talk\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Responsive design solved layout. It did not solve the fact that a mid-range Android handset has a fraction of the CPU budget of the flagship it was designed on, and that CPU, rather than bandwidth, is what most modern pages are actually constrained by.</p>\n<p>This talk is about that constraint: how wide real device diversity runs, why the conveniences that make development pleasant make execution expensive, and what to do when a large share of your users are on hardware you have never held.</p>\n<h2 id=\"what-s-covered\" tabindex=\"-1\">What's covered<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2016/too-hot-to-handle/#what-s-covered\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<ul>\n<li><strong>How wide the gap is.</strong> Android held 53% of the US market against the iPhone's 43%, and 19% of US adults were smartphone-dependent — their phone was their only route online.</li>\n<li><strong>What it costs.</strong> 53% of mobile visits were abandoned past three seconds (DoubleClick, September 2016). Mobile accounted for 16.9% of digital revenue that year.</li>\n<li><strong>The framework tax.</strong> Sites built with SPA frameworks measured 43% slower by Speed Index, and took 500ms longer to start rendering on mobile.</li>\n<li><strong>The users you cannot see.</strong> Roughly 15% of a 5,400-person survey were browsing without working JavaScript.</li>\n<li><strong>Six rules.</strong> Responsive design is not enough; question the framework; test on low-end hardware; measure CPU, not just network; build a device lab; split the codebase when you must.</li>\n<li><strong>What actually helps.</strong> Pre-rendering single-page apps, progressive enhancement around a core experience, and testing with JavaScript disabled in WebPageTest.</li>\n</ul>\n<p>Presented at Velocity New York 2016.</p>\n",
      "date_published": "2016-10-14T00:00:00Z",
      "date_modified": "2016-10-14T00:00:00Z",
      "_markdown": { "url": "https://simonhearne.com/2016/too-hot-to-handle/index.md" },
      "_talk": {
        "slides_url": "https://speakerdeck.com/simonhearne/too-hot-to-handle-optimizing-for-low-powered-devices",
        "video_url": "https://www.youtube.com/watch?v=__KEbUEFHpE"
      }
    },{
      "id": "https://simonhearne.com/2016/meaningful-visualisations/",
      "url": "https://simonhearne.com/2016/meaningful-visualisations/",
      "title": "Beyond the Waterfall - Meaningful Web Performance Visualizations",
      "summary": "With all the different measurements we can take of web performance, the data we can report on becomes huge. Waterfall charts just don’t cut it any more – they are a technical tool to diagnose technical issues. What we need now are business-focused visualizations that quickly represent the impact of…",
      "image": "https://simonhearne.com/images/velocity_btw.jpg",
      "tags": ["WebPerf","video","talk"],
      "authors": [{ "name": "Simon Hearne", "url": "https://simonhearne.com/about/" }],"content_html": "<p>A waterfall chart is a tool for people who already know what they are looking at. This talk is about everyone else.</p>\n<h2 id=\"about-the-talk\" tabindex=\"-1\">About the talk<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2016/meaningful-visualisations/#about-the-talk\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Waterfall charts are diagnostic instruments. They reward expertise, and they assume the reader already knows what a request is, why blocking matters and what a long green bar means. That makes them excellent for engineers and close to useless for the people who decide whether performance work gets funded.</p>\n<p>This talk argues for visualisations built for that second audience: images that carry their meaning at a glance, because we read pattern and shape faster than we read text. It walks through the visual vocabulary available, then applies it to real performance data.</p>\n<h2 id=\"what-s-covered\" tabindex=\"-1\">What's covered<a class=\"heading-anchor no-outline\" href=\"https://simonhearne.com/2016/meaningful-visualisations/#what-s-covered\"><span class=\"visually-hidden\">Permalink to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<ul>\n<li><strong>Infographics versus visualisations.</strong> The hand-made and the computer-generated, and why the distinction matters once your data changes daily.</li>\n<li><strong>The visual vocabulary.</strong> Size for importance, position for relationship, colour for category, plus shape and animation — the raw materials of any chart worth putting in front of a stakeholder.</li>\n<li><strong>Six ways to show a site's performance.</strong> Waterfalls, filmstrips, heatmaps, request maps, dashboards and the RUM wall, and which audience each one actually serves.</li>\n<li><strong>A worked third-party problem.</strong> Using word clouds and request maps to make the third-party load at a large UK publisher legible to people who don't read waterfalls.</li>\n<li><strong>The tools.</strong> WebPageTest, the heatmap, request map and RUM wall tools on <code>webperf.tools</code>, and Graphite for trends.</li>\n</ul>\n<p>Further reading suggested in the deck: <em>Information Is Beautiful</em> by David McCandless, and <em>Storytelling with Data</em> by Cole Nussbaumer Knaflic.</p>\n",
      "date_published": "2016-10-14T00:00:00Z",
      "date_modified": "2016-10-14T00:00:00Z",
      "_markdown": { "url": "https://simonhearne.com/2016/meaningful-visualisations/index.md" },
      "_talk": {
        "slides_url": "https://noti.st/simonhearne/tODEWH/beyond-the-waterfall-meaningful-web-performance-visualisations",
        "video_url": "https://www.youtube.com/watch?v=l1RpGiP3FpM"
      }
    },{
      "id": "https://simonhearne.com/2016/how-fast-is-fast-enough/",
      "url": "https://simonhearne.com/2016/how-fast-is-fast-enough/",
      "title": "How fast is fast enough?",
      "summary": "Webinar with Andy Davies on measuring site speed and using RUM data to work out when performance starts to change customer behaviour.",
      "image": "https://simonhearne.com/images/hero_fastenough2.jpg",
      "tags": ["WebPerf","talk"],
      "authors": [{ "name": "Simon Hearne", "url": "https://simonhearne.com/about/" }],"content_html": "<p>Do you know when your website's speed starts to impact your customers' behaviour?</p>\n<p>The speed of your site affects how your visitors behave: how many pages they view, how much they spend or even whether they convert.</p>\n<p>Join me and one of the world's leading web performance experts, Andy Davies, as we discuss what you should consider when measuring your site's speed and how to determine when speed is a problem.</p>\n<p>You'll leave this webinar with a good understanding of why speed matters, what good performance looks like and how it impacts your business.</p>\n<p>We're really lucky to have some concrete RUM data and experience to work out what's important. The webinar has been and gone, but you can see the slides below.</p>\n<br />\n<script async=\"\" class=\"speakerdeck-embed\" data-id=\"ebcabd2299de462dbd6dbc47c6b8c7a3\" data-ratio=\"1.77777777777778\" src=\"https://speakerdeck.com/assets/embed.js\"></script>\n",
      "date_published": "2016-06-29T21:53:00Z",
      "date_modified": "2016-06-29T21:53:00Z",
      "_markdown": { "url": "https://simonhearne.com/2016/how-fast-is-fast-enough/index.md" },
      "_talk": {
        "slides_url": "https://speakerdeck.com/simonhearne/webinar-how-fast-is-fast-enough",
        "video_url": null
      }
    }
  ]
}
