Files
nexus/sreweekly/articles/528/02-the-pulse-quitting-spotify-podcasts-over-reliability.html

562 lines
52 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>The Pulse: Quitting Spotify Podcasts over reliability - The Pragmatic Engineer</title>
<meta name="HandheldFriendly" content="True" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" href="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w256h256/2024/06/The-Pragmatic-Engineer-Blog-Publication-Icon--Logo-.png">
<link rel="stylesheet" type="text/css" href="https://blog.pragmaticengineer.com/assets/css/screen.css?v=2YkU7oqFSRPn32Jc" />
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Merriweather:300,700,700italic,300italic|Open+Sans:700,400" />
<meta name="description" content="Spotify’s podcast platform has become chronically unreliable since the company’s leadership started boasting about AI adoption. Competitors haven’t had similar issues, so I offboarded from Spotify.">
<link rel="icon" href="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w256h256/2024/06/The-Pragmatic-Engineer-Blog-Publication-Icon--Logo-.png" type="image/png">
<link rel="canonical" href="https://blog.pragmaticengineer.com/the-pulse-quitting-spotify-podcasts-over-reliability/">
<meta name="referrer" content="no-referrer-when-downgrade">
<meta property="og:site_name" content="The Pragmatic Engineer">
<meta property="og:type" content="article">
<meta property="og:title" content="The Pulse: Quitting Spotify Podcasts over reliability">
<meta property="og:description" content="Spotify’s podcast platform has become chronically unreliable since the company’s leadership started boasting about AI adoption. Competitors haven’t had similar issues, so I offboarded from Spotify.">
<meta property="og:url" content="https://blog.pragmaticengineer.com/the-pulse-quitting-spotify-podcasts-over-reliability/">
<meta property="article:published_time" content="2026-07-30T15:51:38.000Z">
<meta property="article:modified_time" content="2026-07-30T15:51:38.000Z">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="The Pulse: Quitting Spotify Podcasts over reliability">
<meta name="twitter:description" content="Spotify’s podcast platform has become chronically unreliable since the company’s leadership started boasting about AI adoption. Competitors haven’t had similar issues, so I offboarded from Spotify.">
<meta name="twitter:url" content="https://blog.pragmaticengineer.com/the-pulse-quitting-spotify-podcasts-over-reliability/">
<meta name="twitter:image" content="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2023/05/Big-Tech---startups---from-the-inside.png">
<meta name="twitter:label1" content="Written by">
<meta name="twitter:data1" content="Ivan Klaric">
<meta name="twitter:site" content="@GergelyOrosz">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"publisher": {
"@type": "Organization",
"name": "The Pragmatic Engineer",
"url": "https://blog.pragmaticengineer.com/",
"logo": {
"@type": "ImageObject",
"url": "https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2015/12/pragmatic-engineer-profile-image.png"
}
},
"author": {
"@type": "Person",
"name": "Ivan Klaric",
"url": "https://blog.pragmaticengineer.com/author/ivan/",
"sameAs": []
},
"headline": "The Pulse: Quitting Spotify Podcasts over reliability",
"url": "https://blog.pragmaticengineer.com/the-pulse-quitting-spotify-podcasts-over-reliability/",
"datePublished": "2026-07-30T15:51:38.000Z",
"dateModified": "2026-07-30T15:51:38.000Z",
"description": "Spotify’s podcast platform has become chronically unreliable since the company’s leadership started boasting about AI adoption. Competitors haven’t had similar issues, so I offboarded from Spotify.",
"mainEntityOfPage": "https://blog.pragmaticengineer.com/the-pulse-quitting-spotify-podcasts-over-reliability/"
}
</script>
<meta name="generator" content="Ghost 6.63">
<link rel="alternate" type="application/rss+xml" title="The Pragmatic Engineer" href="https://blog.pragmaticengineer.com/rss/">
<script defer src="https://cdn.jsdelivr.net/ghost/portal@~2.71/umd/portal.min.js" data-i18n="true" data-ghost="https://blog.pragmaticengineer.com/" data-key="e19be39046770b14a9d5caceb0" data-api="https://pragmatic-engineer.ghost.io/ghost/api/content/" data-locale="en" crossorigin="anonymous"></script><style id="gh-members-styles">.gh-post-upgrade-cta-content,
.gh-post-upgrade-cta {
display: flex;
flex-direction: column;
align-items: center;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
text-align: center;
width: 100%;
color: #ffffff;
font-size: 16px;
}
.gh-post-upgrade-cta-content {
border-radius: 8px;
padding: 40px 4vw;
}
.gh-post-upgrade-cta h2 {
color: #ffffff;
font-size: 28px;
letter-spacing: -0.2px;
margin: 0;
padding: 0;
}
.gh-post-upgrade-cta p {
margin: 20px 0 0;
padding: 0;
}
.gh-post-upgrade-cta small {
font-size: 16px;
letter-spacing: -0.2px;
}
.gh-post-upgrade-cta a {
color: #ffffff;
cursor: pointer;
font-weight: 500;
box-shadow: none;
text-decoration: underline;
}
.gh-post-upgrade-cta a:hover {
color: #ffffff;
opacity: 0.8;
box-shadow: none;
text-decoration: underline;
}
.gh-post-upgrade-cta a.gh-btn {
display: block;
background: #ffffff;
text-decoration: none;
margin: 28px 0 0;
padding: 8px 18px;
border-radius: 4px;
font-size: 16px;
font-weight: 600;
}
.gh-post-upgrade-cta a.gh-btn:hover {
opacity: 0.92;
}</style>
<script defer src="https://cdn.jsdelivr.net/ghost/sodo-search@~1.8/umd/sodo-search.min.js" data-key="e19be39046770b14a9d5caceb0" data-styles="https://cdn.jsdelivr.net/ghost/sodo-search@~1.8/umd/main.css" data-sodo-search="https://pragmatic-engineer.ghost.io/" data-locale="en" crossorigin="anonymous"></script>
<link href="https://blog.pragmaticengineer.com/webmentions/receive/" rel="webmention">
<script defer src="/public/cards.min.js?v=ShRHxgy4po8zN-Wf"></script>
<link rel="stylesheet" type="text/css" href="/public/cards.min.css?v=WwnU9jw5ancNC8Gc">
<script defer src="/public/member-attribution.min.js?v=AKG4hWena9j3yX3I"></script>
<script defer src="/public/ghost-stats.min.js?v=vFcCUf6ZQ0Hyhc8h" data-stringify-payload="false" data-datasource="analytics_events" data-storage="localStorage" data-host="https://blog.pragmaticengineer.com/.ghost/analytics/api/v1/page_hit" tb_site_uuid="39f85cc7-8637-40fc-a57c-f45754453717" tb_post_uuid="20064afd-b98a-4fc0-8491-14a98d8e768b" tb_post_type="post" tb_member_uuid="undefined" tb_member_status="undefined" tb_gift_link=""></script><style>:root {--ghost-accent-color: #15171A;}</style>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.17.1/themes/prism.min.css" />
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.17.1/plugins/line-numbers/prism-line-numbers.min.css" />
<style>
pre[class*=language-] {
margin: 1.75em 0;
}
</style>
</head>
<body class="post-template nav-closed">
<div class="nav mobile">
<h3 class="nav-title">Menu</h3>
<a href="#" class="nav-close">
<span class="hidden">Close</span>
</a>
<ul>
<li class="nav-home elusive-icon Home" role="presentation"><a href="https://blog.pragmaticengineer.com/">Home</a></li>
<li class="nav-newsletter elusive-icon Newsletter" role="presentation"><a href="https://newsletter.pragmaticengineer.com/about">Newsletter</a></li>
<li class="nav-podcast elusive-icon Podcast" role="presentation"><a href="https://pragmaticpodcast.com">Podcast</a></li>
<li class="nav-sponsors elusive-icon Sponsors" role="presentation"><a href="https://blog.pragmaticengineer.com/sponsors/">Sponsors</a></li>
<li class="nav-ethics-statement elusive-icon Ethics statement" role="presentation"><a href="https://blog.pragmaticengineer.com/ethics-statement/">Ethics statement</a></li>
<li class="nav-now elusive-icon Now" role="presentation"><a href="https://blog.pragmaticengineer.com/now/">Now</a></li>
<li class="nav-my-books elusive-icon My Books" role="presentation"><a href="https://blog.pragmaticengineer.com/books/">My Books</a></li>
<li class="nav-early-trends elusive-icon Early trends" role="presentation"><a href="https://blog.pragmaticengineer.com/early-trends/">Early trends</a></li>
<li class="nav-investing elusive-icon Investing" role="presentation"><a href="https://blog.pragmaticengineer.com/investing/">Investing</a></li>
<li class="nav-contact-me elusive-icon Contact me" role="presentation"><a href="https://blog.pragmaticengineer.com/contact/">Contact me</a></li>
<li class="nav-about elusive-icon About" role="presentation"><a href="https://blog.pragmaticengineer.com/about/">About</a></li>
<li class="nav-rss-feed elusive-icon RSS Feed" role="presentation"><a href="https://blog.pragmaticengineer.com/feed/">RSS Feed</a></li>
<li class="nav-bluesky elusive-icon bluesky" role="presentation"><a href="https://bsky.app/profile/gergely.pragmaticengineer.com/">bluesky</a></li>
<li class="nav-twitter elusive-icon twitter" role="presentation"><a href="http://twitter.com/GergelyOrosz">twitter</a></li>
<li class="nav-youtube elusive-icon youtube" role="presentation"><a href="https://www.youtube.com/@pragmaticengineer">youtube</a></li>
<li class="nav-linkedin elusive-icon linkedin" role="presentation"><a href="http://www.linkedin.com/in/gergelyorosz">linkedin</a></li>
</ul>
<a class="subscribe-button icon-feed" href="https://blog.pragmaticengineer.com/rss/">Subscribe</a>
</div>
<span class="nav-cover mobile"></span>
<div class="nav-desktop">
<ul class="sidebar-nav">
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/" class="elusive-icon Home" rel="me">Home</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://newsletter.pragmaticengineer.com/about" class="elusive-icon Newsletter" rel="me">Newsletter</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://pragmaticpodcast.com" class="elusive-icon Podcast" rel="me">Podcast</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/sponsors/" class="elusive-icon Sponsors" rel="me">Sponsors</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/ethics-statement/" class="elusive-icon Ethics statement" rel="me">Ethics statement</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/now/" class="elusive-icon Now" rel="me">Now</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/books/" class="elusive-icon My Books" rel="me">My Books</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/early-trends/" class="elusive-icon Early trends" rel="me">Early trends</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/investing/" class="elusive-icon Investing" rel="me">Investing</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/contact/" class="elusive-icon Contact me" rel="me">Contact me</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/about/" class="elusive-icon About" rel="me">About</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/feed/" class="elusive-icon RSS Feed" rel="me">RSS Feed</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://bsky.app/profile/gergely.pragmaticengineer.com/" class="elusive-icon bluesky" rel="me">bluesky</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="http://twitter.com/GergelyOrosz" class="elusive-icon twitter" rel="me">twitter</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://www.youtube.com/@pragmaticengineer" class="elusive-icon youtube" rel="me">youtube</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="http://www.linkedin.com/in/gergelyorosz" class="elusive-icon linkedin" rel="me">linkedin</a>
</li>
</ul>
</div>
<div class="site-wrapper">
<header class="main-header post-head no-cover">
<nav class="main-nav clearfix">
<a class="blog-logo" href="https://blog.pragmaticengineer.com"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2015/12/pragmatic-engineer-profile-image.png" alt="The Pragmatic Engineer" /></a>
<a class="menu-button icon-menu" href="#"><span class="word">Menu</span></a>
</nav>
</header>
<main class="content" role="main">
<article class="post no-image">
<header class="post-header">
<h1 class="post-title">The Pulse: Quitting Spotify Podcasts over reliability</h1>
</header>
<section class="post-content" id="content">
<!--
<p><em>Before we start: I'm hosting the first-ever <strong><a href="https://www.pragmaticsummit.com/">The Pragmatic Summit</a></strong> on 11 February, 2026, in San Francisco. Join 400 top engineers and leaders as we answer the question: How is AI reshaping software engineering, dev workflows, and the modern engineering stack?
Spaces are limited - don't miss out! <strong><a href="https://www.pragmaticsummit.com/">Buy tickets here</a></strong>.
</em></p>
-->
<p><em>Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover Big Tech and startups through the lens of senior engineers and engineering leaders. Today, we cover one out of four topics of </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-quitting-spotify-podcasts?ref=blog.pragmaticengineer.com" rel="noreferrer"><em>last week's The Pulse issue</em></a><em>. Full subscribers received the article below seven days ago. If you’ve been forwarded this email, you can </em><a href="https://newsletter.pragmaticengineer.com/about?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em>subscribe here</em></a><em>.</em></p><p>You can no longer watch The Pragmatic Engineer Podcast as <em>video</em> in the Spotify app (only as audio) because I have quit publishing video on that streaming platform. This comes after I decided that reliability takes a back seat within that team – and across much of Spotify. Unlike on other platforms such as YouTube, Apple Podcasts, and Substack, I’ve recently encountered a series of reliability issues around Spotify being unable to process video episodes. Even though I enjoyed a direct link with the Podcasts team there, things haven’t improved.</p><p>So from now, I will no longer be publishing video episodes on Spotify. You can find videos of my in-depth chats with guests only <a href="https://www.youtube.com/@pragmaticengineer?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">on YouTube</a>. <em>Apologies for any inconvenience this change causes! </em>Audio episodes of the podcast can still be found <a href="https://open.spotify.com/show/2Bho9xCbOQMWMJ7UKmqCzD?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">on Spotify</a> via the RSS podcast feed hosted <a href="https://pragmaticpodcast.com/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">on Substack</a>.</p><p>Honestly, the decision to quit the streaming giant wasn’t hard, and I reckon there’s a point here about the risk of deprioritizing reliable operations at major companies in order to push on things like AI adoption, as Spotify seems to be doing.</p><p>Some context: for the first two years of The Pragmatic Engineer Podcast, it was published on three podcast platforms:</p><ol><li><strong>Substack’s podcast platform (audio)</strong>: this is where the <a href="https://api.substack.com/feed/podcast/458709.rss" rel="noopener noreferrer nofollow">“master” RSS feed</a> is served to the likes of Apple Podcasts, the web, Overcast, Pocket Casts, etc</li><li><strong>YouTube (video):</strong> video episodes uploaded individually</li><li><strong>Spotify (video + audio): </strong>every video episode<em> was </em>uploaded individually and then served as video or audio episodes from the platform.</li></ol><p>As someone hosting a podcast, there are good reasons to bother doing three separate uploads:</p><ul><li><strong>Most podcast platforms don’t support video.</strong> There will always be a need for a platform that serves the master RSS feed for audio versions while the video ones are elsewhere.</li><li><strong>YouTube doesn’t integrate with anything. </strong>YouTube is the leader in video podcast distribution, and uploading there directly makes sense.</li><li><strong>I had a direct line to the Spotify team, which was a big plus. </strong>Starting out the podcast, I had the unusual privilege of contact with the podcasts team, thanks to the newsletter gaining a decently-size audience. I was persuaded to take the plunge with them.</li></ul><p>For eighteen months, nothing <em>major</em> went wrong. The admin portal for podcast publishers (called ‘Spotify Creators’) was pretty wonky; it gave intermittent errors, and was unable to remember me when I signed in, so, each Wednesday, I’d have to sign in with a code sent to my email to publish an episode.</p><p>But overall, things worked, until it all went suddenly downhill…</p><h3 id="unable-to-publish-spotify-podcast-episodes-3-out-of-5-weeks"><strong>Unable to publish Spotify podcast episodes 3 out of 5 weeks</strong></h3><p>From late May, I did not include links to Spotify on new episode announcements because their podcasts product or platform seemingly had outages every time one published on Wednesdays at around 9am PST / 12pm EST / 6pm EU time.</p><p><strong>Outage #1 (20 May): podcast publishing broke</strong>, my episode would not process on Spotify for 2+ hours. When uploading a video file to Spotify, there’s a processing pipeline that runs to create chunks of the podcast in different video and audio formats. This pipeline appeared to stop running, meaning new episodes were not published.</p><p>It was not just the publishing that broke: the Creator portal looked absurd, with NaN% values everywhere, during the outage:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://substackcdn.com/image/fetch/$s_!dFJF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8041085f-fc43-4b61-9e99-47d7e11e5a84_1752x1058.png" class="kg-image" alt="" loading="lazy" width="1456" height="879"><figcaption><i><em class="italic" style="white-space: pre-wrap;">During outage #1</em></i></figcaption></figure><p>I emailed the Spotify team to alert them about the outage and also <a href="https://x.com/GergelyOrosz/status/2057127878517526860?s=20&ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">complained online</a>. I got a response, confirming the outage and pledging to do better:</p><blockquote>“The issue was in one of our podcast publishing metadata pipelines. A small subset of episodes completed normal media processing but then missed a downstream publish update because a newly introduced validation signal was not correctly wired into the logic that wakes up the publishing path. In simpler terms: the episode could become eligible to publish, but the final propagation step was not reliably triggered for that class of episodes.<br><br>We identified the root cause, deployed a fix, and reprocessed the affected episodes with all-clear called early this morning. We’re also tightening the system so that fields used for publishing eligibility cannot be added without also triggering the relevant downstream updates.<br><br>Separately, we’re reviewing how partial creator-impacting publishing delays are surfaced, because even when this is not a broad platform outage, it is still a bad experience for publishers like yourself.<br><br>Apologies again that you hit this. It was a real bug, not a wide outage, but it hit some of our most relevant creators.”</blockquote><p><strong>Outage #2 (17 June): Spotify down. </strong>Four weeks later, when attempting to publish a video episode, all of Spotify went down for many users, <a href="https://x.com/GergelyOrosz/status/2067285989710582271?s=20&ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">including myself.</a></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://substackcdn.com/image/fetch/$s_!nelU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fece389ea-6dd6-45c8-b269-718ee5fc0098_1100x620.png" class="kg-image" alt="" loading="lazy" width="1100" height="620"><figcaption><span style="white-space: pre-wrap;">Spotify’s web player on 17 June</span></figcaption></figure><p>Spotify does not maintain a status page, so it’s impossible to tell how widespread the outage was. I didn’t include a Spotify link in that week’s announcement either.</p><p><strong>Outage #3 (24 June): podcast publishing broke – again. </strong>Outage #3 in five weeks; <em>deja vu</em>. This time, it was episode publishing not working, yet again. After waiting two hours for the episode to publish on Spotify, I yet again sent out the announcement with no Spotify link.</p><p>I also emailed the Spotify Podcasts team, who confirmed the outage. I said I was considering stopping publishing video episodes, and to switch to audio-only publishing (which means pointing Spotify to my master RSS feed.) I said that an apology was appreciated but it wasn’t enough to make it worth publishing video episodes there.</p><p><strong>I also asked for the incident review because I had the feeling that reliability was not all that important on this podcast product. </strong>For the first outage I got a vague description of what happened, and promises of improvements that were never done – e.g. during this second outage, there was no improved communications to creators, which I was told would happen, after outage #1.</p><p>Internally, Spotify’s team surely conducted an incident review as per usual, so I figured I’d hear back in about two weeks’ time, and assumed a reply would be forthcoming because I’d made clear I was ready to leave Spotify Podcasts if reliability didn’t improve.</p><h3 id="no-incident-review-three-weeks-later-so-i-quit-spotify"><strong>No incident review three weeks later, so I quit Spotify</strong></h3><p>The incident review had never arrived as promised by three weeks later, even though there had been time for it to be completed. It was yet another sign of a platform that has become unreliable. Also, the creator portal occasionally threw up this error:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://substackcdn.com/image/fetch/$s_!Y77E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e90510f-31f3-4ea4-a0d5-b84827c929a0_868x470.png" class="kg-image" alt="" loading="lazy" width="868" height="470"><figcaption><i><em class="italic" style="white-space: pre-wrap;">Spotify’s creator portal on 16 July</em></i></figcaption></figure><p>I checked my Spotify stats: stream plays had been trending downwards unsurprisingly, given the ongoing outages, while the other podcast platforms didn’t show the decline.<strong> </strong>It made me decide “enough is enough” and to move off Spotify.</p><p>Staying on their platform depended on seeing an incident review, but they didn’t prioritize transparency, still had no status page, and nobody had built a feature for episode-processing status like YouTube has had for years. So, I pulled the plug and left:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://substackcdn.com/image/fetch/$s_!fWEQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4477d3a8-1d2b-4434-80d8-f8eb7165562a_1358x930.png" class="kg-image" alt="" loading="lazy" width="1358" height="930"><figcaption><span style="white-space: pre-wrap;">Offboarding from Spotify’s (video) podcasts product</span></figcaption></figure><p>After I made the switch away from Spotify, the platform’s creators portal became buggier than ever, as in these examples:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://substackcdn.com/image/fetch/$s_!cc6F!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0e0887-73fe-4c4b-9ca0-76460aecca8f_2048x1150.png" class="kg-image" alt="" loading="lazy" width="1456" height="818"><figcaption><span style="white-space: pre-wrap;">My Creators page after I changed the source of my podcasts to the master RSS feed</span></figcaption></figure><p>Comments disappeared:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://substackcdn.com/image/fetch/$s_!Kclv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F182ad478-188d-4f67-ab5b-962fa3196d3b_2048x1546.png" class="kg-image" alt="" loading="lazy" width="1456" height="1099"><figcaption><i><em class="italic" style="white-space: pre-wrap;">My show had no comments, suddenly</em></i></figcaption></figure><p>… even though other parts of the UI showed dozens of comments:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://substackcdn.com/image/fetch/$s_!ks8o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ef9802b-f2d7-466d-8c4d-b59c1972be91_2048x1190.png" class="kg-image" alt="" loading="lazy" width="1456" height="846"><figcaption><i><em class="italic" style="white-space: pre-wrap;">Zero comments, yet episodes with comments</em></i></figcaption></figure><p>Episode links directed to 404 pages:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://substackcdn.com/image/fetch/$s_!Keep!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c237ccb-e0cb-4bac-903d-83da831ea9e9_2048x1309.png" class="kg-image" alt="" loading="lazy" width="1456" height="931"><figcaption><span style="white-space: pre-wrap;">404 pages inside the Creator portal, when clicking links</span></figcaption></figure><p>A day or two later, these issues disappeared: I assume no one had tested the flow of moving away from Spotify Podcasts to an RSS feed, and it’s why the experience was so poor.</p><h3 id="incident-review-finally-published-but-with-a-wrong-timeline"><strong>Incident review finally published, but with a wrong timeline</strong></h3><p>A few days after offboarding from Spotify, their team <a href="https://engineering.atspotify.com/2026/7/content-ingestion-and-podcast-video-incident-report?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">published the incident report</a> for outage #3. Reading through it, something did not add up in the timeline:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://substackcdn.com/image/fetch/$s_!5ROX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0bb70a5-df4c-444c-a9a9-9642c084f7c1_1662x866.png" class="kg-image" alt="" loading="lazy" width="1456" height="759"><figcaption><span style="white-space: pre-wrap;">The original timeline published for the 24 June incident</span></figcaption></figure><p>My email account confirmed that I mailed the Spotify team at around 17:30 about the outage. So, after weeks of creating this report, why did the incident report downplay the fact that customers alerted the team before their own automated alerts fired?I complained to the Podcasts team, and to their credit, the incident report was updated:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://substackcdn.com/image/fetch/$s_!a8Ln!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36fa0a3a-ba07-453f-b1dd-0269b80a7552_2048x932.png" class="kg-image" alt="" loading="lazy" width="1456" height="663"><figcaption><i><em class="italic" style="white-space: pre-wrap;">The updated incident timeline</em></i></figcaption></figure><p>I didn’t like how high-level <a href="https://engineering.atspotify.com/2026/7/content-ingestion-and-podcast-video-incident-report?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">the report is</a>, and how vague the promised improvements were. Specifically, this one:</p><blockquote>“During this incident, many creators learned something was wrong from their audiences before they heard anything from us. We are improving our processes and technical capabilities so creators get notified as soon as possible when things aren’t working.”</blockquote><p>Overall, I don’t regret the choice to leave, particularly when the focus of Spotify’s leadership is on AI, not reliability.</p><h3 id="does-spotify-have-%E2%80%9Cai-psychosis%E2%80%9D"><strong>Does Spotify have “AI psychosis?”</strong></h3><p>Previously, I used the term “AI psychosis” differently from the usual way of describing when someone starts believing everything an AI model tells them, however outlandish. I <a href="https://newsletter.pragmaticengineer.com/i/202307236/7-is-ai-psychosis-just-a-meta-issue?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">applied it</a> to Meta’s rush to develop its own AI model at the cost of the reliability of its profitable business activities. This was based on Instagram’s most embarrassing-ever account takeover incident, which <a href="https://newsletter.pragmaticengineer.com/i/202307236/7-is-ai-psychosis-just-a-meta-issue?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">occurred</a> when the team responsible for Instagram’s Trust &amp; Safety was slashed. Soon after, AI-generated, AI-reviewed code caused the hacking of a former US president’s account.</p><p>At Spotify, it should have gone the other way. In March, I had the opportunity to meet its Head of Technology &amp; Platforms, Tyson Singer, who said the company puts reliability far ahead of AI adoption, and doesn’t adopt AI for its own sake. So, it was somewhat surprising to read the summary below of a podcast Spotify did <a href="https://x.com/ClaudeDevs/status/2071671418245492926?s=20&ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">with Anthropic</a>:</p><blockquote>“Spotify now ships 4,500 production deploys a day, and 73% of PRs are now AI-assisted.<br><br>Niklas Gustavsson (VP of Engineering at Spotify) keeps 5 to 10 Claude sessions running in tmux, one per git worktree, agents working in the background. All of it inside a 20M+ line monorepo. He expected agents to struggle at that size, but it’s worked well.<br><br>Spotify’s migration codemods grew into thousands of lines of edge cases. Code has too much API surface for static rewrites. Early LLMs barely did better. Adding a judge took PR success from ~25% to 80%.<br><br>All of this leans on verification, the single most important thing when agents are used and the place most companies underinvest<br><br>Spotify rebuilt their test automation around it so engineers can confidently guide and supervise agents, rather than manually execute repetitive tasks.”</blockquote><p>It seems to me that all the talk is about <em>usage</em> of AI, and none about <em>reliability</em>, all while Spotify’s platform becomes less reliable than ever, at the same time as the streamer is going all-in on AI; with AI judges and devs running 5-10 parallel Claude sessions.</p><p>All things considered, it’s worth asking if Spotify has the corporate variant of “AI psychosis”, whereby the reliability of a successful operation gets torched in the chase for the next big thing by executives. I don’t even think Spotify is all that different from Meta and other companies in this!</p><p>Things look bad, based on the quality and reliability degradation of products. Annoyingly, in many cases, customers don’t really have the choice of going elsewhere. My podcast is an exception, as video podcasts on Spotify never truly took off, so quitting the platform wasn’t a big deal. Even so, I’m particularly disappointed that Spotify has prioritized AI usage over reliability. I know some executives there pushed against this, but I feel safe in assuming that they lost that battle.</p><h3 id="value-of-staying-reliable-%E2%80%9Csucking-less%E2%80%9D"><strong>Value of staying reliable &amp; “sucking less”</strong></h3><p>Max Kanat-Alexander, distinguished engineer at Capital One, has <a href="https://www.codesimplicity.com/post/suck-less/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">written about</a> how a software project can become wildly successful just by “sucking less” in his reflections upon the success of the Bugzilla project, (2004-2009):</p><blockquote>“All you have to do to succeed in software is to consistently suck less with every release.<br><br>Nobody would say that Bugzilla 2.18 was awesome, but everybody would say that it sucked less than Bugzilla 2.16 did. Bugzilla 2.20 wasn’t perfect, but without a doubt, it sucked less than Bugzilla 2.18. And then Bugzilla 3.0 fixed a whole lot of sucking in Bugzilla, and it got a whole lot more downloads.<br><br>Why is it that this worked?<br><br>As long as you consistently suck less with every release, you will retain most of your users. You’re fixing the things that bother them, so there’s no reason for them to switch away. Even if you didn’t fix everything in this release, if you sucked less, your users will have faith that eventually, the things that bother them will be fixed. New users will find your software, and they’ll stick with it too. And in this way, your user count will increase steadily over time.<br><br><strong>But what happens if you release frequently, but instead of fixing the things in your software that suck, you just add new features that don’t fix the sucking?</strong> Well, eventually the patience of the individual user is going to run out. They’re not going to wait forever for your software to stop sucking.”</blockquote><p>Personally, I got tired of Spotify’s Podcasts product continually going in the wrong direction on Max’s scale: the poor reliability, frequent errors on the Creators site, and the sense that they don’t really care about improving <em>existing</em> things.</p><hr><p>Read the full issue of <a href="https://pragmaticengineer.substack.com/p/the-pulse-quitting-spotify-podcasts" rel="noopener noreferrer nofollow">last week's The Pulse</a>. The full The Pulse additionally covers:</p><ol><li><strong>Will Kimi K3 trigger US push for closed-source AI models?&nbsp;</strong>Moonshot AI’s latest open model, Kimi K3, is on par with Anthropic’s Fable 5. Could it lead to the US government regulating or banning Chinese open models to protect US labs?</li><li><strong>AWS laughs off “heart attack” billing error.&nbsp;</strong>AWS customers were billed trillions more than they should have been, due to what was likely a conversion error. But instead of sharing an incident report, AWS saw the funny side.</li><li><strong>Industry pulse.&nbsp;</strong>OpenAI’s unreleased model tried to hack HuggingFace to improve its test scores, X took more than a year to develop its new Android app, Google’s new AI model flops, and more.</li></ol><p><a href="https://pragmaticengineer.substack.com/p/the-pulse-quitting-spotify-podcasts" rel="noreferrer">Read the full The Pulse.</a></p>
<!-- Newsletter -->
<p>
<a href="https://newsletter.pragmaticengineer.com/about">Subscribe to my weekly newsletter</a> to get articles like this in your inbox. It's a pretty good read - and the <a href="https://substack.com/top/technology">#1 software engineering newsletter</a> on Substack.
</p>
</section>
<footer class="post-footer">
<section class="podcast-details">
<h4>The Pragmatic Engineer Podcast</h4>
<p>
Deepdives with experienced engineers and tech professionals who share their hard-earned lessons, interesting stories and advice they have on building software.
</p>
<p>
Listen to it <a href="https://open.spotify.com/show/2Bho9xCbOQMWMJ7UKmqCzD">on Spotify</a>, on <a href="https://podcasts.apple.com/us/podcast/the-pragmatic-engineer/id1769051199">Apple</a>, on <a href="https://www.youtube.com/@pragmaticengineer">YouTube</a>, or <a href="https://pragmaticpodcast.com/">on the web</a>.
</p>
</section>
<section class="book-details">
<h4>The Software Engineer's Guidebook</h4>
<p>
I wrote <a href="https://www.engguidebook.com/">The Software Engineer's Guidebook</a>. Here is what Tanya Reilly, senior principal engineer and author of <a href="https://www.oreilly.com/library/view/the-staff-engineers/9781098118723/">The Staff Engineer's Path</a> says about it:
</p>
<blockquote>
"From performance reviews to P95 latency, from team dynamics to testing, Gergely demystifies all aspects of a software career. This book is well named: <strong>it really does feel like the missing guidebook for the whole industry.</strong>"
</blockquote>
<p style="padding-top:20px">
<a href="https://www.engguidebook.com/">
<img src="/assets/img/EngGuidebook.jpg" alt="The Software Engineer's Guidebook" style="width: 100%; max-width: 300px; margin: 0 auto; display: block;"/>
</a>
</p>
<p>
<a href="https://www.engguidebook.com/">Get the book here.</a>
</p>
</section>
<section class="conference-details">
<h4>Annual conference talk</h4>
<p>
Every year, I do one conference talk in the US, and one in Europe. <strong>My next conference talk is at <a href="https://leaddev.com/leaddev-new-york/?utm_source=pragmaticengineer&utm_medium=email&utm_campaign=pragmaticengineer">LDX3 New York</a>, on 15 September 2026.</strong>
Previous talks:
</p>
<ul>
<li><a href="https://newsletter.pragmaticengineer.com/p/slow-down-to-speed-up">Slow down to speed up</a> - Craft Conference, 2026</li>
<li><a href="https://newsletter.pragmaticengineer.com/p/software-engineering-with-llms-in-2025">Software engineering with LLMs: reality check</a> - LDX3, London, 2025</li>
</ul>
<p>
<strong>
</strong>
</p>
<!--
In 2025, this will be at <a href="https://leaddev.com/leaddev-london/?utm_source=the-pragmatic-engineer&utm_medium=newsletter-social&utm_campaign=LON25-media-community-partner">LDX3 (formerly: LeadDev)</a> in London, 16 June 2025. My keynote is titled "Software engineering with GenAI." If you'll <a href="https://leaddev.com/leaddev-london/?utm_source=the-pragmatic-engineer&utm_medium=newsletter-social&utm_campaign=LON25-media-community-partner">be there</a>, come say hi!
-->
</section>
<section class="newsletter" id="newsletter-second"> <!-- Section that gets moved up -->
<h4>Newsletter</h4>
<p>
Enjoying this article? <a href="https://newsletter.pragmaticengineer.com/about">Subscribe to my newsletter</a> to get issues like this in your inbox. It's a good read and the <a href="https://substack.com/top/technology">#1 software engineering / AI engineering newsletter</a> on Substack.
</p>
</section>
<section class="authorAndShare">
<section class="author">
<h4><a href="/author/ivan/">Ivan Klaric</a></h4>
<section class="post-meta">
Last updated <time class="post-date" datetime="2026-07-30">30 July 2026</time>. Originally published 30 Jul 2026.
<br>&copy; Gergely Orosz, 2026
</section>
<p>Read <a href="/author/ivan/">more posts</a> by this author.</p>
<div class="author-meta">
</div>
</section>
<section class="share">
<h4>Share this post</h4>
<a class="icon-twitter" href="https://twitter.com/intent/tweet?text=The%20Pulse%3A%20Quitting%20Spotify%20Podcasts%20over%20reliability&amp;url=https://blog.pragmaticengineer.com/the-pulse-quitting-spotify-podcasts-over-reliability/"
onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;">
<span class="hidden">Twitter</span>
</a>
<a class="icon-facebook" href="https://www.facebook.com/sharer/sharer.php?u=https://blog.pragmaticengineer.com/the-pulse-quitting-spotify-podcasts-over-reliability/"
onclick="window.open(this.href, 'facebook-share','width=580,height=296');return false;">
<span class="hidden">Facebook</span>
</a>
</section>
<section>
</footer>
</article>
</main>
<aside class="sidebar">
<img class="profile-image" src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2015/12/pragmatic-engineer-profile-image.png" alt="" />
<!--
// to display a custom image, copy the image into assets/img/profile-img.png and replace the previous line with this:
<img class="profile-image" src="https://blog.pragmaticengineer.com/assets/img/profile-image.png?v=c6825a1461" alt="" />
-->
<section class="publisher">by <strong>Gergely Orosz</strong></section>
<div class="nav mobile">
<h3 class="nav-title">Menu</h3>
<a href="#" class="nav-close">
<span class="hidden">Close</span>
</a>
<ul>
<li class="nav-home elusive-icon Home" role="presentation"><a href="https://blog.pragmaticengineer.com/">Home</a></li>
<li class="nav-newsletter elusive-icon Newsletter" role="presentation"><a href="https://newsletter.pragmaticengineer.com/about">Newsletter</a></li>
<li class="nav-podcast elusive-icon Podcast" role="presentation"><a href="https://pragmaticpodcast.com">Podcast</a></li>
<li class="nav-sponsors elusive-icon Sponsors" role="presentation"><a href="https://blog.pragmaticengineer.com/sponsors/">Sponsors</a></li>
<li class="nav-ethics-statement elusive-icon Ethics statement" role="presentation"><a href="https://blog.pragmaticengineer.com/ethics-statement/">Ethics statement</a></li>
<li class="nav-now elusive-icon Now" role="presentation"><a href="https://blog.pragmaticengineer.com/now/">Now</a></li>
<li class="nav-my-books elusive-icon My Books" role="presentation"><a href="https://blog.pragmaticengineer.com/books/">My Books</a></li>
<li class="nav-early-trends elusive-icon Early trends" role="presentation"><a href="https://blog.pragmaticengineer.com/early-trends/">Early trends</a></li>
<li class="nav-investing elusive-icon Investing" role="presentation"><a href="https://blog.pragmaticengineer.com/investing/">Investing</a></li>
<li class="nav-contact-me elusive-icon Contact me" role="presentation"><a href="https://blog.pragmaticengineer.com/contact/">Contact me</a></li>
<li class="nav-about elusive-icon About" role="presentation"><a href="https://blog.pragmaticengineer.com/about/">About</a></li>
<li class="nav-rss-feed elusive-icon RSS Feed" role="presentation"><a href="https://blog.pragmaticengineer.com/feed/">RSS Feed</a></li>
<li class="nav-bluesky elusive-icon bluesky" role="presentation"><a href="https://bsky.app/profile/gergely.pragmaticengineer.com/">bluesky</a></li>
<li class="nav-twitter elusive-icon twitter" role="presentation"><a href="http://twitter.com/GergelyOrosz">twitter</a></li>
<li class="nav-youtube elusive-icon youtube" role="presentation"><a href="https://www.youtube.com/@pragmaticengineer">youtube</a></li>
<li class="nav-linkedin elusive-icon linkedin" role="presentation"><a href="http://www.linkedin.com/in/gergelyorosz">linkedin</a></li>
</ul>
<a class="subscribe-button icon-feed" href="https://blog.pragmaticengineer.com/rss/">Subscribe</a>
</div>
<span class="nav-cover mobile"></span>
<div class="nav-desktop">
<ul class="sidebar-nav">
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/" class="elusive-icon Home" rel="me">Home</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://newsletter.pragmaticengineer.com/about" class="elusive-icon Newsletter" rel="me">Newsletter</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://pragmaticpodcast.com" class="elusive-icon Podcast" rel="me">Podcast</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/sponsors/" class="elusive-icon Sponsors" rel="me">Sponsors</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/ethics-statement/" class="elusive-icon Ethics statement" rel="me">Ethics statement</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/now/" class="elusive-icon Now" rel="me">Now</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/books/" class="elusive-icon My Books" rel="me">My Books</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/early-trends/" class="elusive-icon Early trends" rel="me">Early trends</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/investing/" class="elusive-icon Investing" rel="me">Investing</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/contact/" class="elusive-icon Contact me" rel="me">Contact me</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/about/" class="elusive-icon About" rel="me">About</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://blog.pragmaticengineer.com/feed/" class="elusive-icon RSS Feed" rel="me">RSS Feed</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://bsky.app/profile/gergely.pragmaticengineer.com/" class="elusive-icon bluesky" rel="me">bluesky</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="http://twitter.com/GergelyOrosz" class="elusive-icon twitter" rel="me">twitter</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="https://www.youtube.com/@pragmaticengineer" class="elusive-icon youtube" rel="me">youtube</a>
</li>
<li class="nav-desktop" role="presentation">
<a href="http://www.linkedin.com/in/gergelyorosz" class="elusive-icon linkedin" rel="me">linkedin</a>
</li>
</ul>
</div>
<ul>
<li><a href="https://blog.pragmaticengineer.com/newsletter" class="elusive-icon email">Subscribe via email</a></li>
<li><a href="http://feeds.feedburner.com/ThePragmaticEngineer" class="elusive-icon rss">Subscribe in a reader</a></li>
</ul>
<footer class="site-footer clearfix">
<section class="copyright"><a href="https://blog.pragmaticengineer.com">The Pragmatic Engineer</a> &copy; 2026</section>
</footer>
</aside>
<aside class="read-next">
<a class="read-next-story no-cover" href="/the-pulse-bending-spoons-acquisition-strategy/">
<section class="post">
<h2>The Pulse: Bending Spoons&#x27; Acquisition Strategy</h2>
<p>In only 5 years, Hopin went from zero to a $7.7B valuation, and back to zero again. Also: Bending Spoons’ startup acquisition model.&hellip;</p>
</section>
</a>
<a class="read-next-story prev no-cover" href="/the-pulse-new-trend-concern-about-massive-increase-in-code-review-load/">
<section class="post">
<h2>The Pulse: New trend - concern about massive increase in code review load</h2>
<p>Top of mind for engineering leaders: what to do about the growing code review load, and how devs are starting to review code less thoroughly than before? Many questions, but few proven solutions.&hellip;</p>
</section>
</a>
</aside>
<!-- Signup move up -->
<script>
let contentParent = document.getElementById("content");
let newsletterWithFormElement = document.getElementById("newsletter");
let newsletterWithoutFormElement = document.getElementById("newsletter-second");
let newsLetterTargetPosition = getLastElementBeforeSpecificNode(contentParent.children, "H2", 2); // Add after the 2nd h2
if(contentParent.children.length > newsLetterTargetPosition) {
let nextSibling = contentParent.children[newsLetterTargetPosition];
contentParent.insertBefore(newsletterWithoutFormElement, nextSibling);
} else {
newsletterWithoutFormElement.style.display = "none"
}
function getLastElementBeforeSpecificNode(nodes, nodeName, numberOfNodesToPass) {
var numberOfSpecificNodessSeen = 0;
for(let i=0;i<nodes.length; i++) {
if(nodes[i].nodeName == nodeName) {
numberOfSpecificNodessSeen += 1;
}
if(numberOfSpecificNodessSeen == numberOfNodesToPass+1) {
if(i > 0) {
return i;
} else {
return nodes.lenght;
}
}
}
}
</script>
</div>
<!-- Geniuslink -->
<!--
<script type="text/javascript" src="//cdn.geni.us/snippet.min.js" defer></script>
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", function() {
var tsid =116191;
Genius.amazon.addOnClickRedirect(tsid, false, "https://buy.geni.us"); });
</script>-->
<!-- Google Analytics -->
<!--
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-7745037-4', 'auto');
ga('send', 'pageview');
</script>
-->
<!-- Plausible -->
<script async defer data-domain="blog.pragmaticengineer.com" src="https://plausible.io/js/plausible.js"></script>
<!-- Source code higlighting -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.17.1/prism.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.17.1/plugins/line-numbers/prism-line-numbers.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.17.1/components/prism-javascript.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.17.1/components/prism-css.min.js"></script>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="https://blog.pragmaticengineer.com/assets/js/jquery.fitvids.js?v=z1Nmfc9MKQxCtlIV"></script>
<script type="text/javascript" src="https://blog.pragmaticengineer.com/assets/js/index.js?v=wmn33DUYd3qPYenJ"></script>
</body>
</html>