<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Presentation on Nicole van der Hoeven</title><link>https://nicolevanderhoeven.com/tags/presentation/</link><description>Recent content in Presentation on Nicole van der Hoeven</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>Nicole van der Hoeven</copyright><lastBuildDate>Wed, 07 Oct 2026 10:00:00 +0200</lastBuildDate><atom:link href="https://nicolevanderhoeven.com/tags/presentation/index.xml" rel="self" type="application/rss+xml"/><item><title>Asimov's Zeroth Law of Robotics: Testing for AI (HUSTEF 2026)</title><link>https://nicolevanderhoeven.com/blog/20261007-asimovs-zeroth-law-testing-for-ai-hustef/</link><pubDate>Wed, 07 Oct 2026 10:00:00 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20261007-asimovs-zeroth-law-testing-for-ai-hustef/</guid><description>&lt;p&gt;This week I gave a keynote at &lt;a href="https://hustef.com/nicole_van_der_hoeven_2026/"&gt;HUSTEF 2026&lt;/a&gt; in Budapest, Hungary. The talk is called &lt;em&gt;Asimov&amp;rsquo;s Zeroth Law of Robotics: Testing for AI&lt;/em&gt; — a testing-focused evolution of a talk I&amp;rsquo;ve been giving (and rewriting) for a while, previously as &lt;em&gt;Observability for AI&lt;/em&gt; at &lt;a href="https://nicolevanderhoeven.com/blog/20250402-asimovs-zeroth-law-of-robotics/"&gt;KubeCon EU 2025&lt;/a&gt; in London, &lt;a href="https://nicolevanderhoeven.com/blog/20250703-asimovs-zeroth-law-dutch-cloud-native-day/"&gt;Dutch Cloud Native Day 2025&lt;/a&gt; in Utrecht, &lt;a href="https://nicolevanderhoeven.com/blog/20251106-asimovs-zeroth-law-newcrafts/"&gt;NewCrafts&lt;/a&gt; in Paris, and &lt;a href="https://nicolevanderhoeven.com/blog/20260526-asimovs-zeroth-law-expoqa-madrid/"&gt;ExpoQA Madrid 2026&lt;/a&gt;. Here&amp;rsquo;s the abstract:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A robot may not harm humans. A robot must obey humans. A robot must protect its own existence. These are Isaac Asimov&amp;rsquo;s three Laws of Robotics, created to govern the ethical programming of artificial intelligences. From the Butlerian Jihad to Skynet to cylons, we&amp;rsquo;ve been immortalizing our collective nightmares about artificial intelligence for years. But there&amp;rsquo;s an unmentioned law that comes as a prerequisite to all of that: &lt;strong&gt;a robot must be testable.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;AI systems fail differently than traditional software. There&amp;rsquo;s no single correct output to assert against. A response can be fluent and completely wrong. Models drift silently over time. And yet we&amp;rsquo;re shipping AI into production — often without knowing what &amp;ldquo;passing&amp;rdquo; even looks like.&lt;/p&gt;
&lt;p&gt;Observability is what makes testing possible. When we can see inside our AI systems — trace the chain of reasoning, measure what changed, surface what failed — we can start to write evaluations, define what &amp;ldquo;good&amp;rdquo; looks like, and catch regressions we didn&amp;rsquo;t know to look for.&lt;/p&gt;
&lt;p&gt;In this talk, I explore what it means to test AI in the real world, drawing on lessons from building and evaluating an AI assistant for a large-scale observability platform. I&amp;rsquo;ll cover how evaluations work as the AI equivalent of a test suite, what to measure, how to catch hallucinations, and how to know when your model has regressed.&lt;/p&gt;
&lt;p&gt;You cannot test what you cannot see — and you cannot trust what you cannot test.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/20261007-hustef-01.jpg" alt="Wide shot of me presenting the keynote at HUSTEF 2026, with the title slide reading “The Zeroth Law of Robotics: A robot must be testable” on the big screen above a full audience." loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The big shift in this version is right there in the Zeroth Law itself. In earlier iterations I argued that &lt;em&gt;a robot must be observable&lt;/em&gt;. That&amp;rsquo;s still true — observability is the only way to see the reasoning behind a system and find out what actually happened. But I&amp;rsquo;ve come to think that pure knowledge isn&amp;rsquo;t the same as trust. You can know exactly what a system did and still not trust it. The only way to trust something is to put it through its paces: to know how it behaves in the situations you foresee, and even the ones you don&amp;rsquo;t. So the Zeroth Law has become &lt;strong&gt;a robot must be &lt;em&gt;testable&lt;/em&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I framed the whole thing around Asimov&amp;rsquo;s short story &lt;em&gt;Runaround&lt;/em&gt; (from &lt;em&gt;I, Robot&lt;/em&gt;) and its robot, Speedy. Speedy&amp;rsquo;s smuggler owners sent him to collect selenium on Mercury, and he got stuck in a loop — circling the selenium pool, unable to resolve the conflict between obedience (the second law) and self-preservation (the third). His owners couldn&amp;rsquo;t predict his behaviour and couldn&amp;rsquo;t reason about it, so they had to do the only thing left: go out into the danger zone and fix him in production. Speedy wasn&amp;rsquo;t untestable because his owners were incompetent or lacked the tools — he was untestable because he was never &lt;em&gt;built&lt;/em&gt; to be tested. That&amp;rsquo;s the trap I think a lot of AI systems are walking into right now.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/20261007-hustef-02.jpg" alt="Me looking up at a slide of an armoured robot running across the surface of Mars while I present." loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The through-line for a testing audience: AI is rewriting &lt;em&gt;how&lt;/em&gt; software gets built, but it doesn&amp;rsquo;t rewrite the discipline of trust. Trust that a system does what we say it does, and that when it breaks we know why and can fix it — that&amp;rsquo;s always been the job, and it isn&amp;rsquo;t going anywhere. There&amp;rsquo;s a whole generation of AI engineers shipping software they haven&amp;rsquo;t tested and can&amp;rsquo;t explain, and when someone says &amp;ldquo;the agent does this,&amp;rdquo; our job is still to ask &lt;em&gt;how do you know?&lt;/em&gt; Testing isn&amp;rsquo;t just going to survive the age of AI — testing is the reason AI gets to survive, if we make it testable.&lt;/p&gt;
&lt;p&gt;I demoed this with my TTRPG side project: an AI Dungeon Master, instrumented and put under test. It turns out that writing evals for something non-deterministic forces you to confront your real requirements. I thought I knew exactly when a dungeon master should call for a dice roll — I GM myself! — but trying to put it into words (&amp;ldquo;in &lt;em&gt;this&lt;/em&gt; situation I&amp;rsquo;d roll, but in &lt;em&gt;that&lt;/em&gt; one I wouldn&amp;rsquo;t, because I want to keep the story moving&amp;rdquo;) surfaced decisions I&amp;rsquo;d never had to make explicit. Those are things we&amp;rsquo;d normally discover much later, in production. Having to figure them out up front is a win.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/20261007-hustef-03.jpg" alt="Me grinning during the talk, holding a microphone and presenter clicker." loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The Q&amp;amp;A was genuinely great and ranged well beyond the slides:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&amp;ldquo;When has an AI been tested &lt;em&gt;enough&lt;/em&gt;?&amp;rdquo;&lt;/strong&gt; Same answer as for anything else — it&amp;rsquo;s a mix of risk and budget. If it were a life-critical robot like Speedy, you test every scenario the people relying on it need. For my little demo app, less so.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Testers vs. developers in the age of AI.&lt;/strong&gt; I said I&amp;rsquo;d fire developers before testers — provocatively, but the point stands: anyone can write code now. What made a good developer good was never the coding; it was communicating with business &lt;em&gt;and&lt;/em&gt; engineers, translating requirements, finding creative-but-safe solutions. Testers already think at that level and translate across teams, which makes them &lt;em&gt;more&lt;/em&gt; important in the age of AI, not less.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Defining expected results for non-deterministic systems&lt;/strong&gt;, multi-turn evals (I give the simulated user a &lt;em&gt;personality&lt;/em&gt; — adversarial, cooperative, beginner — rather than a script), and the broader shift from imperative to declarative: we no longer instruct step by step, we declare the end state we want, the way we do with Kubernetes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Convincing colleagues not to fear AI.&lt;/strong&gt; I don&amp;rsquo;t, really. AI is here to stay; the question isn&amp;rsquo;t whether you approve of it, it&amp;rsquo;s whether you want to stay in this industry and help make it safe and trustworthy — or sit on the sidelines.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I also recommended the book &lt;a href="https://link.amazon/B0e4SIur8"&gt;&lt;em&gt;Slow AI&lt;/em&gt;&lt;/a&gt;, which lands where I do: not an AI apologist, not a boycott, but a clear-eyed list of what AI is and isn&amp;rsquo;t good for — and the reminder to keep checking whether a given use of AI is making you &lt;em&gt;more&lt;/em&gt; capable or less.&lt;/p&gt;
&lt;p&gt;The demo app (the instrumented AI DM) lives on &lt;a href="https://nicole.to/asimov"&gt;GitHub&lt;/a&gt;, and I keep refining it with each iteration of this talk.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll update this post with the recording once HUSTEF publishes it.&lt;/p&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://nicole.to/hustef"&gt;Slides&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nicole.to/asimov"&gt;Demo app on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://link.amazon/B0e4SIur8"&gt;&lt;em&gt;Slow AI&lt;/em&gt; (book)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Previous versions of this talk: &lt;a href="https://nicolevanderhoeven.com/blog/20250402-asimovs-zeroth-law-of-robotics/"&gt;KubeCon EU 2025&lt;/a&gt; · &lt;a href="https://nicolevanderhoeven.com/blog/20250703-asimovs-zeroth-law-dutch-cloud-native-day/"&gt;Dutch Cloud Native Day 2025&lt;/a&gt; · &lt;a href="https://nicolevanderhoeven.com/blog/20251106-asimovs-zeroth-law-newcrafts/"&gt;NewCrafts 2025&lt;/a&gt; · &lt;a href="https://nicolevanderhoeven.com/blog/20260526-asimovs-zeroth-law-expoqa-madrid/"&gt;ExpoQA Madrid 2026&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>The Great Doubt: What Building an AI Agent Taught Us About Trust (KubeCon Japan 2026)</title><link>https://nicolevanderhoeven.com/blog/20260730-the-great-doubt-kubecon-japan/</link><pubDate>Thu, 30 Jul 2026 09:00:00 +0900</pubDate><guid>https://nicolevanderhoeven.com/blog/20260730-the-great-doubt-kubecon-japan/</guid><description>&lt;p&gt;This week I spoke at &lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-japan/"&gt;KubeCon + CloudNativeCon Japan 2026&lt;/a&gt; in Yokohama, Japan. I gave a talk called &lt;em&gt;The Great Doubt: What Building an AI Agent Taught Us About Trust&lt;/em&gt;. Here&amp;rsquo;s the abstract:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When we started building an AI assistant for observability, we thought the hard part would be making it smart. We were wrong. The hard part was knowing when to trust it.&lt;/p&gt;
&lt;p&gt;AI agents hallucinate, forget context, and confidently give wrong answers. Traditional testing doesn&amp;rsquo;t catch these failures. What&amp;rsquo;s needed is evaluation grounded in systematic doubt.&lt;/p&gt;
&lt;p&gt;This talk shares lessons from shipping an AI agent to production: how to build a golden dataset of use cases you must get right, how to use LLM-as-judge when there&amp;rsquo;s no ground truth, and how to use OpenTelemetry traces to debug eval failures. You&amp;rsquo;ll also hear what&amp;rsquo;s still unsolved: evaluating multi-agent handoffs and closing the feedback loop between what users ask and what your evals cover.&lt;/p&gt;
&lt;p&gt;Kyoto School philosopher Nishitani Keiji called this &amp;ldquo;The Great Doubt&amp;rdquo; (大疑): questioning every assumption until only what survives is real. For AI agents, that&amp;rsquo;s not philosophy. It&amp;rsquo;s the job.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The talk walks through the layers of doubt we worked through while building &lt;a href="https://notes.nicolevanderhoeven.com/Grafana+Assistant"&gt;Grafana Assistant&lt;/a&gt;: doubting the agent itself, then doubting our tests, then the LLM-as-judge, then our own scores — and finally doubting whether the doubt was even justified. Each layer needed a different tool, from a golden dataset run in a fully synthetic observability environment, through online evals on live traffic, to per-conversation OpenTelemetry traces that link every eval score back to the exact LLM and tool calls that produced it.&lt;/p&gt;
&lt;p&gt;You can find the slides at &lt;a href="https://nicole.to/doubtslides"&gt;nicole.to/doubtslides&lt;/a&gt;, and you can watch the full talk below:&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/uW9Hlp3fT14?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;p&gt;Grafana Assistant (generally available for Grafana OSS, Grafana Cloud, and Grafana Play):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://grafana.com/docs/grafana-cloud/machine-learning/assistant/"&gt;Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://play.grafana.org"&gt;Try it out on Grafana Play&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Assistant Investigations (Grafana Cloud):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gra.fan/investigations"&gt;Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Agent Observability (Grafana Cloud):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gra.fan/agento11y"&gt;Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;o11y-bench (OSS):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gra.fan/o11ybench"&gt;Site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Investigations Arena:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://youtu.be/YPfqchw8LCo"&gt;Video&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="related-reading"&gt;Related reading&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;My notes on &lt;a href="https://notes.nicolevanderhoeven.com/Grafana+Assistant"&gt;Grafana Assistant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;My Context Horizon piece &lt;a href="https://contexthorizon.substack.com/p/unlearnings-from-building-grafana"&gt;&lt;em&gt;Unlearnings from building Grafana Assistant&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/4vZNlPD"&gt;&lt;em&gt;The Way of Zen&lt;/em&gt;&lt;/a&gt; by Alan W. Watts&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/3RgXGIP"&gt;&lt;em&gt;Zen Mind, Beginner&amp;rsquo;s Mind&lt;/em&gt;&lt;/a&gt; by Shunryu Suzuki&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/4vQW2eQ"&gt;&lt;em&gt;Religion and Nothingness, Volume 1&lt;/em&gt;&lt;/a&gt; by Nishitani Keiji&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/4yFff6d"&gt;&lt;em&gt;Philosophers of Nothingness: An Essay on the Kyoto School&lt;/em&gt;&lt;/a&gt; by James W. Heisig&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Asimov's Zeroth Law of Robotics: Observability for AI (ExpoQA Madrid 2026)</title><link>https://nicolevanderhoeven.com/blog/20260526-asimovs-zeroth-law-expoqa-madrid/</link><pubDate>Tue, 26 May 2026 10:00:00 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20260526-asimovs-zeroth-law-expoqa-madrid/</guid><description>&lt;p&gt;This week I gave the opening keynote at &lt;a href="https://expoqa.eu/events/cd1-t1-kn2/"&gt;ExpoQA Madrid 2026&lt;/a&gt; in Madrid, Spain. I presented a talk called &lt;em&gt;Asimov&amp;rsquo;s Zeroth Law of Robotics: Observability for AI&lt;/em&gt;, which I had previously given at &lt;a href="https://nicolevanderhoeven.com/blog/20250402-asimovs-zeroth-law-of-robotics/"&gt;KubeCon EU 2025&lt;/a&gt; in London, at &lt;a href="https://nicolevanderhoeven.com/blog/20250703-asimovs-zeroth-law-dutch-cloud-native-day/"&gt;Dutch Cloud Native Day 2025&lt;/a&gt; in Utrecht, and at &lt;a href="https://nicolevanderhoeven.com/blog/20251106-asimovs-zeroth-law-newcrafts/"&gt;Newcrafts&lt;/a&gt; in Paris. Here&amp;rsquo;s the abstract:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A robot may not harm humans. A robot must obey humans. A robot must protect its own existence. These are Isaac Asimov&amp;rsquo;s three Laws of Robotics, created to govern the ethical programming of artificial intelligences. From the Butlerian Jihad to Skynet to cylons, we&amp;rsquo;ve been immortalizing our collective nightmares about artificial intelligence for years. But there&amp;rsquo;s an unmentioned law that comes as a prerequisite to all of that: a robot must be observable.&lt;/p&gt;
&lt;p&gt;In this talk, I discuss the different types of AI, the factors that make observing AI different from observing applications, and the telemetry signals specific to AI that we might want to listen to. How do we deal with large data sets? How do we observe for model drift? How do we take into account the costs of LLMs? How can we use distributed tracing to follow event sequences? Part cautionary tale and part technical demo, this talk shows how to instrument and monitor AI apps using OpenTelemetry, Prometheus, OpenLit, and more.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This was a keynote slot at a testing-focused audience, which gave me the chance to lean more into the &lt;em&gt;evals vs. observability&lt;/em&gt; framing — what evals can and can&amp;rsquo;t tell you about an AI system in production, and how distributed tracing fills the gap that benchmarks leave behind. The demo app (a Flask-based &amp;ldquo;play.py&amp;rdquo; instrumented with OpenTelemetry, flowing into Tempo for traces, Prometheus for metrics, and Loki for logs) is still on &lt;a href="https://nicole.to/asimov"&gt;GitHub&lt;/a&gt;, and I&amp;rsquo;ve been refining it with each iteration.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the recording of the talk:&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/06Uus-llIBg?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://nicole.to/asimov"&gt;Demo app on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Asimov's Zeroth Law of Robotics: Observability for AI (Newcrafts 2025)</title><link>https://nicolevanderhoeven.com/blog/20251106-asimovs-zeroth-law-newcrafts/</link><pubDate>Thu, 06 Nov 2025 12:23:19 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20251106-asimovs-zeroth-law-newcrafts/</guid><description>&lt;p&gt;Today I presented at &lt;a href="https://ncrafts.io/"&gt;Newcrafts&lt;/a&gt; in Paris, France. I gave a talk I&amp;rsquo;ve given before, called &lt;em&gt;Asimov&amp;rsquo;s Zeroth Law of Robotics: Observability for AI&lt;/em&gt;, which I had previously presented at &lt;a href="https://nicolevanderhoeven.com/blog/20250402-asimovs-zeroth-law-of-robotics/"&gt;KubeCon EU&lt;/a&gt; in London and at &lt;a href="https://nicolevanderhoeven.com/blog/20250703-asimovs-zeroth-law-dutch-cloud-native-day/"&gt;Dutch Cloud Native Day 2025&lt;/a&gt; in Utrecht. I was happy to present it again, as it gave me the chance to further refine my demo application, which you can find on &lt;a href="https://nicole.to/asimov"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The main change I made was to use the &amp;ldquo;AI as judge&amp;rdquo; approach that I had previously only talked about in theory. In this version of the demo app, I use AI in both the game as well as in the testing of the game, showing how AI can be integrated into both the application and its observability/testing stack. It was really interesting to note that testing with AI ended up exposing more defects than my hardcoded test cases did, which goes to show the potential of AI-driven testing.&lt;/p&gt;</description></item><item><title>The Spice Must Flow: The Fremen Guide to Sustainable Observability (Øredev 2025)</title><link>https://nicolevanderhoeven.com/blog/20251105-the-spice-must-flow/</link><pubDate>Wed, 05 Nov 2025 03:07:38 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20251105-the-spice-must-flow/</guid><description>&lt;p&gt;Today I gave a talk at &lt;a href="https://oredev.org/"&gt;Øredev 2025&lt;/a&gt; in Malmö, Sweden, titled +The Spice Must Flow: The Fremen Guide to Sustainable Observability&amp;quot;_. The presentation focused on how to implement sustainable observability practices using open-source tools like Grafana, Prometheus, Loki, Tempo, KEDA, and Kepler. Here&amp;rsquo;s the abstract:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Nobody wants to be wasteful. But how do you balance that with the need for enough data to fix things when they go wrong? After all, no matter how much it costs, there are SLOs to keep. The spice&amp;ndash; the telemetry&amp;ndash; must flow.&lt;/p&gt;
&lt;p&gt;The Fremen are a people who live on the planet Arrakis, simultaneously rich in spice while poor in water. But the Fremen have managed to thrive, not just survive, on very little while continuing to produce spice. What would it take to apply this &amp;ldquo;desert planet thinking&amp;rdquo; to observability?&lt;/p&gt;
&lt;p&gt;In this talk, you&amp;rsquo;ll learn about the hidden environmental and financial costs of your observability stack and how to reduce them. You&amp;rsquo;ll learn about the complications of measuring cost for ephemeral resources on Kubernetes, how to use KEDA to &amp;ldquo;right-size&amp;rdquo; resources when you don&amp;rsquo;t know what the right size is, and how to convince your teams to drop all but the most meaningful telemetry data. In the end, the spice must flow, but there must still be enough water to sustain all.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Here are some resources mentioned in the talk:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You can play the game Spice Runner &lt;a href="https://nicole.to/spicegame"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nicole.to/spicerepo"&gt;The spice-runner repo&lt;/a&gt; containing everything you need to know about how to deploy it yourself&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nicole.to/spiceslides"&gt;The slides&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nicole.to/spicedashboard"&gt;The Spice Runner dashboard&lt;/a&gt; for observing the application&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nicolevanderhoeven.com/projects/spice-runner/"&gt;More about Spice Runner&lt;/a&gt;: architecture, tech stack, and what it demonstrates&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/2025-11-05-oredev.JPG" alt="Photo of me at Øredev 2025" loading="lazy" decoding="async"&gt;
&lt;/p&gt;</description></item><item><title>One Year Later: How I Use Visuals in My PKM (Sketch Your Mind Conference)</title><link>https://nicolevanderhoeven.com/blog/20251013-how-i-use-visuals-in-my-pkm/</link><pubDate>Mon, 13 Oct 2025 13:33:18 -0700</pubDate><guid>https://nicolevanderhoeven.com/blog/20251013-how-i-use-visuals-in-my-pkm/</guid><description>&lt;p&gt;Today I gave &lt;a href="https://sketch-your-mind.com/2025/sessions/nicole/"&gt;a talk&lt;/a&gt; at my friend Zsolt Viczián&amp;rsquo;s &lt;a href="https://sketchyourmind.com/"&gt;Sketch Your Mind Conference&lt;/a&gt; about how I use visuals in my PKM, a follow-up to my video about Obsidian Excalidraw last year where I shared that I&amp;rsquo;d changed all my Obsidian templates to hybrid Obsidian Excalidraw notes:&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/zmgqMZi6QL8?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;In the talk, I shared how I&amp;rsquo;ve evolved my use of visuals in my PKM over the last year, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Referring to icon and logo libraries that dynamically compile all the atomic visuals I use in my notes&lt;/li&gt;
&lt;li&gt;Adopting a visual Zettelkasten-like approach&lt;/li&gt;
&lt;li&gt;Creating notes at conferences to track people I&amp;rsquo;ve met and talks I&amp;rsquo;ve attended&lt;/li&gt;
&lt;li&gt;Using Obsidian Excalidraw to create compelling presentations in lieu of slides&lt;/li&gt;
&lt;li&gt;Combining visuals with audio recordings to create literature notes of books I&amp;rsquo;m reading&lt;/li&gt;
&lt;li&gt;Using a full observability pipeline to monitor and analyze the notes in my Obsidian vault&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I was particularly excited about the last point. I work at Grafana Labs and help people monitor their computer systems using opensource software. I realized that I could use the same tools to monitor my PKM system, so I set up a pipeline where a Python script scrapes note metadata, and sends information to Loki and Prometheus via Alloy, and then I visualize it all in Grafana. It&amp;rsquo;s a pretty nerdy and totally unnecessary setup, but &lt;a href="https://github.com/nicolevanderhoeven/obsidian-grafana"&gt;here&amp;rsquo;s the repo&lt;/a&gt; for anyone interested in replicating it.&lt;/p&gt;</description></item><item><title>Asimov's Zeroth Law of Robotics (Dutch Cloud Native Day 2025)</title><link>https://nicolevanderhoeven.com/blog/20250703-asimovs-zeroth-law-dutch-cloud-native-day/</link><pubDate>Thu, 03 Jul 2025 15:01:24 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20250703-asimovs-zeroth-law-dutch-cloud-native-day/</guid><description>&lt;p&gt;Today I presented at the &lt;a href="https://www.dutchcloudnativeday.nl"&gt;Dutch Cloud Native Day 2025&lt;/a&gt; in Utrecht, the Netherlands. I gave a talk titled &lt;em&gt;Asimov&amp;rsquo;s Zeroth Law of Robotics: Observability for AI&lt;/em&gt;, which I had previously presented at &lt;a href="https://nicolevanderhoeven.com/blog/20250402-asimovs-zeroth-law-of-robotics/"&gt;KubeCon EU&lt;/a&gt; earlier on in the year, in London. I was very happy to be able to present it again, because it gave me the opportunity to improve the demo app I used, which you can find on &lt;a href="https://nicole.to/asimov"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/2025-07-03-dcnd_01.jpg" alt="Me speaking at Dutch Cloud Native Day 2025" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/2025-07-03-dcnd_02.jpg" alt="Me speaking at Dutch Cloud Native Day 2025" loading="lazy" decoding="async"&gt;
&lt;/p&gt;</description></item><item><title>Asimov's Zeroth Law of Robotics: Observability for AI (KubeCon EU 2025)</title><link>https://nicolevanderhoeven.com/blog/20250402-asimovs-zeroth-law-of-robotics/</link><pubDate>Wed, 02 Apr 2025 13:46:42 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20250402-asimovs-zeroth-law-of-robotics/</guid><description>&lt;p&gt;Today I gave a talk at &lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/"&gt;KubeCon EU 2025 in London&lt;/a&gt; called &amp;ldquo;Asmiov&amp;rsquo;s Zeroth Law of Robotics: Observability for AI&amp;rdquo;. Here&amp;rsquo;s the abstract:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A robot may not harm humans. A robot must obey humans. A robot must protect its own existence. These are Isaac Asimov&amp;rsquo;s three Laws of Robotics, created to govern the ethical programming of artificial intelligences. From the Butlerian Jihad to Skynet to cylons, we&amp;rsquo;ve been immortalizing our collective nightmares about artificial intelligence for years. But there&amp;rsquo;s an unmentioned law that comes as a prerequisite to all of that: a robot must be observable.&lt;/p&gt;
&lt;p&gt;In this talk, I discuss the different types of AI, the factors that make observing AI different from observing applications, and the telemetry signals specific to AI that we might want to listen to. How do we deal with large data sets? How do we observe for model drift? How do we take into account the costs of LLMs? How can we use distributed tracing to follow event sequences? Part cautionary tale and part technical demo, this talk shows how to instrument and monitor AI apps using OpenTelemetry, Prometheus, OpenLit, and more.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/x6EKTCAWtn8?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Cartography of the Deep: Distributed Tracing for Testing (Romanian Testing Conference)</title><link>https://nicolevanderhoeven.com/blog/20240613-cartography-of-the-deep/</link><pubDate>Thu, 13 Jun 2024 12:24:02 -0700</pubDate><guid>https://nicolevanderhoeven.com/blog/20240613-cartography-of-the-deep/</guid><description>&lt;p&gt;I presented a talk today at the Romanian Testing Conference 2024 in Cluj-Napoca, Romania! My talk was called &amp;ldquo;Cartography of the Deep: Distributed Tracing for Testing&amp;rdquo; and it covered how to tie in distributed tracing into tests to get a better understanding of your system under test.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://nicole.to/rtc2024"&gt;Here are my slides&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/rtc2024-02.jpg" alt="" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/rtc2024-01.jpg" alt="" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="abstract"&gt;Abstract&lt;/h2&gt;
&lt;p&gt;From the Scandinavian Kraken that drags entire ships to their early graves to the Philippine Bakunawa said to rise from the waters to swallow the moon, our existential fears about what lurks at the bottom of our own oceans has inspired us to create hundreds of folkloric monsters across cultures. We&amp;rsquo;ve charted the surface of our planet, but the vast majority of the ocean floor remains a mystery.&lt;/p&gt;
&lt;p&gt;The mysterious depths of modern software architectures makes it difficult for us to test a system for performance and reliability. The easy solution? Unmanned underwater probes: send inputs to the system, and judge its state based on the outputs that return. But this method is often too limited to tell us what&amp;rsquo;s really going on when something goes wrong. What if there were a way to make our tests themselves more observable?&lt;/p&gt;
&lt;p&gt;In this talk, you will learn how to use open-source tools to instrument performance tests, identify bottlenecks at the code level using distributed tracing, and map out a system using a type of software bathymetry. You&amp;rsquo;ll also learn about the Mariana Trench expeditions, the difficulties of operating in a high-pressure underwater environment, and how to come face to face with monsters of our mythologies.&lt;/p&gt;</description></item><item><title>Adobo &amp; Avocados: Intersectionality in Tech and DevRel (Agile Testing Days 2023)</title><link>https://nicolevanderhoeven.com/blog/20231116-adobo-and-avocados-intersectionality-in-tech-and-devrel/</link><pubDate>Thu, 16 Nov 2023 09:45:15 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20231116-adobo-and-avocados-intersectionality-in-tech-and-devrel/</guid><description>&lt;p&gt;My friend &lt;a href="https://testingwithmarie.com"&gt;Marie Cruz&lt;/a&gt; and I presented today at &lt;a href="https://agiletestingdays.com/"&gt;Agile Testing Days 2023&lt;/a&gt; in Potsdam, Germany. Our talk was called &lt;a href="https://agiletestingdays.com/2023/session/adobo-and-avocados-intersectionality-in-tech-and-devrel/"&gt;Adobo &amp;amp; Avocados: Intersectionality in Tech and DevRel&lt;/a&gt;. We talked about what intersectionality is, shared our personal experiences regarding diversity and intersecting identities, and gave tips on how to think about intersectionality as we build and use software. You can find the &lt;a href="https://www.canva.com/design/DAFzmIZBsAM/vuZZ7KE4fHxczHYdwZTvmw/view?utm_content=DAFzmIZBsAM&amp;amp;utm_campaign=designshare&amp;amp;utm_medium=link&amp;amp;utm_source=editor"&gt;slides here&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Emergent Load Testing - TestCon Europe 2023</title><link>https://nicolevanderhoeven.com/blog/20231025-emergent-load-testing-testconeu/</link><pubDate>Wed, 25 Oct 2023 20:05:36 +0300</pubDate><guid>https://nicolevanderhoeven.com/blog/20231025-emergent-load-testing-testconeu/</guid><description>&lt;p&gt;I presented at &lt;a href="https://testcon.lt/"&gt;TestCon Europe 2023&lt;/a&gt; in Vilnius, Lithuania about emergent load testing, and how to use it to find the limits of your system. My talk was called &lt;a href="https://events.pinetool.ai/3078/#sessions/100686?referrer%5Bpathname%5D=%2Fsessions&amp;amp;referrer%5Bsearch%5D=&amp;amp;referrer%5Btitle%5D=Sessions"&gt;Emergent load testing: Rules for Organized Chaos&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can find the slides &lt;a href="https://slides.nicolevanderhoeven.com/2023-emergent-load-testing-testconeu/"&gt;here&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/JUJ_0079.jpg" alt="Me speaking at TestCon Europe 2023" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/JUJ_0102.jpg" alt="Portrait snapshot of me presenting at TestCon Europe 2023" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/JUJ_0193.jpg" alt="Wide shot of me talking about agency, feedback, and affordances" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/JUJ_0208.jpg" alt="Me at the podium at TestCon Europe 2023" loading="lazy" decoding="async"&gt;
&lt;/p&gt;</description></item><item><title>Taking Notes for Work With Obsidian</title><link>https://nicolevanderhoeven.com/blog/20230616-taking-notes-for-work-with-obsidian/</link><pubDate>Fri, 16 Jun 2023 19:00:33 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20230616-taking-notes-for-work-with-obsidian/</guid><description>&lt;p&gt;In this talk, I show why I think taking notes for work with Obsidian has not just helped me learn faster but improved my career working in tech as a Developer Advocate and performance engineer. I take notes continuously as a way to keep my skills relevant. This is a rehearsal of a presentation I gave &lt;a href="https://nicolevanderhoeven.com/blog/20230614-lost-art-of-taking-good-notes"&gt;at EuroSTAR 2023&lt;/a&gt;.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/0g38K_DtxFI?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>The Lost Art of Taking Good Notes (EuroSTAR 2023)</title><link>https://nicolevanderhoeven.com/blog/20230614-lost-art-of-taking-good-notes/</link><pubDate>Wed, 14 Jun 2023 08:00:21 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20230614-lost-art-of-taking-good-notes/</guid><description>&lt;p&gt;Today I gave the talk &amp;ldquo;&lt;a href="https://conference.eurostarsoftwaretesting.com/event/2023/the-lost-art-of-taking-good-notes"&gt;The Lost Art of Taking Good Notes&lt;/a&gt;&amp;rdquo; at &lt;a href="https://conference.eurostarsoftwaretesting.com"&gt;EuroSTAR 2023&lt;/a&gt;, about how I use Obsidian for work and why creating a personal knowledge management system is so valuable in the career of a tester.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/0g38K_DtxFI?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://slides.nicolevanderhoeven.com/2023-lost-art-of-taking-good-notes"&gt;Here are the slides&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Load testing and tracing with k6 and Tempo</title><link>https://nicolevanderhoeven.com/blog/20230518-load-testing-and-tracing-with-k6-and-tempo/</link><pubDate>Thu, 18 May 2023 22:41:42 +1000</pubDate><guid>https://nicolevanderhoeven.com/blog/20230518-load-testing-and-tracing-with-k6-and-tempo/</guid><description>&lt;p&gt;At &lt;a href="https://grafana.com/about/events/observabilitycon/2023/sydney/"&gt;ObservabilityCON on the Road 2023 in Sydney, Australia&lt;/a&gt;, I talked about why you should use load testing and distributed tracing, how to do it with k6 and Tempo, and the benefits of being able to see beyond traditional black-box testing.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/ZP2aa5qjNOg?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.google.com/presentation/d/1rC8kifF6X1ZSH8jgh-yUp6NfgK_UaLiOG8TWLa5dQBQ/edit?usp=sharing"&gt;Check out the slides here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://notes.nicolevanderhoeven.com/Distributed+tracing"&gt;Distributed tracing&lt;/a&gt; (notes)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://notes.nicolevanderhoeven.com/xk6-distributed-tracing"&gt;xk6-distributed-tracing&lt;/a&gt; (notes)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/ocr-2023-syd-01.jpeg" alt="Photo of the crowd at OCR Sydney" loading="lazy" decoding="async"&gt;
&lt;/p&gt;</description></item><item><title>How to Avoid the Most Common Kubernetes Monitoring Mistakes</title><link>https://nicolevanderhoeven.com/blog/20230516-how-to-avoid-the-most-common-kubernetes-monitoring-mistakes/</link><pubDate>Tue, 16 May 2023 22:41:16 +1000</pubDate><guid>https://nicolevanderhoeven.com/blog/20230516-how-to-avoid-the-most-common-kubernetes-monitoring-mistakes/</guid><description>&lt;p&gt;For &lt;a href="https://grafana.com/about/events/observabilitycon/2023/singapore/"&gt;ObservabilityCON on the Road Singapore 2023&lt;/a&gt;, I talked about some mistakes people make when monitoring applications within Kubernetes clusters. I also demonstrated Grafana&amp;rsquo;s Kubernetes Monitoring solution and how it can be a shortcut for engineers looking to get started quickly.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/ocr-2023-sin-01.jpg" alt="Photo of me speaking at OCR Singapore 2023" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.google.com/presentation/d/1rC8kifF6X1ZSH8jgh-yUp6NfgK_UaLiOG8TWLa5dQBQ/edit?usp=sharing"&gt;Slides here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://notes.nicolevanderhoeven.com/Monitoring+Kubernetes"&gt;Monitoring Kubernetes in general&lt;/a&gt; (notes)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://notes.nicolevanderhoeven.com/Grafana+Kubernetes+Monitoring"&gt;The Grafana Kubernetes Monitoring feature&lt;/a&gt; (notes)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/ocr-2023-sin-02.jpg" alt="Photo of the crowd at OCR Singapore 2023" loading="lazy" decoding="async"&gt;
&lt;/p&gt;</description></item><item><title>Emergent Load Testing - rules for organized chaos</title><link>https://nicolevanderhoeven.com/blog/20230419-emergent-load-testing/</link><pubDate>Wed, 19 Apr 2023 00:21:06 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20230419-emergent-load-testing/</guid><description>&lt;p&gt;Today I spoke at &lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/program/schedule/"&gt;KubeCon EU 2023&lt;/a&gt; about &lt;a href="https://sched.co/1HyYH"&gt;emergent load testing&lt;/a&gt;.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/Og4-Z6j_0M0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/img_3556.jpg" alt="Me just before the presentation, with the opening slide on the screen behind me." loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://slides.nicolevanderhoeven.com/2023-emergent-load-testing/#"&gt;Here are the slides&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Below are some links to extensions and experimental modules that I mentioned:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://grafana.com/"&gt;Grafana&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://k6.io/"&gt;k6 site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/grafana/k6"&gt;k6 repo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://k6.io/docs/"&gt;k6 docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://k6.io/docs/using-k6-browser/overview/"&gt;k6 browser&lt;/a&gt; (experimental module)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://k6.io/docs/results-output/real-time/prometheus-remote-write/"&gt;Prometheus Remote Write&lt;/a&gt; (experimental module)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://k6.io/docs/javascript-api/k6-experimental/tracing/"&gt;k6 tracing&lt;/a&gt; (experimental module)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/grafana/xk6-kubernetes"&gt;xk6-kubernetes&lt;/a&gt; (extension)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://k6.io/docs/javascript-api/k6-experimental/redis/"&gt;k6 redis&lt;/a&gt; (experimental module)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/grafana/xk6-disruptor"&gt;xk6 disruptor&lt;/a&gt; (extension)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/img_3560-1.jpg" alt="Me presenting, with a slide containing my definition of emergence on the screen" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="abstract"&gt;Abstract&lt;/h2&gt;
&lt;p&gt;When we write load testing scripts against our applications, we write them sequentially: A, then B, then C. But this doesn&amp;rsquo;t accurately reflect the organized chaos of a system in production, nor does it prepare the system for the unexpected.&lt;/p&gt;
&lt;p&gt;Emergence is a phenomenon where parts of a whole independently develop properties not originally present in the whole. Emergence is what helps ant workers develop roles without leadership, prompts animals to evolve adaptive traits without forethought, and facilitates non-toxic communities without moderators.&lt;/p&gt;
&lt;p&gt;The growing field of emergent software applies this swarm logic to the programs that we write. What would it take to write emergent load testing scripts? It turns out that there are a few ingredients for emergence: a large population size, opportunities to interact, feedback, and an element of control.&lt;/p&gt;
&lt;p&gt;In this talk, Nicole van der Hoeven discusses how to bring these elements to load testing by writing a script in Grafana k6 that can independently decide what requests to make next, modify Kubernetes app pods, and disrupt services based on a continual feed of results during runtime&amp;ndash; all without manual intervention. She shows how to wield this new breed of load testing to improve confidence in the complex systems we build.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/img_3558.jpg" alt="Photo of the room while I was presenting" loading="lazy" decoding="async"&gt;
&lt;/p&gt;</description></item><item><title>How to create things with your notes</title><link>https://nicolevanderhoeven.com/blog/20220617-use-it-or-lose-it/</link><pubDate>Fri, 17 Jun 2022 17:37:14 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20220617-use-it-or-lose-it/</guid><description>&lt;p&gt;What do you do with all those notes? In this presentation, I talk about how to create things with your notes. I demonstrate my process of going from raw notes to this very presentation and share some of my strategies for creating output with little effort by learning in public and identifying topics to create content about using existing notes.&lt;/p&gt;
&lt;p&gt;On May 19th, I did a talk at the &lt;a href="https://nicolevanderhoeven.com/blog/20220519-use-it-or-lose-it/"&gt;Linking Your Thinking Conference&lt;/a&gt; about using your notes (or losing them), and about what we can do to make something useful of all our notes. This was my run through!&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/4zrs_vVRwD4?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>How to Be a Gish - API, browser, and chaos testing in one script (ExpoQA 2022)</title><link>https://nicolevanderhoeven.com/blog/20220601-how-to-be-a-gish-expoqa/</link><pubDate>Wed, 01 Jun 2022 14:06:49 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20220601-how-to-be-a-gish-expoqa/</guid><description>&lt;p&gt;For the ExpoQA 2022 conference in Madrid, Spain, I presented a talk about how to be a gish. In this talk, I covered the following topics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;what a gish is, and how it applies to the field of testing&lt;/li&gt;
&lt;li&gt;how testing is a multidisciplinary field, and why generalists triumph over specialists in the face of uncertainty&lt;/li&gt;
&lt;li&gt;how the tool we choose to do our testing informs the type of testing and the type of results we get&lt;/li&gt;
&lt;li&gt;a hands-on example of how to do API load testing, browser automation, and chaos engineering in one script using a tool like &lt;a href="https://k6.io/"&gt;k6&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There was no recording of the conference talk, but here is a video of me going through my presentation beforehand:&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/aq0XSNcXDb0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;You can find the slides &lt;a href="https://slides.nicolevanderhoeven.com/2022-how-to-be-a-gish/#/"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And here are some photos from the event!&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/expoqa-3.jpeg" alt="Me speaking at ExpoQA 2022 in Madrid, Spain" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/expoqa-1.jpeg" alt="Me speaking at ExpoQA 2022 in Madrid, Spain" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/expoqa-4.jpeg" alt="Me speaking at ExpoQA 2022 in Madrid, Spain" loading="lazy" decoding="async"&gt;
&lt;/p&gt;</description></item><item><title>Use It or Lose It - Linking Your Thinking Conference</title><link>https://nicolevanderhoeven.com/blog/20220519-use-it-or-lose-it/</link><pubDate>Thu, 19 May 2022 14:03:13 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20220519-use-it-or-lose-it/</guid><description>&lt;p&gt;Today I spoke at the &lt;a href="https://lu.ma/3m1fh781"&gt;Linking Your Thinking&lt;/a&gt; conference about what I do with notes I take, and how I manage to use them to actually create stuff.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/SMNSUs6ffnE?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;If you&amp;rsquo;d like to see the result for yourself, &lt;a href="https://slides.nicolevanderhoeven.com/2022-use-it-or-lose-it/#"&gt;here are the slides&lt;/a&gt;!&lt;/p&gt;</description></item><item><title>TestOps Ask Me Anything on Devops Toolkit</title><link>https://nicolevanderhoeven.com/blog/20220407-testops-ama-on-devops-toolkit/</link><pubDate>Thu, 07 Apr 2022 18:00:30 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20220407-testops-ama-on-devops-toolkit/</guid><description>&lt;p&gt;I joined my friend Viktor Farcic on his channel, DevOps Toolkit, to do an Ask Me Anything on the topic of TestOps.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/IRAa81s3WQQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;We ended up talking a lot about &lt;a href="https://k6.io"&gt;k6.io&lt;/a&gt;, different &lt;a href="https://grafana.com"&gt;Grafana Labs&lt;/a&gt; open-source projects, and what performance testing has to do with DevOps and Site Reliability Engineering.&lt;/p&gt;</description></item><item><title>In search of the best Pokémon: Browser automation and load testing in one script with k6 (Automation Guild 2022)</title><link>https://nicolevanderhoeven.com/blog/20220210-in-search-of-the-best-pokemon/</link><pubDate>Thu, 10 Feb 2022 12:01:53 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20220210-in-search-of-the-best-pokemon/</guid><description>&lt;p&gt;Being a tester is like being a pokémon trainer: we want to choose the right pokémon for the job. The problem with doing different types of testing is that we also end up with multiple scripts in different languages and testing tools. We end up choosing a squad of pokémon: one for unit testing, one for automation testing, one for load testing, and so on. Making sure they all work together is a task in itself!&lt;/p&gt;
&lt;p&gt;But what if we could just use one? What if we only needed one Mega-evolved pokémon that could fulfill multiple roles? Is it really possible to write a browser automation script and then reuse it for load testing?&lt;/p&gt;
&lt;p&gt;In this presentation, I talk about my search for the elusive one pokémon that does multiple jobs, the advantages of hybrid load testing, and how to pick pokémon that make our life as trainers and testers easier.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/SFag8ggkXKo?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Basics of load testing with k6 and Grafana in 20 minutes</title><link>https://nicolevanderhoeven.com/blog/20211012-basics-of-load-testing-with-k6-and-grafana/</link><pubDate>Tue, 12 Oct 2021 01:04:02 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20211012-basics-of-load-testing-with-k6-and-grafana/</guid><description>&lt;p&gt;This was a video I pre-recorded in preparation for &lt;a href="https://nicolevanderhoeven.com/blog/20211005-testing-with-k6-and-grafana-better-together/"&gt;the first Grafana EMEA virtual meetup&lt;/a&gt;.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/gvounvDSDGg?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;In mid-June (just three months ago), k6 joined the Grafana Labs family. Many people didn&amp;rsquo;t quite understand what the connection was between k6 and Grafana, but I thought it made a lot of sense.&lt;/p&gt;
&lt;p&gt;Google&amp;rsquo;s Site Reliability Engineering book talks about 4 golden signals that we should measure in a system: latency, traffic, errors, and saturation. Load testing provides 3 of those (latency, traffic, and errors), but it doesn&amp;rsquo;t show saturation, and it doesn&amp;rsquo;t give us visibility into the system.&lt;/p&gt;
&lt;p&gt;Grafana brings observability. k6 brings data. They work really well together, which is why we&amp;rsquo;ve been using each other&amp;rsquo;s products for a few years now, before there was ever any talk of an acquisition.&lt;/p&gt;
&lt;p&gt;In this video, I talk about why k6 and Grafana are better together and also demonstrate:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;how to run a simple script in k6 OSS&lt;/li&gt;
&lt;li&gt;how to make sense of the results of a load test&lt;/li&gt;
&lt;li&gt;test execution options: running locally, sending results to k6 Cloud, and running a test from k6 Cloud&amp;ndash; all triggered using the CLI&lt;/li&gt;
&lt;li&gt;two different integration options to bring k6 and Grafana together: the k6 Cloud Grafana data source plugin and Prometheus Remote Write&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>TTRPG Obsidian Showcase</title><link>https://nicolevanderhoeven.com/blog/20211009-ttrpg-obsidian-showcase/</link><pubDate>Sat, 09 Oct 2021 00:43:25 +0000</pubDate><guid>https://nicolevanderhoeven.com/blog/20211009-ttrpg-obsidian-showcase/</guid><description>&lt;p&gt;Here&amp;rsquo;s a presentation I participated in about a bunch of nerds who like both &lt;a href="https://obsidian.md"&gt;Obsidian&lt;/a&gt; and D&amp;amp;D. My part begins around &lt;a href="https://www.youtube.com/watch?v=Ovqu_1aW3Sw&amp;amp;t=2720"&gt;0:45:20&lt;/a&gt;, but I thought the other speakers&amp;rsquo; parts were really fascinating as well!&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/Ovqu_1aW3Sw?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Testing With k6 + Grafana: Better Together (Grafana virtual meetup EMEA)</title><link>https://nicolevanderhoeven.com/blog/20211005-testing-with-k6-and-grafana-better-together/</link><pubDate>Tue, 05 Oct 2021 21:49:13 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20211005-testing-with-k6-and-grafana-better-together/</guid><description>&lt;p&gt;In this first EMEA session of the Grafana Labs virtual meetups, I talked about how to use k6 and Grafana together to get the full performance picture for a software application. Observability, using tools like Prometheus and Grafana, lets us see what&amp;rsquo;s going on inside the application, and load testing, using k6, helps us get those insights earlier on in software cycles, such as during pre-production.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/MUd5xuuxt0A?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Intro to Load Testing With k6 and Grafana (webinar)</title><link>https://nicolevanderhoeven.com/blog/20210916-intro-to-load-testing-with-k6-and-grafana/</link><pubDate>Thu, 16 Sep 2021 22:11:16 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20210916-intro-to-load-testing-with-k6-and-grafana/</guid><description>&lt;p&gt;Tonight I did a webinar with Grafana Labs&amp;ndash; the first k6-related webinar since the acquisition. I was more than a little nervous to give it, because I knew I was introducing k6 to a lot of new users, but also to Grafana for the first time. I think it went pretty well! I was still quite relieved when it was over, however. :)&lt;/p&gt;
&lt;p&gt;In the webinar, I talk about:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;why it&amp;rsquo;s still a good idea to do load testing in pre-production&lt;/li&gt;
&lt;li&gt;what k6 is&lt;/li&gt;
&lt;li&gt;why k6 and Grafana together make sense&lt;/li&gt;
&lt;li&gt;and how to integrate k6 and Grafana&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There&amp;rsquo;s quite a bit of demo in it, and I also had the k6 CEO, Robin Gustafsson, join me for Q&amp;amp;A as a nice treat.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/tFsIgbqXbxM?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;Check out the full webinar &lt;a href="https://grafana.com/go/webinar/intro-to-load-testing-with-grafana-and-k6/"&gt;here&lt;/a&gt;&amp;ndash; it&amp;rsquo;s already up on the Grafana site. You can also go through my slides &lt;a href="https://docs.google.com/presentation/d/1WOA50nqIv1NoiHBxGIH_JM02rZqSjX81gHTlwPJ5i1U/edit?usp=sharing"&gt;here&lt;/a&gt;, if you&amp;rsquo;d like.&lt;/p&gt;</description></item><item><title>Schrödinger's Pokémon: k6 and Grafana edition</title><link>https://nicolevanderhoeven.com/blog/20210908-schrodingers-pokemon-k6-and-grafana/</link><pubDate>Wed, 15 Sep 2021 18:22:31 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20210908-schrodingers-pokemon-k6-and-grafana/</guid><description>&lt;p&gt;Earlier this year, I gave a presentation at New Relic&amp;rsquo;s FutureStack conference about &lt;a href="https://nicolevanderhoeven.com/blog/20210730-schrodingers-pokemon/"&gt;chaos engineering with k6 and New Relic&lt;/a&gt;. A few months ago, k6 got acquired by &lt;a href="https://grafana.com"&gt;Grafana Labs&lt;/a&gt;, and so I wanted to redo it, but with the Grafana stack this time.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the result, and I think I like this iteration even better:&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/2QHs_HEX7r0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;I presented this talk at &lt;a href="https://www.youtube.com/watch?v=jSgH3I8_ldk"&gt;TestCon Europe 2021&lt;/a&gt; today, although the audio sync issues were not great, so I recommend you watch the video above instead.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://docs.google.com/presentation/d/11HakdG0w2RsOunVnD6qPkTfTPpBxtXFECK_ynSOBraE/edit"&gt;Slides are here.&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Schrödinger's Pokémon: Observability for chaotic load testing (New Relic FutureStack)</title><link>https://nicolevanderhoeven.com/blog/20210730-schrodingers-pokemon/</link><pubDate>Sun, 01 Aug 2021 18:54:27 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20210730-schrodingers-pokemon/</guid><description>&lt;p&gt;This is a presentation I gave at &lt;a href="https://newrelic.com/futurestack/speakers/nicole-van-der-hoeven"&gt;New Relic FutureStack 2021&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Deploying an application to production is often like putting a pokémon in a box and hoping it manages to stay alive despite real-world chaos and potential outages. What can we, as testers, do to prepare applications for these situations before they go live? In this talk, I discuss chaos engineering concepts and demonstrates how to apply them by incorporating load tests with chaos experiments and setting up observability tools to watch it all happen. Because without observability, how can we tell whether Schrödinger&amp;rsquo;s pokémon is alive or dead?&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/356yC-DOSmo?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Convergence of Code and Speech</title><link>https://nicolevanderhoeven.com/blog/20210609-convergence-of-code-and-speech/</link><pubDate>Wed, 09 Jun 2021 22:23:19 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20210609-convergence-of-code-and-speech/</guid><description>&lt;p&gt;As part of the &lt;a href="https://www.womentech.net/en-us/women-tech-conference"&gt;Women Tech Global 2021&lt;/a&gt; conference, I presented a short talk called &amp;ldquo;&lt;a href="https://www.womentech.net/speaker/Nicole/van%20der%20Hoeven/50129"&gt;Convergence of Code and Speech&lt;/a&gt;&amp;rdquo;, under the theme of &amp;ldquo;Future of Work&amp;rdquo;. In hindsight, the title was a little pretentious, but what are you going to do?&lt;/p&gt;
&lt;p&gt;I haven&amp;rsquo;t gotten the recording of the live version yet, but I always like to do a recorded test run by myself, and here&amp;rsquo;s what that was like:&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/sbZ3A8GrDk0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;Programming code and human speech are often seen as being positioned at different ends of the spectrum. At one end, code is terse, strictly logical, and limited. On the other end, speech is unbounded and often verbose. However, the gap between the two is narrowing.&lt;/p&gt;
&lt;p&gt;Code is moving towards speech. Good code these days is code that exceeds simply being functional; good code is concise, but expressive; good code is easily comprehensible; good code refers to human concepts rather than technical components.&lt;/p&gt;
&lt;p&gt;Shrinking global borders and the internet are making collaborating on code easier than ever before, but contributors may come from different cultures and languages. Remote work has significantly increased the likelihood of a multilingual devleopment team, so code style guides have emerged that are similar to writing style guides. Artificial intelligence is learning to interpret intention, and many apps now employ fuzzy search algorithms. Our expectations for code have increased such that we now expect code to understand us even when we&amp;rsquo;re being imprecise or inaccurate. Modern programming languages like React and Python use hierarchical abstraction to hide complexity, moving towards code that prioritizes being understood over being thorough.&lt;/p&gt;
&lt;p&gt;On the other side of the spectrum, speech is also moving towards coding. Multilingual teams also encourage simplicity in written communication, removing colloquialisms and cultural references so that a more global audience can understand us. Tools like Grammarly correct for simplicity and conciseness. Verbal speech, too, is becoming increasingly programmatic with the rise of &amp;ldquo;smart&amp;rdquo; speakers and personal assistants that enforce a syntax for voice commands. Advances in artificial intelligence and machine learning have enabled us to interact with machines in natural language, and machines to interact with us back. OpenAI&amp;rsquo;s GPT-3 can produce convincingly human text about a variety of topics with little prompting. Writing tools like Notion, Roam Research, and Obsidian are growing ecosystems that mix human language with programming keywords to enable backlinks or access other features.&lt;/p&gt;
&lt;p&gt;What are the implications of this convergence of code and speech? Writers will need to learn to code, and coders will need to learn to write. The two will become synonymous, and equally essential especially for knowledge workers. Tools that enable both coding and writing will become more valuable, so it&amp;rsquo;s worth investing the time to learn them. Both code and speech have inherent linguistic or cultural biases, so using inclusive language will become even more important.&lt;/p&gt;
&lt;p&gt;What are coding and speech converging into? Their intersection is simply expressing thought. She who is able to express thought, both programmatically and naturally, will be best poised to take advantage of this convergence.&lt;/p&gt;</description></item><item><title>Load Tests as Code: An introduction to k6</title><link>https://nicolevanderhoeven.com/blog/20210318-load-tests-as-code/</link><pubDate>Thu, 18 Mar 2021 20:36:41 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20210318-load-tests-as-code/</guid><description>&lt;p&gt;Today, I attended the &lt;a href="https://www.cambridge.org/"&gt;Cambridge University Press&lt;/a&gt; QA Week 2021 to talk about load testing with k6. Here&amp;rsquo;s a recording of the presentation.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/kz3Mt97L9CY?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;And &lt;a href="https://slides.nicolevanderhoeven.com/2021-load-tests-as-code/"&gt;here are the slides&lt;/a&gt; I used!&lt;/p&gt;
&lt;p&gt;I had fun discussing the advantages of the load test as code approach and why k6 is a great way to implement it.&lt;/p&gt;</description></item><item><title>Cuándo JMeter no alcanza: Pruebas de carga simulando navegadores</title><link>https://nicolevanderhoeven.com/blog/20201216-cuando-jmeter-no-alcanza/</link><pubDate>Wed, 16 Dec 2020 18:18:23 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20201216-cuando-jmeter-no-alcanza/</guid><description>&lt;p&gt;Aquí está el video de mi presentación en JMeter Scripting Day, un evento organizado por &lt;a href="https://jmeterenespanol.org/"&gt;JMeter en Español&lt;/a&gt; el 31 de Oktubre, 2020.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/1KB8e2Ld08M?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;Y la versión audio:&lt;/p&gt;
&lt;iframe src="https://open.spotify.com/embed-podcast/episode/1f17kzrbYmOxk8e65JBTQH" width="100%" height="232" frameborder="0" allowtransparency="true" allow="encrypted-media"&gt;&lt;/iframe&gt;
&lt;h2 id="introducción"&gt;Introducción&lt;/h2&gt;
&lt;p&gt;Hola a todos! Yo soy Nicole van der Hoeven, y soy performance tester. JMeter es una de mis herramientas favoritas porque es gratis, simple, y por muchos casos hace exactamente lo que quiero y no más. Sin embargo, como performers es parte de nuestro trabajo elegir la herramienta adecuada para cada proyecto, y hay que admitir que hay situaciones en que JMeter simplemente no es suficiente.&lt;/p&gt;
&lt;h2 id="amazon---ui--dev-tools"&gt;Amazon - UI + Dev Tools&lt;/h2&gt;
&lt;p&gt;Esto es el sitio web de Amazon.com. Tengo abierta la pantalla de Chrome Developer Tools, que me muestra las solicitudes (o requests) que componen la página. Cuándo vamos a la página, el navegador (Chrome en este caso) envia estas solicitudes para nosotros, pero eso occure en el fondo. Un usuario normal no las ve.&lt;/p&gt;
&lt;h2 id="jmeter---creando-un-script"&gt;JMeter - Creando un script&lt;/h2&gt;
&lt;p&gt;Lo que JMeter hace es grabar estas solicitudes y replicarlas. Aqui vemos una ejecución de un usuario virtual de un script en JMeter. Cada solicitud tiene la respuesta y el tiempo de respuesta. Pero eso no nos da una idea completa del rendimiento de la aplicación. ¿Por qué?&lt;/p&gt;
&lt;p&gt;Por que JMeter, como otras herramientas de nivel protocolo, tiene unas limitaciónes. La primera es que si hay javascript o otros script que deben estar ejecutado por el navegador, JMeter no los ejecuta. JMeter solo los descarga. El tiempo de respuesta mide la descarga, no la duración de la ejecución. Entonces, siempre habrá una diferencia entre los tiempos de respuesta en una prueba de JMeter y los tiempos de respuesta en práctica.&lt;/p&gt;
&lt;p&gt;A veces esta diferencia no es tan importante. Pero hay más y más aplicaciones hoy en día que se componen principalmente de estos javascript. Por esas aplicaciones, simplemente no es posible hacer un script en JMeter porque la mayoría de la lógica de la aplicación occure en el navegador, no en el servidor.&lt;/p&gt;
&lt;h2 id="flood-challenge"&gt;Flood Challenge&lt;/h2&gt;
&lt;p&gt;La segunda razón es que el aumento de la seguridad de aplicaciones conduce a solicitudes más complejas que incluyen parámetros dinámicos. Estos parámetros hacen que sea más difícil para un intermediario lanzar un ataque, pero también hacen que sea más difícil para nosotros scripters, porque tenemos que extraer información desde la última respuesta y ponerla en la próxima solicitud. Es posible, pero es la pesadilla de cada performance tester.&lt;/p&gt;
&lt;p&gt;Podemos verlo en la aplicación de muestra &lt;a href="https://challenge.flood.io"&gt;Flood Challenge&lt;/a&gt;. Ya no trabajo para Flood, pero todavía es un buen ejemplo.&lt;/p&gt;
&lt;h2 id="correlación-en-jmeter---flood-challenge-script"&gt;Correlación en JMeter - Flood challenge script&lt;/h2&gt;
&lt;p&gt;Esto es mi script en JMeter, y vemos que hay muchos parámetros que he tenido que correlacionar. La solicitud para simular hacer clic en el botón &amp;ldquo;Start&amp;rdquo; necesita los parámetros authenticity token, step ID, y step number, que son dinámicos. El contenido de los parámetros cambian cada vez que usamos esta aplicación.&lt;/p&gt;
&lt;h2 id="la-experiencia-del-usuario"&gt;La experiencia del usuario&lt;/h2&gt;
&lt;p&gt;La tercera razón es que JMeter tampoco mide la verdadera experiencia del usuario. Solo mide la duración de la comunicación entre el navegador y el servidor, pero no mide cosas como la representación de elementos en la página web, ni el efecto de un script que dura mucho tiempo para terminar.&lt;/p&gt;
&lt;p&gt;Eso es importante porque estas cosas afectan significativamente la experiencia del usuario. De hecho, Steve Souders, un conocido el la industría de performance, dice que &lt;a href="https://rigor.com/blog/80-90-of-load-times-are-spent-on-the-front-end-start-there/#:~:text=Start%20there.,-Written%20by%20Craig&amp;amp;text=Last%20month%2C%20Steve%20Souders%2C%20Google's,is%20spent%20on%20the%20frontend"&gt;hasta 90% del tiempo de respuesta&lt;/a&gt; que experimenta el usuario está en la interfaz. Con este numero podemos estar ciertos que una prueba con una herramienta de nivel protocolo no va a poder encapsular el rendimiento final de una aplicación.&lt;/p&gt;
&lt;h2 id="developer-tools---lighthouse"&gt;Developer Tools - Lighthouse&lt;/h2&gt;
&lt;p&gt;Entonces, ¿qué podemos hacer?&lt;/p&gt;
&lt;p&gt;Lo más fácil es intentar de medir la interfaz durante una prueba de cargas. Mientras ejecutamos una prueba con JMeter, podemos ir manualmente a la aplicación web en Chrome para usar Developer Tools. Podemos usar la pestaña Lighthouse, que nos da más métricos del perspectivo del usuario y sugerencias para mejorar el rendimiento.&lt;/p&gt;
&lt;h2 id="webpagetest"&gt;WebPageTest&lt;/h2&gt;
&lt;p&gt;También uso &lt;a href="https://webpagetest.org"&gt;WebPageTest&lt;/a&gt; a veces. Eso tiene más opciones para ejecutar la prueba automáticamente varias veces desde un lugar que puedo elegir. Aún podemos elegir un dispositivo para simular la experiencia de un usuario en un iPad, por ejemplo.&lt;/p&gt;
&lt;h2 id="herramientas-alternativas-para-pruebas-de-carga"&gt;Herramientas alternativas para pruebas de carga&lt;/h2&gt;
&lt;p&gt;Tambien podemos elegir herramientas alternativas para ejecutar nuestras pruebas de carga. Lo que tienen en común es que fueron diseñadas para pruebas de automatización, y utilizan un navegador real.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.selenium.dev/"&gt;Selenium&lt;/a&gt; es probablemente la más popular de esas. Selenium WebDriver en particular. Es compatible con Ruby, Java, Python, C# y Javascript. El problema con Selenium es que puede ser muy pesada. En una machina probablamente podemos ejecutar cinco usuarios de Selenium, más o menos. Eso es importante si estamos tratando de simular miles de usuarios.&lt;/p&gt;
&lt;p&gt;Hay muchas herramientas basadas en Javascript que también podemos usar. Hay varias framework que se utilizan para adaptar Javascript y nodeJS.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Puppeteer fue desarollado por Google. Tricentis Flood también ha diseñado Element que utiliza Puppeteer, pero con un enfoque en el rendimiento.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://github.com/microsoft/playwright"&gt;Playwright&lt;/a&gt; es una creación de Microsoft.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://jest.io"&gt;Jest&lt;/a&gt; fue desarrollado por Facebook&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mocha es otro framework que es la base para &lt;a href="https://cypress.io"&gt;Cypress&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Todos esas herramientas son open source y gratis. También hay alternativas propietarias, pero prefiero las soluciones open source porque en la mayoría de casos hacen la misma cosa y se actualizan con más frecuencia.&lt;/p&gt;
&lt;h2 id="element-script"&gt;Element script&lt;/h2&gt;
&lt;p&gt;Esto es un ejemplo de la misma acción, hacer clic en el botón Start en la aplicación Flood Challenge.&lt;/p&gt;
&lt;p&gt;Otra ventaja de simulando navegadores en vez de simulando las solicitudes es que es más simple crear un script. No tenemos que saber cada parámetro. Solo tenemos que describir lo que queremos que cada usuario virtual haga.&lt;/p&gt;
&lt;p&gt;Podemos ejecutar scripts usando estas herramientas al mismo tiempo que un script de &lt;a href="https://jmeter.apache.org"&gt;JMeter&lt;/a&gt; o &lt;a href="https://gatling.io"&gt;Gatling&lt;/a&gt; o lo que sea, y también tenemos la opción de reemplazar los script de protocolo con estas.&lt;/p&gt;
&lt;h2 id="conclusión"&gt;Conclusión&lt;/h2&gt;
&lt;p&gt;Para resumir, JMeter y otras herramientas de nivel protocolo tiene algunas limitaciones.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;No ejecutan scripts del lado del navegador&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Pueden ser más complicado correlacionar parámetros dinámicos&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;No miden la experiencia final de un usuario&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para solucionar estos problemas, podemos complementar pruebas de carga tradicionales, de nivel protocolo, como JMeter, con herramientas simulando navegadores. De este modo podremos tener una comprensión más completa del rendimiento total de la aplicación.&lt;/p&gt;
&lt;p&gt;Bueno, se acabó el tiempo, entonces los dejo aquí. Gracias por escuchar, y me disculpo por mi español. Gracias a todos!&lt;/p&gt;</description></item><item><title>How to Become a Load Tester</title><link>https://nicolevanderhoeven.com/blog/20201007-how-to-become-a-load-tester/</link><pubDate>Wed, 07 Oct 2020 14:15:45 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20201007-how-to-become-a-load-tester/</guid><description>
&lt;link rel="canonical" href="https://www.flood.io/blog/how-to-become-a-load-tester"&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="https://www.flood.io/blog/how-to-become-a-load-tester"&gt;Originally posted here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Load testing can be a pretty intimidating field to get into, but it&amp;rsquo;s easy to get started. Here are some concrete steps you can take to start learning how to load test from scratch.&lt;/p&gt;
&lt;p&gt;In this video, Flood co-founder Tim Koopmans and I teamed up at Tricentis User Conference 2020 to talk about the essential ingredients for load testing.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/_R2dmEmtO48?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="background-required-for-load-testing"&gt;Background required for load testing&lt;/h2&gt;
&lt;p&gt;Load testing can be quite technical. It involves not just the ability to use different programming languages to create load testing scripts but also familiarity with software engineering practices, DevOps, application infrastructure, site reliability, and networking. A good load tester needs to be able to understand the basics of how an application works and how different components interact with each other. It&amp;rsquo;s common for a load tester to work on applications employing a variety of technologies, so staying up to date with recent technological trends and switching seamlessly from one language to another, or from one platform to another, is of utmost importantance. This technical side of load testing might make you think that a load tester needs to have formal studies in computer science and several years of experience in software testing. The reality is that there are many load testers who stumbled into the field from wildly unexpected backgrounds. So you might think load testing looks like this:&lt;/p&gt;
&lt;p&gt;‍&lt;img src="https://nicolevanderhoeven.com/assets/how-to-become-a-load-tester01.jpg" alt="" loading="lazy" decoding="async"&gt;
&lt;em&gt;Photo by &lt;a href="https://unsplash.com/@wocintechchat?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Christina @ wocintechchat.com&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/meeting?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;And sometimes it does. But it more often looks something like this:&lt;/p&gt;
&lt;p&gt;‍&lt;img src="https://nicolevanderhoeven.com/assets/how-to-become-a-load-tester02.jpg" alt="" loading="lazy" decoding="async"&gt;
&lt;em&gt;Photo by &lt;a href="https://unsplash.com/@youxventures?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;You X Ventures&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/meeting?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;You see, load testing is an interdisciplinary field. So much of the job involves talking to people. Sometimes the requirements for a project are not clear, and someone needs to talk to the both the business and the developers to make sure that nonfunctional requirements are clarified. A load tester is a detective, tracing a request as it goes from one application component to another, coordinating with different application teams. A load tester is a scientist, using the scientific method to design experiments that yield the results. A load tester is a statistician, making sense of a jumble of data and seeking correlations between variables. A load tester is a public speaker. Even when the actual load testing has been completed and the report has been sent, a load tester makes sure all stakeholders understand the report so that the results can be used to make meaningful changes to improve application performance. All these tasks require a mishmash of skills and competencies that can be difficult to find in just the field of computer science.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s take our backgrounds as anecdotal examples.&lt;/p&gt;
&lt;p&gt;Tim grew up and currently lives in a small country town in Australia, and he joined the military straight after school. He later developed a love of automating things, which led him first to use tools like perl to scrape websites and try to win bids with early versions of ebay, and then later to starting a performance engineering consulting career and co-founding Flood itself.&lt;/p&gt;
&lt;p&gt;I, Nicole, grew up in Metro Manila in the Philippines (which has 14,000 more people per km2 than Mumbai does). I learned English as a foreign language in school, and I have a university degree in Economics. When I discovered load testing, I had a job in a completely different field– I was working for an airline and making sure engine components were properly maintained and repaired. My love for gadgets and technology took me down an 8-year rabbit hole involving doing performance consulting for clients across a variety of industries in Australia and the Netherlands. At Flood, I help customers around the world improve their application performance.&lt;/p&gt;
&lt;p&gt;As you can see, Tim and I came from very different backgrounds and different parts of the world. Neither of us knew what load testing even was when we started working. Neither of us got formal instruction in load testing. But somehow, we still both ended up becoming load testers at Flood.&lt;/p&gt;
&lt;h2 id="reasons-to-become-a-load-tester"&gt;Reasons to become a load tester&lt;/h2&gt;
&lt;p&gt;So why become a load tester? Here are some practical reasons.&lt;/p&gt;
&lt;h3 id="load-testing-is-cool"&gt;Load testing is cool&lt;/h3&gt;
&lt;p&gt;A little-known fact about load testing is that it can be really satisfying to be involved in big-name projects that end up going live.&lt;/p&gt;
&lt;p&gt;You may have heard of Flood. But even if you haven’t, we’re sure you&amp;rsquo;re familiar with the results of load testing done on Flood. In the last few years, we have been helping Hotstar, one of the largest streaming services in the world, load test their systems in preparation for the Indian Premier League.&lt;/p&gt;
&lt;p&gt;Hotstar uses an open-source tool that we support, Gatling, to create scripts to simulate users tuning in to watch cricket games. Then, they use Flood to create a “Game Day” simulation. They scale up those load tests and run 5 million users on thousands of machines in the cloud. We help them coordinate execution, spot problems quickly with real-time results from all those machines while the test is still running, and identify bottlenecks so that they don’t occur in production, when India’s playing.&lt;/p&gt;
&lt;p&gt;As a load tester, you&amp;rsquo;ll definitely be working with brands you recognize and love.&lt;/p&gt;
&lt;h3 id="load-testing-can-pay-well"&gt;Load testing can pay well&lt;/h3&gt;
&lt;p&gt;‍&lt;img src="https://nicolevanderhoeven.com/assets/how-to-become-a-load-tester03.png" alt="" loading="lazy" decoding="async"&gt;
&lt;em&gt;Source: &lt;a href="https://www.payscale.com/research/IN/Job=Software_Tester/Salary"&gt;Payscale&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;‍&lt;img src="https://nicolevanderhoeven.com/assets/how-to-become-a-load-tester04.png" alt="" loading="lazy" decoding="async"&gt;
&lt;em&gt;Source: &lt;a href="https://www.payscale.com/research/IN/Job=Performance_Engineer/Salary"&gt;Payscale&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I said this would be a practical list, right?&lt;/p&gt;
&lt;p&gt;Here are 261,768 practical reasons. The average performance engineer’s salary is 71% more than that of an average software tester in India, according to Payscale.com. We all know that money isn’t everything, but this is a clear signal from the market about the importance of performance-related skills. Adding load testing to your CV as a tester makes you more attractive to employers. It’s a great way to differentiate yourself in an over-saturated market.&lt;/p&gt;
&lt;h3 id="load-testing-can-literally-take-you-places"&gt;Load testing can literally take you places&lt;/h3&gt;
&lt;p&gt;‍&lt;img src="https://nicolevanderhoeven.com/assets/how-to-become-a-load-tester05.png" alt="" loading="lazy" decoding="async"&gt;
&lt;em&gt;Source: &lt;a href="https://twitter.com/shamim_j"&gt;Shamim&lt;/a&gt; from &lt;a href="https://www.flood.io/blog/inside-the-career-of-a-digital-nomad-is-a-life-on-the-road-right-for-you"&gt;Flood&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Then there are the side benefits of being in load testing. The photos above are real ones from the Flood team. That’s me on the upper left, exploring a castle in Belgrade, Serbia, and that’s Tim in the bottom right, taking a photo in San Francisco, USA.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.flood.io/blog/inside-the-career-of-a-digital-nomad-is-a-life-on-the-road-right-for-you"&gt;We’re a fully distributed team on Flood&lt;/a&gt;, which means we can work from anywhere. Flood is a web app, so you don’t need to install anything– I’ve been known to start load tests from my iPad in a café. Load testing on the cloud frees you from being tied to running tests from the office. You can start load generators when you need them and shut them down when you don’t– all from a web browser. It’s a job that can come with a great work/life balance, if you find the right company.&lt;/p&gt;
&lt;p&gt;Load testing can also be a great way to move to another country. It’s what’s allowed me to move to other countries– twice. In Australia, the average performance engineer’s salary is AU$108,053, or over 5.6 million rupee.&lt;/p&gt;
&lt;p&gt;‍&lt;img src="https://nicolevanderhoeven.com/assets/how-to-become-a-load-tester06.png" alt="" loading="lazy" decoding="async"&gt;
&lt;em&gt;Source: &lt;a href="https://www.payscale.com/research/AU/Job=Performance_Engineer/Salary"&gt;Payscale&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;So it’s clear that there are some pretty good reasons for you to become a load tester. I&amp;rsquo;m going to walk you through the practical steps to become a load tester. You may not be an expert by the end of this, but I hope I can convince you that you can get started in load testing whether your background looks like Tim’s or mine.&lt;/p&gt;
&lt;h3 id="load-testing-adds-real-value"&gt;Load testing adds real value&lt;/h3&gt;
&lt;p&gt;And the trite, but absolutely true reason: Everyone fails.&lt;/p&gt;
&lt;p&gt;As a load tester, you are a gatekeeper of quality. What you do directly affects revenue and customer experience.&lt;/p&gt;
&lt;p&gt;Performance is an aspect of software that is often overlooked, but it’s only becoming more important in a world where everything is going online. People are being born who have never known what it’s like not to have the internet, and consumers in general expect applications to be responsive and stable. Would-be customers who can’t get an e-commerce site to load within 3 seconds may switch to a competitor’s site, and we all know there are many of them. Performance-related outages can be seriously damaging to a company’s reputation, and social networking amplifies customer dissatisfaction by effectively giving everyone a megaphone to complain into.&lt;/p&gt;
&lt;p&gt;Software functionality is still important. However, if an online store goes live with no critical functional defects, but it fails when the 100th person logs into it, or it takes 10 seconds to load the homepage, can you really say that it was ready for production?&lt;/p&gt;
&lt;p&gt;Load testing is a crucial part of ensuring software quality, and quality is the responsibility of everyone on a team, even if the word “performance” isn’t in your job title.&lt;/p&gt;
&lt;h2 id="the-essential-ingredients-of-a-load-test"&gt;The essential ingredients of a load test&lt;/h2&gt;
&lt;p&gt;Load testing is like cooking a meal. This is one of Tim&amp;rsquo;s favorite dishes, aloo matar.&lt;/p&gt;
&lt;p&gt;‍&lt;img src="https://nicolevanderhoeven.com/assets/how-to-become-a-load-tester07.jpg" alt="" loading="lazy" decoding="async"&gt;
&lt;em&gt;Source: &lt;a href="https://www.cubesnjuliennes.com/aloo-matar-recipe/"&gt;Cubes n Juliennes&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;You can approach cooking as a science. There are recipes with a list of ingredients, a precise measurement of how much you need for each, and a procedure for creating the dish.&lt;/p&gt;
&lt;p&gt;But you can also look at cooking as an art. Cooking the same dish over and over again will give you an experience in working with those ingredients that a novice cook won’t have. There’s room in cooking for adding one ingredient, changing the quantity of another, or just trying something new.&lt;/p&gt;
&lt;p&gt;A master chef knows how to use both the science and the art to create something delicious. But you don’t HAVE to be at that level in order to cook.&lt;/p&gt;
&lt;p&gt;Anyone can cook. If you know how to follow a basic recipe, you may not create a masterpiece, but if you’re like me and you haven’t had lunch yet, you’ll still end up with something you’ll eat.&lt;/p&gt;
&lt;p&gt;So here’s the recipe for load testing.&lt;/p&gt;
&lt;p&gt;I prefer kadai paneer myself, but aloo matar requires, among other things, peas. And so does load testing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;P is Preparation&lt;/strong&gt;. To prepare for a load test, you need to get your ingredients ready. You need to decide what it is you want to test, why you’re testing it, and how. You write load testing scripts that will simulate real users as closely as possible.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;E is Execution&lt;/strong&gt;. This is when you do the actual cooking. You run your load tests and scale them up according to your requirements.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A is Analysis&lt;/strong&gt;. You figure out whether the dish you created is edible. You determine how your application servers responded during the load test, and decide if that’s acceptable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Preparation – Execution – Analysis.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="preparing-for-a-load-test"&gt;Preparing for a load test&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;“As far as the World Cup is concerned, it is a process. We don’t want to jump to the 50th floor straight away. We must start on the ground floor.” - Sachin Tendulkar, via &lt;a href="https://www.espncricinfo.com/story/_/id/22538610/world-cup-final-dream-tendulkar"&gt;ESPN&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Load testing doesn’t start with writing a script. Load testing starts with building a foundation for later tests.&lt;/p&gt;
&lt;p&gt;‍&lt;img src="https://nicolevanderhoeven.com/assets/how-to-become-a-load-tester08.png" alt="" loading="lazy" decoding="async"&gt;
&lt;em&gt;Source: &lt;a href="https://www.insidesport.co/cricket-sachin-tendulkar-comes-to-aid-of-ailing-ashraf-who-once-fixed-his-bats/"&gt;Inside Sport&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Part of that foundation is asking WHY. Why do you want to do a load test? Has there been a performance-related issue before? Are you trying to determine whether an application is ready to go live, or is it already live, and you just want to improve its performance? What type of application do you want to test?&lt;/p&gt;
&lt;p&gt;WHOM are you cooking for? I think you’d cook differently for yourself than you would for Sachin Tendulkar. What do your end users typically do on your site? Where do they come from?&lt;/p&gt;
&lt;p&gt;These are questions that need to be answered before you think about scripting. Here are some resource for planning your load tests:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.flood.io/blog/start-with-why-how-to-write-requirements-for-api-load-testing"&gt;Start with Why: How to write requirements for API load testing&lt;/a&gt;
&lt;a href="https://www.flood.io/blog/how-to-write-a-test-plan-for-load-testing"&gt;How to write a test plan for load testing&lt;/a&gt;
&lt;a href="https://guides.flood.io/ebooks/api-load-testing/scripting-an-api-load-test"&gt;Selecting a tool for load testing&lt;/a&gt;
Generating a load testing script without coding: &lt;a href="https://guides.flood.io/overview-of-flood/scripting-your-load-test"&gt;Getting Started with Test Builder&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="execution-of-a-load-test"&gt;Execution of a load test&lt;/h2&gt;
&lt;p&gt;So now we’re ready to start cooking. This is the Execution phase. You’ll need a machine to use as a load generator. Depending on the number of users you want to run with, you may need more than one machine. You might be tempted to run a load test on your laptop, or on a bunch of machines you have lying around, but that introduces new variables that may affect the results.&lt;/p&gt;
&lt;p&gt;‍&lt;img src="https://nicolevanderhoeven.com/assets/how-to-become-a-load-tester09.jpeg" alt="" loading="lazy" decoding="async"&gt;
&lt;em&gt;Source: &lt;a href="https://unsplash.com/@suicide_chewbacca?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Ashwini Chaudhary&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/indian-food?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Like any good cook, you’ll also need to make sure you have all your ingredients handy. In load testing, that means making sure your scripts and test data files are ready to be executed on every load generator.&lt;/p&gt;
&lt;p&gt;Both of these problems – provisioning a load generator and transferring files over to them – are solved pretty easily by running on the cloud using something like Flood.&lt;/p&gt;
&lt;p&gt;Designing and executing your load test&lt;/p&gt;
&lt;p&gt;Where should you run your load tests? A look at demand, hosted, and on-premise infrastructure&lt;/p&gt;
&lt;h2 id="analysis-of-results"&gt;Analysis of Results&lt;/h2&gt;
&lt;p&gt;The last part is Analysis.&lt;/p&gt;
&lt;p&gt;‍&lt;img src="https://nicolevanderhoeven.com/assets/how-to-become-a-load-tester10.jpeg" alt="" loading="lazy" decoding="async"&gt;
&lt;em&gt;Source: &lt;a href="https://www.finedininglovers.com/recipes/brunch/potato-pakoras-yogurt-sauce"&gt;Fine Dining Lovers&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This is a pretty crucial moment, because this is when you figure out whether what you cooked was delicious or not. Unfortunately, in load testing, it’s not always easy to tell how your test went. It’s like this photo of pakora (onion is my favorite kind). It’s kind of hard to say what expression that is in their faces. Is it disgust? Or is the pakora so yummy that they just can’t wait to eat more?&lt;/p&gt;
&lt;p&gt;Load testing typically generates a LOT of data. You’d have to go copy every single file from every load generator you used. But can you imagine the hundreds of load generators that Hotstar used? Of course they didn’t manually copy those files. Instead, they used Flood.&lt;/p&gt;
&lt;p&gt;On Flood, we show real-time graphs as you’re running the test so that you can tell immediately whether transactions are failing or whether a server has stopped responding.&lt;/p&gt;
&lt;p&gt;After the test, you can also compare this data to previous tests to spot trends, or even create your own dashboards using an analytics engine.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://guides.flood.io/results-analysis/metrics-during-test"&gt;Real-time metrics during your load test&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://guides.flood.io/results-analysis/archived-results"&gt;Downloading results and logs after the test&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="is-that-it"&gt;Is that it?&lt;/h2&gt;
&lt;p&gt;You’ve prepared for a load test, you’ve executed a load test, and you’ve analysed the results from the load test. Congratulations, you’re a load tester! By following this recipe, you’re already doing better than many people, and you’re certainly doing a lot better than those who do not run any load tests at all.&lt;/p&gt;
&lt;p&gt;The cool thing about load testing, though, is that this is just the beginning. There’s always room for improvement.&lt;/p&gt;
&lt;p&gt;‍&lt;img src="https://nicolevanderhoeven.com/assets/how-to-become-a-load-tester11.jpeg" alt="" loading="lazy" decoding="async"&gt;
&lt;em&gt;Source: &lt;a href="https://popupcity.net/observations/dabbawalla-hot-lunch-delivery-by-mumbais-fastest/"&gt;Pop Up City&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Dabbawallas are people who deliver hot lunches, and while the concept is not new, the implementation in India is particularly interesting.&lt;/p&gt;
&lt;p&gt;For these dabbawallas, having the meals prepared is not the end of the job. Once the food is ready, it needs to be packed into lunchboxes, picked up, separated according to destination, put on trains, and delivered. Later, the empty lunchboxes are picked up, and the system works in reverse.&lt;/p&gt;
&lt;p&gt;It turns out that this is actually a pretty sophisticated system. In fact, it’s been estimated that only one tiffin every two months is not delivered. That’s equivalent to a &lt;a href="https://www.bbc.com/future/article/20170114-the-125-year-old-network-that-keeps-mumbai-going"&gt;Six-Sigma quality rating of 99.9999999%&lt;/a&gt; (that’s nine nines) or more.&lt;/p&gt;
&lt;p&gt;Dabbawallas didn’t get that rating just by delivering quickly. They did it by being consistent and reliable. They did it by having a process.&lt;/p&gt;
&lt;p&gt;Once you see the benefits of running a load test, you may also start to understand that the real value of load testing is not in a test that you run once whenever you think of it. Imagine having the benefits of a load test tied to your development process, so that it is automated.&lt;/p&gt;
&lt;p&gt;As an advanced topic, &lt;a href="https://www.flood.io/blog/load-testing-in-devops-pipelines-with-azure-and-flood"&gt;adding your load testing&lt;/a&gt; to your team&amp;rsquo;s Continuous Integration/Continuous Development pipelines such as sets up a repeatable process that reaps benefits far into the future, not just whenever official load testing activities are carried out.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://guides.flood.io/continuous-integration/what-is-continuous-integration"&gt;Continuous Integration with Flood&lt;/a&gt;: Integrating Travis CI, Circle CI, and Jenkins&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;So that’s the recipe for becoming a load tester.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Preparation – Execution – Analysis.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In &lt;strong&gt;Preparation&lt;/strong&gt;, you determine why you’re testing and what tool best fits your needs. We showed you how to use Element, but there are many open source tools out there. Don’t get overwhelmed by scripting– a lot of times it can just mean replacing a URL with the one YOU want to test.&lt;/p&gt;
&lt;p&gt;In &lt;strong&gt;Execution&lt;/strong&gt;, you run a baseline test that will serve as a point of comparison for future testing, choose the number of users and the number of regions you want, and then you run your test. Running on the cloud is the easiest (and usually cheapest) way to get started.&lt;/p&gt;
&lt;p&gt;In &lt;strong&gt;Analysis&lt;/strong&gt;, you view the results in real-time, compare historical performance to see trends, and share reports to stakeholders so that your team can make changes to your application.&lt;/p&gt;
&lt;p&gt;We also talked about the bonus topic of &lt;strong&gt;CI/CD&lt;/strong&gt; and how you can incorporate load testing into your pipeline to get a continuous feedback during your development cycle.&lt;/p&gt;
&lt;p&gt;Tim and I started in very different places and had different experiences before we discovered load testing. But eventually, we ended up on the same path, and that’s what we’ve outlined for you here. We hope that this convinces you that load testing doesn’t have to be complicated.&lt;/p&gt;
&lt;p&gt;You absolutely don’t need to be an expert to run a load test. Even if you don’t think you’ll get all these steps right, a load test that is less than ideal is still better than no load testing at all.&lt;/p&gt;
&lt;p&gt;In the end, anyone can be a load tester with the right attitude and the right tools.&lt;/p&gt;
&lt;h2 id="learning-about-load-testing"&gt;Learning about load testing&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.goodreads.com/book/show/1681559.High_Performance_Web_Sites"&gt;High Performance Websites&lt;/a&gt; book by Steve Souders&lt;/p&gt;
&lt;p&gt;Ministry of Testing/PerfBytes &lt;a href="https://www.ministryoftesting.com/dojo/lessons/a-quick-start-guide-to-learning-performance-testing"&gt;list of resources&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.perfbytes.com/"&gt;PerfBytes podcast&lt;/a&gt; (EN and ES)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://guildconferences.com/conference/perfguild-2020/"&gt;PerfGuild conferences&lt;/a&gt; by Joe Colantonio&lt;/p&gt;
&lt;p&gt;Señor Performo’s YouTube Channel: &lt;a href="https://www.youtube.com/channel/UCO-RlGccAUQnMqTaBkvUJhQ"&gt;Señor Performo ENG&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Scott Moore’s &lt;a href="https://www.youtube.com/watch?v=9H2GSGvGwqQ&amp;amp;list=PLXRCdih3vTUEFz1TVyP7RRqEEk__CYGoB"&gt;Performance Tour&lt;/a&gt; on YouTube&lt;/p&gt;</description></item><item><title>Lifting the lid on performance testing</title><link>https://nicolevanderhoeven.com/blog/20200924-testing-talks-online/</link><pubDate>Thu, 24 Sep 2020 23:38:56 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20200924-testing-talks-online/</guid><description>&lt;p&gt;I joined other performance and testing engineers in this online panel at Testing Talks Online about load testing best practices.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/pHQ4FwdwGGk?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;From the &lt;a href="https://www.testingtalks.com.au/presentations/lifting-the-lid-on-performance-testing-best-practices-from-leading-companies"&gt;Testing Talks Online site&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Performance testing is an essential part of the quality assurance function. However, across the industry the great majority of companies still struggle to master and execute a successful performance testing strategy that produces measurable results.
In this panel discussion, Cameron Bradley will host some of the best performance engineers in the world. The panel will discuss how we as quality assurance experts and performance engineers can better understand performance testing, the value of performance testing and how world leaders are approaching and succeeding with performance testing as part of the delivery life cycle.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Hybrid load testing: the best of testing using protocols and real browsers</title><link>https://nicolevanderhoeven.com/blog/20200602-hybrid-load-testing/</link><pubDate>Tue, 02 Jun 2020 22:21:11 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20200602-hybrid-load-testing/</guid><description>&lt;p&gt;At &lt;a href="https://guildconferences.com/speaker/nicole-hoeven/"&gt;PerfGuild 2020&lt;/a&gt;, I spoke about hybrid load testing and how to mix two different approaches to load testing: protocol-based and browser-based.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/20200602-01.jpeg" alt="" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Here’s the unlisted video from that presentation:&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/KwlU6unOD9E?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>TestCon Moscow 2019: Dismantling Cognitive Biases</title><link>https://nicolevanderhoeven.com/blog/20190403-testcon-moscow-2019/</link><pubDate>Wed, 03 Apr 2019 23:14:31 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20190403-testcon-moscow-2019/</guid><description>
&lt;link rel="canonical" href="https://www.flood.io/blog/dismantling-cognitive-biases-in-performance-testing"&gt;
&lt;p&gt;&lt;em&gt;Originally posted &lt;a href="https://www.flood.io/blog/dismantling-cognitive-biases-in-performance-testing"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Developers and testers alike prefer to think of themselves as entirely rational beings, because both software development and software testing do require systematic rigor and logical reasoning. However, the reality is that the human element still comes into play when building and testing software.&lt;/p&gt;
&lt;p&gt;In &lt;a href="https://testconf.ru/2019/en/nicole-van-der-hoeven/index.html"&gt;this year’s TestCon conference&lt;/a&gt;, held in Moscow, Russia, I delivered a talk on how cognitive biases affect web performance outcomes.&lt;/p&gt;
&lt;p&gt;In the talk, I discuss:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;two types of thinking: fast thinking and slow thinking (from Daniel Kahneman&amp;rsquo;s book &lt;a href="https://www.amazon.com/Thinking-Fast-Slow-Daniel-Kahneman/dp/0374533555"&gt;Thinking, Fast and Slow&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;how to influence the sentence duration that judges give perpetrators&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;what cognitive biases are and how they can affect performance testing results&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;a real-life production incident that occurred on Flood and how our team&amp;rsquo;s cognitive biases got in the way of its resolution&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;what to do to avoid cognitive biases when testing software&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here&amp;rsquo;s the video of my full talk:&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/qld0kgRjFfw?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;Download the presentation &lt;a href="https://nicolevanderhoeven.com/assets/20190403-01.pdf"&gt;in PDF format&lt;/a&gt;.&lt;/p&gt;</description></item></channel></rss>