CINXE.COM
Infrastructure Archives - Spotify Engineering : Spotify Engineering
<!doctype html> <html lang="en-US" class="no-js"> <head> <meta charset="UTF-8"> <title>Infrastructure Archives - Spotify Engineering : Spotify Engineering</title> <link href="//www.google-analytics.com" rel="dns-prefetch"> <link href="https://engineering.atspotify.com/wp-content/themes/theme-spotify/images/favicon.png" rel="shortcut icon"> <link href="https://engineering.atspotify.com/wp-content/themes/theme-spotify/images/favicon.png" rel="apple-touch-icon-precomposed"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content="Spotify’s official technology blog"> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <!-- This site is optimized with the Yoast SEO plugin v23.9 - https://yoast.com/wordpress/plugins/seo/ --> <link rel="canonical" href="https://engineering.atspotify.com/category/infrastructure/" /> <link rel="next" href="https://engineering.atspotify.com/category/infrastructure/page/2/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Infrastructure Archives - Spotify Engineering" /> <meta property="og:url" content="https://engineering.atspotify.com/category/infrastructure/" /> <meta property="og:site_name" content="Spotify Engineering" /> <meta name="twitter:card" content="summary_large_image" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://engineering.atspotify.com/category/infrastructure/","url":"https://engineering.atspotify.com/category/infrastructure/","name":"Infrastructure Archives - Spotify Engineering","isPartOf":{"@id":"https://engineering.atspotify.com/#website"},"primaryImageOfPage":{"@id":"https://engineering.atspotify.com/category/infrastructure/#primaryimage"},"image":{"@id":"https://engineering.atspotify.com/category/infrastructure/#primaryimage"},"thumbnailUrl":"https://storage.googleapis.com/production-eng/1/2024/04/EN216-BlogPost_1200x590_final.png","breadcrumb":{"@id":"https://engineering.atspotify.com/category/infrastructure/#breadcrumb"},"inLanguage":"en-US"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://engineering.atspotify.com/category/infrastructure/#primaryimage","url":"https://storage.googleapis.com/production-eng/1/2024/04/EN216-BlogPost_1200x590_final.png","contentUrl":"https://storage.googleapis.com/production-eng/1/2024/04/EN216-BlogPost_1200x590_final.png","width":2505,"height":1235},{"@type":"BreadcrumbList","@id":"https://engineering.atspotify.com/category/infrastructure/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://engineering.atspotify.com/"},{"@type":"ListItem","position":2,"name":"Infrastructure"}]},{"@type":"WebSite","@id":"https://engineering.atspotify.com/#website","url":"https://engineering.atspotify.com/","name":"Spotify Engineering","description":"Spotify’s official technology blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://engineering.atspotify.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}</script> <!-- / Yoast SEO plugin. --> <link rel='dns-prefetch' href='//engineering.atspotify.com' /> <link rel='stylesheet' id='wp-block-library-css' href='https://engineering.atspotify.com/wp-includes/css/dist/block-library/style.min.css' media='all' /> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='normalize-css' href='https://storage.googleapis.com/production-eng/1/hummingbird-assets/0542d2a3096ab427e575b3e60d22f969.css' media='all' /> <link rel='stylesheet' id='html5blank-css' href='https://engineering.atspotify.com/wp-content/themes/theme-spotify/style.css' media='all' /> <script type="text/javascript" src="https://storage.googleapis.com/production-eng/1/hummingbird-assets/be22fbd2162b355c38507a7d996caec9.js" id="wphb-1-js"></script> <script type="text/javascript" id="html5blankscripts-js-extra"> /* <![CDATA[ */ var spotify = {"ajaxurl":"https:\/\/engineering.atspotify.com\/wp-admin\/admin-ajax.php","blog_nonce":"e0191f4150"}; /* ]]> */ </script> <script type="text/javascript" src="https://storage.googleapis.com/production-eng/1/hummingbird-assets/48f1f973342f3ea0348f45a762fc07bc.js" id="html5blankscripts-js"></script> <link rel="https://api.w.org/" href="https://engineering.atspotify.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://engineering.atspotify.com/wp-json/wp/v2/categories/5" /><link rel="icon" href="https://storage.googleapis.com/production-eng/1/2021/03/cropped-Engineering-Icon-RGB-512x512-light-120x120.png" sizes="32x32" /> <link rel="icon" href="https://storage.googleapis.com/production-eng/1/2021/03/cropped-Engineering-Icon-RGB-512x512-light-250x250.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://storage.googleapis.com/production-eng/1/2021/03/cropped-Engineering-Icon-RGB-512x512-light-250x250.png" /> <meta name="msapplication-TileImage" content="https://storage.googleapis.com/production-eng/1/2021/03/cropped-Engineering-Icon-RGB-512x512-light.png" /> <script> // conditionizr.com // configure environment tests conditionizr.config({ assets: 'https://engineering.atspotify.com/wp-content/themes/theme-spotify', tests: {} }); </script> <!-- Global site tag (gtag.js) - Google Analytics --> <!-- Google Tag Manager --> <script> (function(w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-W5NPJP7'); </script> <!-- End Google Tag Manager --> <link rel="stylesheet" type="text/css" href="//wpcc.io/lib/1.0.2/cookieconsent.min.css" /> <script src="//wpcc.io/lib/1.0.2/cookieconsent.min.js"></script> <script> window.addEventListener("load", function() { window.wpcc.init({ "border": "0", "colors": { "popup": { "background": "transparent", "text": "#fff" }, "button": { "background": "transparent ", "text": "#FFFFFF" } }, "fontsize": "small", "content": { "button": "X", "message": "<span>Is your org IDP-ready? </span> Try Spotify Portal for Backstage. <a href='https://info.backstage.spotify.com/portal-cloud-checklist?utm_campaign=Portal%20Release&utm_source=Banner' target='_blank'> Here's what to expect during the beta</a>" }, "position": "top", "pushdown": true }) }); </script> </head> <body class="archive category category-infrastructure category-5" > <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W5NPJP7" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!-- header --> <header class="header clear" id="header" role="banner"> <div class="container"> <!-- logo --> <div class="logo"> <a href="https://engineering.atspotify.com"> <img src="https://engineering.atspotify.com/wp-content/themes/theme-spotify/images/logo.svg" alt="Logo" class="logo-img"> </a> </div> <!-- /logo --> <a href="javascript:void(0)" class="burger-menu"> <span></span> <span></span> <span></span> </a> <form role="search" method="get" class="search-form" action="https://engineering.atspotify.com/"> <input type="search" class="search-field" value="" name="s" title="Search for:" /> <button type="submit" class="submit" value="Search"><img src="https://engineering.atspotify.com/wp-content/themes/theme-spotify/images/search.svg" alt=""></button> </form> <!-- nav --> <nav class="nav" role="navigation"> <ul><li id="menu-item-3367" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-3367"><a href="https://engineering.atspotify.com">Blog</a></li> <li id="menu-item-5073" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5073"><a href="https://engineering.atspotify.com/podcast/">Podcasts</a></li> <li id="menu-item-4727" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4727"><a href="https://engineering.atspotify.com/opensource/">Open Source</a></li> <li id="menu-item-3366" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3366"><a href="https://engineering.atspotify.com/about/">About</a></li> <li id="menu-item-3409" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3409"><a href="https://engineering.atspotify.com/jobs/">Jobs</a></li> </ul> </nav> <!-- /nav --> </div> <a href="javascript:void(0)" class="mobile-search"> <img src="https://engineering.atspotify.com/wp-content/themes/theme-spotify/images/search-icon-white.svg" alt=""> <div class="span-holder"> <span></span> <span></span> </div> </a> </header> <!-- wrapper --> <div id="wrapper" class="wrapper"> <div class="form-holder"> <form role="search" method="get" class="search-form header-form" action="https://engineering.atspotify.com/"> <input type="search" class="search-field" placeholder="Search Engineering Blog …" value="" name="s" title="Search for:" /> <button type="submit" class="submit" value="Search"><img src="https://engineering.atspotify.com/wp-content/themes/theme-spotify/images/search.svg" alt=""></button> </form> </div> <!-- /header --> <main role="main" id="main" class="container category-page"> <!-- section --> <section class="content"> <div class="page-heading"> <h1>Infrastructure</h1> <div class="article-counter"> 92 articles </div> </div> <ul class="posts-list-view"> <li> <!-- article --> <article id="post-7037" class="post-7037 post type-post status-publish format-standard has-post-thumbnail hentry category-data category-data-science category-infrastructure category-platform tag-data"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2024/04/data-platform-explained/" title="Data Platform Explained Part I"> <img src="https://storage.googleapis.com/production-eng/1/2024/04/EN216-BlogPost_1200x590_final.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://storage.googleapis.com/production-eng/1/2024/04/EN216-BlogPost_1200x590_final.png 2505w, https://storage.googleapis.com/production-eng/1/2024/04/EN216-BlogPost_1200x590_final-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2024/04/EN216-BlogPost_1200x590_final-700x345.png 700w, https://storage.googleapis.com/production-eng/1/2024/04/EN216-BlogPost_1200x590_final-768x379.png 768w, https://storage.googleapis.com/production-eng/1/2024/04/EN216-BlogPost_1200x590_final-1536x757.png 1536w, https://storage.googleapis.com/production-eng/1/2024/04/EN216-BlogPost_1200x590_final-2048x1010.png 2048w, https://storage.googleapis.com/production-eng/1/2024/04/EN216-BlogPost_1200x590_final-120x59.png 120w" sizes="(max-width: 2505px) 100vw, 2505px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">April 2, 2024 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2024/04/data-platform-explained/" title="Data Platform Explained Part I">Data Platform Explained Part I</a> </h2> <!-- /post title --> <p>As engineers working at Spotify, we frequently find ourselves explaining our robust data platform to fellow professionals who are contemplating [...]</p> <span class="by"> Published by Anastasia Khlebnikova (Senior Engineer) and Carol Cunha (Product Manager) </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-6451" class="post-6451 post type-post status-publish format-standard has-post-thumbnail hentry category-developer-tools category-infrastructure category-open-source category-people"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2023/10/switching-build-systems-seamlessly/" title="Switching Build Systems, Seamlessly"> <img src="https://storage.googleapis.com/production-eng/1/2023/10/EN207-Switching-Build-Systems-Final-1200x590-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Switching build systems header image" decoding="async" srcset="https://storage.googleapis.com/production-eng/1/2023/10/EN207-Switching-Build-Systems-Final-1200x590-1.png 2500w, https://storage.googleapis.com/production-eng/1/2023/10/EN207-Switching-Build-Systems-Final-1200x590-1-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2023/10/EN207-Switching-Build-Systems-Final-1200x590-1-700x344.png 700w, https://storage.googleapis.com/production-eng/1/2023/10/EN207-Switching-Build-Systems-Final-1200x590-1-768x378.png 768w, https://storage.googleapis.com/production-eng/1/2023/10/EN207-Switching-Build-Systems-Final-1200x590-1-1536x756.png 1536w, https://storage.googleapis.com/production-eng/1/2023/10/EN207-Switching-Build-Systems-Final-1200x590-1-2048x1008.png 2048w, https://storage.googleapis.com/production-eng/1/2023/10/EN207-Switching-Build-Systems-Final-1200x590-1-120x59.png 120w" sizes="(max-width: 2500px) 100vw, 2500px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">October 17, 2023 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2023/10/switching-build-systems-seamlessly/" title="Switching Build Systems, Seamlessly">Switching Build Systems, Seamlessly</a> </h2> <!-- /post title --> <p>At Spotify, we have experimented with the Bazel build system since 2017. Over the years, the project has matured, and [...]</p> <span class="by"> Published by Patrick Balestra, Staff Engineer </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-6245" class="post-6245 post type-post status-publish format-standard has-post-thumbnail hentry category-developer-tools category-infrastructure category-platform tag-backend"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2023/06/analyzing-volatile-memory-on-a-google-kubernetes-engine-node/" title="Analyzing Volatile Memory on a Google Kubernetes Engine Node"> <img src="https://storage.googleapis.com/production-eng/1/2023/06/EN196_Analyzing-Volatile-Memory-final-590.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Analyzing Volatile Memory header image with Kubernetes shipping container and storage boxes inside." decoding="async" srcset="https://storage.googleapis.com/production-eng/1/2023/06/EN196_Analyzing-Volatile-Memory-final-590.png 1200w, https://storage.googleapis.com/production-eng/1/2023/06/EN196_Analyzing-Volatile-Memory-final-590-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2023/06/EN196_Analyzing-Volatile-Memory-final-590-700x344.png 700w, https://storage.googleapis.com/production-eng/1/2023/06/EN196_Analyzing-Volatile-Memory-final-590-768x378.png 768w, https://storage.googleapis.com/production-eng/1/2023/06/EN196_Analyzing-Volatile-Memory-final-590-120x59.png 120w" sizes="(max-width: 1200px) 100vw, 1200px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">June 22, 2023 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2023/06/analyzing-volatile-memory-on-a-google-kubernetes-engine-node/" title="Analyzing Volatile Memory on a Google Kubernetes Engine Node">Analyzing Volatile Memory on a Google Kubernetes Engine Node</a> </h2> <!-- /post title --> <p>TL:DR At Spotify, we run containerized workloads in production across our entire organization in five regions where our main production [...]</p> <span class="by"> Published by Marcus Hallberg, Security Engineer </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-6173" class="post-6173 post type-post status-publish format-standard has-post-thumbnail hentry category-developer-tools category-infrastructure category-people category-platform tag-engineering-leadership"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2023/05/fleet-management-at-spotify-part-3-fleet-wide-refactoring/" title="Fleet Management at Spotify (Part 3): Fleet-wide Refactoring"> <img src="https://storage.googleapis.com/production-eng/1/2023/05/Fleet-Fleetwide-Refactoring_Blog.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2023/05/Fleet-Fleetwide-Refactoring_Blog.png 1200w, https://storage.googleapis.com/production-eng/1/2023/05/Fleet-Fleetwide-Refactoring_Blog-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2023/05/Fleet-Fleetwide-Refactoring_Blog-700x344.png 700w, https://storage.googleapis.com/production-eng/1/2023/05/Fleet-Fleetwide-Refactoring_Blog-768x378.png 768w, https://storage.googleapis.com/production-eng/1/2023/05/Fleet-Fleetwide-Refactoring_Blog-120x59.png 120w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">May 15, 2023 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2023/05/fleet-management-at-spotify-part-3-fleet-wide-refactoring/" title="Fleet Management at Spotify (Part 3): Fleet-wide Refactoring">Fleet Management at Spotify (Part 3): Fleet-wide Refactoring</a> </h2> <!-- /post title --> <p>This is part 3 in our series on Fleet Management at Spotify and how we manage our software at scale. [...]</p> <span class="by"> Published by Matt Brown, Staff Engineer </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-6069" class="post-6069 post type-post status-publish format-standard has-post-thumbnail hentry category-developer-tools category-infrastructure category-people category-platform tag-engineering-culture tag-engineering-leadership"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2023/05/fleet-management-at-spotify-part-2-the-path-to-declarative-infrastructure/" title="Fleet Management at Spotify (Part 2): The Path to Declarative Infrastructure"> <img src="https://storage.googleapis.com/production-eng/1/2023/05/EN191-Fleet-The-Path-to-Declarative-Infrastructure-Part-2-Site.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2023/05/EN191-Fleet-The-Path-to-Declarative-Infrastructure-Part-2-Site.png 1200w, https://storage.googleapis.com/production-eng/1/2023/05/EN191-Fleet-The-Path-to-Declarative-Infrastructure-Part-2-Site-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2023/05/EN191-Fleet-The-Path-to-Declarative-Infrastructure-Part-2-Site-700x344.png 700w, https://storage.googleapis.com/production-eng/1/2023/05/EN191-Fleet-The-Path-to-Declarative-Infrastructure-Part-2-Site-768x378.png 768w, https://storage.googleapis.com/production-eng/1/2023/05/EN191-Fleet-The-Path-to-Declarative-Infrastructure-Part-2-Site-120x59.png 120w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">May 3, 2023 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2023/05/fleet-management-at-spotify-part-2-the-path-to-declarative-infrastructure/" title="Fleet Management at Spotify (Part 2): The Path to Declarative Infrastructure">Fleet Management at Spotify (Part 2): The Path to Declarative Infrastructure</a> </h2> <!-- /post title --> <p>This is part 2 in our series on Fleet Management at Spotify and how we manage our software at scale. [...]</p> <span class="by"> Published by David Flemström, Principal Product Manager, and Alexander Buck, Senior Engineer </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-5989" class="post-5989 post type-post status-publish format-standard has-post-thumbnail hentry category-developer-tools category-infrastructure category-people category-platform tag-engineering-culture tag-engineering-leadership"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2023/04/spotifys-shift-to-a-fleet-first-mindset-part-1/" title="Fleet Management at Spotify (Part 1): Spotify’s Shift to a Fleet-First Mindset"> <img src="https://storage.googleapis.com/production-eng/1/2023/04/Fleet-Management-Header.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2023/04/Fleet-Management-Header.png 1200w, https://storage.googleapis.com/production-eng/1/2023/04/Fleet-Management-Header-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2023/04/Fleet-Management-Header-700x344.png 700w, https://storage.googleapis.com/production-eng/1/2023/04/Fleet-Management-Header-768x378.png 768w, https://storage.googleapis.com/production-eng/1/2023/04/Fleet-Management-Header-120x59.png 120w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">April 18, 2023 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2023/04/spotifys-shift-to-a-fleet-first-mindset-part-1/" title="Fleet Management at Spotify (Part 1): Spotify’s Shift to a Fleet-First Mindset">Fleet Management at Spotify (Part 1): Spotify’s Shift to a Fleet-First Mindset</a> </h2> <!-- /post title --> <p>This is part 1 in our series on Fleet Management at Spotify and how we manage our software at scale. [...]</p> <span class="by"> Published by Niklas Gustavsson, VP, Engineering </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-5970" class="post-5970 post type-post status-publish format-standard has-post-thumbnail hentry category-infrastructure category-maching-learning tag-engineering-leadership"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2023/04/large-scale-generation-of-ml-podcast-previews-at-spotify-with-google-dataflow/" title="Large-Scale Generation of ML Podcast Previews at Spotify with Google Dataflow"> <img src="https://storage.googleapis.com/production-eng/1/2023/04/Spotify_Podcast_Preview_Header.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2023/04/Spotify_Podcast_Preview_Header.png 1201w, https://storage.googleapis.com/production-eng/1/2023/04/Spotify_Podcast_Preview_Header-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2023/04/Spotify_Podcast_Preview_Header-700x344.png 700w, https://storage.googleapis.com/production-eng/1/2023/04/Spotify_Podcast_Preview_Header-768x377.png 768w, https://storage.googleapis.com/production-eng/1/2023/04/Spotify_Podcast_Preview_Header-120x59.png 120w" sizes="auto, (max-width: 1201px) 100vw, 1201px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">April 13, 2023 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2023/04/large-scale-generation-of-ml-podcast-previews-at-spotify-with-google-dataflow/" title="Large-Scale Generation of ML Podcast Previews at Spotify with Google Dataflow">Large-Scale Generation of ML Podcast Previews at Spotify with Google Dataflow</a> </h2> <!-- /post title --> <p>Integrating the Podz ML pipeline into Spotify As of March 8, 2023, Spotify has started serving short previews for music, [...]</p> <span class="by"> Published by Diego Casabuena (ML Engineer, Spotify), Edgar Tanaka (ML Engineer, Spotify), Winstead Zhu (ML Engineer, Spotify), Reza Rokni (PM, Google Dataflow ML), and Danny McCormick (Senior Software Engineer, Google) </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-5950" class="post-5950 post type-post status-publish format-standard has-post-thumbnail hentry category-infrastructure category-platform"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2023/03/load-testing-for-2022-wrapped/" title="Load Testing for 2022 Wrapped"> <img src="https://storage.googleapis.com/production-eng/1/2023/03/Wrapped-load-testing-header.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2023/03/Wrapped-load-testing-header.png 1200w, https://storage.googleapis.com/production-eng/1/2023/03/Wrapped-load-testing-header-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2023/03/Wrapped-load-testing-header-700x344.png 700w, https://storage.googleapis.com/production-eng/1/2023/03/Wrapped-load-testing-header-768x378.png 768w, https://storage.googleapis.com/production-eng/1/2023/03/Wrapped-load-testing-header-120x59.png 120w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">March 31, 2023 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2023/03/load-testing-for-2022-wrapped/" title="Load Testing for 2022 Wrapped">Load Testing for 2022 Wrapped</a> </h2> <!-- /post title --> <p>Wrapped is Spotify’s global annual year-end campaign that celebrates our listeners with a personalized review of their listening habits over [...]</p> <span class="by"> Published by Fred Wang, Senior Backend Engineer </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-5767" class="post-5767 post type-post status-publish format-standard has-post-thumbnail hentry category-infrastructure"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2023/02/incident-report-spotify-outage-on-january-14-2023/" title="Incident Report: Spotify Outage on January 14, 2023"> <img src="https://storage.googleapis.com/production-eng/1/2022/10/EN182-Icident-Report-Feb-2023_FINAL_72ppi.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2022/10/EN182-Icident-Report-Feb-2023_FINAL_72ppi.png 1201w, https://storage.googleapis.com/production-eng/1/2022/10/EN182-Icident-Report-Feb-2023_FINAL_72ppi-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2022/10/EN182-Icident-Report-Feb-2023_FINAL_72ppi-700x344.png 700w, https://storage.googleapis.com/production-eng/1/2022/10/EN182-Icident-Report-Feb-2023_FINAL_72ppi-768x378.png 768w, https://storage.googleapis.com/production-eng/1/2022/10/EN182-Icident-Report-Feb-2023_FINAL_72ppi-120x59.png 120w" sizes="auto, (max-width: 1201px) 100vw, 1201px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">February 15, 2023 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2023/02/incident-report-spotify-outage-on-january-14-2023/" title="Incident Report: Spotify Outage on January 14, 2023">Incident Report: Spotify Outage on January 14, 2023</a> </h2> <!-- /post title --> <p>On January 14, between 00:15 UTC and 03:45 UTC, Spotify suffered an outage. The impact was small at first and [...]</p> <span class="by"> Published by Erik Lindblad, Staff Engineer </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-5692" class="post-5692 post type-post status-publish format-standard has-post-thumbnail hentry category-infrastructure category-maching-learning category-platform tag-machine-learning"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2023/02/unleashing-ml-innovation-at-spotify-with-ray/" title="Unleashing ML Innovation at Spotify with Ray"> <img src="https://storage.googleapis.com/production-eng/1/2022/10/EN181-Unleashing-ML-Innovation-at-Spotify-with-Ray_72ppi.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Unleashing ML Innovation at Spotify with Ray" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2022/10/EN181-Unleashing-ML-Innovation-at-Spotify-with-Ray_72ppi.png 1200w, https://storage.googleapis.com/production-eng/1/2022/10/EN181-Unleashing-ML-Innovation-at-Spotify-with-Ray_72ppi-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2022/10/EN181-Unleashing-ML-Innovation-at-Spotify-with-Ray_72ppi-700x344.png 700w, https://storage.googleapis.com/production-eng/1/2022/10/EN181-Unleashing-ML-Innovation-at-Spotify-with-Ray_72ppi-768x378.png 768w, https://storage.googleapis.com/production-eng/1/2022/10/EN181-Unleashing-ML-Innovation-at-Spotify-with-Ray_72ppi-120x59.png 120w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">February 1, 2023 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2023/02/unleashing-ml-innovation-at-spotify-with-ray/" title="Unleashing ML Innovation at Spotify with Ray">Unleashing ML Innovation at Spotify with Ray</a> </h2> <!-- /post title --> <p>As the field of machine learning (ML) continues to evolve and its impact on society and various aspects of our [...]</p> <span class="by"> Published by Divita Vohra, Sr. Product Manager, Keshi Dai, Sr. ML Engineer, David Xia, Sr. ML Engineer, & Praveen Ravichandran, Staff Research Scientist </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-5583" class="post-5583 post type-post status-publish format-standard has-post-thumbnail hentry category-infrastructure category-mobile"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2022/11/strategies-and-tools-for-performing-migrations-on-platform/" title="Strategies and Tools for Performing Migrations on Platform"> <img src="https://storage.googleapis.com/production-eng/1/2022/10/EN177_Strategies_and_tools_72ppi.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Strategies and Tools for Performing Migrations on Platform" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2022/10/EN177_Strategies_and_tools_72ppi.png 1200w, https://storage.googleapis.com/production-eng/1/2022/10/EN177_Strategies_and_tools_72ppi-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2022/10/EN177_Strategies_and_tools_72ppi-700x344.png 700w, https://storage.googleapis.com/production-eng/1/2022/10/EN177_Strategies_and_tools_72ppi-768x378.png 768w, https://storage.googleapis.com/production-eng/1/2022/10/EN177_Strategies_and_tools_72ppi-120x59.png 120w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">November 15, 2022 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2022/11/strategies-and-tools-for-performing-migrations-on-platform/" title="Strategies and Tools for Performing Migrations on Platform">Strategies and Tools for Performing Migrations on Platform</a> </h2> <!-- /post title --> <p>Needing to deliver faster and more reliably while managing a growing number of contributors and a more complex codebase seems [...]</p> <span class="by"> Published by Mariana Ardoino (Staff Engineer) and Raul Herbster (Engineering Manager) </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-5549" class="post-5549 post type-post status-publish format-standard has-post-thumbnail hentry category-backstage category-developer-tools category-infrastructure category-platform category-security tag-backend tag-security tag-web"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2022/11/spotifys-vulnerability-management-platform/" title="Spotify’s Vulnerability Management Platform"> <img src="https://storage.googleapis.com/production-eng/1/2022/10/EN176-Vulnerability-Management-Platform-Header-FINAL_72ppi.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Spotify’s Vulnerability Management Platform" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2022/10/EN176-Vulnerability-Management-Platform-Header-FINAL_72ppi.png 1200w, https://storage.googleapis.com/production-eng/1/2022/10/EN176-Vulnerability-Management-Platform-Header-FINAL_72ppi-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2022/10/EN176-Vulnerability-Management-Platform-Header-FINAL_72ppi-700x344.png 700w, https://storage.googleapis.com/production-eng/1/2022/10/EN176-Vulnerability-Management-Platform-Header-FINAL_72ppi-768x378.png 768w, https://storage.googleapis.com/production-eng/1/2022/10/EN176-Vulnerability-Management-Platform-Header-FINAL_72ppi-120x59.png 120w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">November 8, 2022 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2022/11/spotifys-vulnerability-management-platform/" title="Spotify’s Vulnerability Management Platform">Spotify’s Vulnerability Management Platform</a> </h2> <!-- /post title --> <p>We started developing our vulnerability management platform (VMP) at Spotify in Q2, 2020, and now that we’ve implemented it and [...]</p> <span class="by"> Published by Yukio Mizuta (Sr. Backend Engineer) and Nurit Izrailov (Software Engineer) </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-5557" class="post-5557 post type-post status-publish format-standard has-post-thumbnail hentry category-developer-tools category-infrastructure category-platform tag-engineering-leadership"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2022/10/how-we-improved-the-development-experience-for-our-client-developers/" title="How We Improved the Development Experience for our Client Developers"> <img src="https://storage.googleapis.com/production-eng/1/2022/10/EN175-How-we-improved-72ppi.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="How We Improved the Development Experience for our Client Developers" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2022/10/EN175-How-we-improved-72ppi.png 1200w, https://storage.googleapis.com/production-eng/1/2022/10/EN175-How-we-improved-72ppi-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2022/10/EN175-How-we-improved-72ppi-700x344.png 700w, https://storage.googleapis.com/production-eng/1/2022/10/EN175-How-we-improved-72ppi-768x378.png 768w, https://storage.googleapis.com/production-eng/1/2022/10/EN175-How-we-improved-72ppi-120x59.png 120w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">October 27, 2022 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2022/10/how-we-improved-the-development-experience-for-our-client-developers/" title="How We Improved the Development Experience for our Client Developers">How We Improved the Development Experience for our Client Developers</a> </h2> <!-- /post title --> <p>TL;DR The core motivation for Spotify’s Client Platform (CliP) team is empowering and unblocking client developers and giving teams the [...]</p> <span class="by"> Published by Anna Granhed (Product Manager) and Nandini Singh (Senior Data Scientist) </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-5520" class="post-5520 post type-post status-publish format-standard has-post-thumbnail hentry category-developer-tools category-infrastructure category-platform category-product tag-backend tag-engineering-leadership"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2022/10/bringing-the-climate-fight-to-your-ide/" title="Bringing the Climate Fight to Your IDE"> <img src="https://storage.googleapis.com/production-eng/1/2022/10/spotify-climate-engineering.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="![Integrating the planet into our code](spotify-climate-engineering.png)" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2022/10/spotify-climate-engineering.png 1999w, https://storage.googleapis.com/production-eng/1/2022/10/spotify-climate-engineering-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2022/10/spotify-climate-engineering-700x345.png 700w, https://storage.googleapis.com/production-eng/1/2022/10/spotify-climate-engineering-768x378.png 768w, https://storage.googleapis.com/production-eng/1/2022/10/spotify-climate-engineering-1536x756.png 1536w, https://storage.googleapis.com/production-eng/1/2022/10/spotify-climate-engineering-120x59.png 120w" sizes="auto, (max-width: 1999px) 100vw, 1999px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">October 25, 2022 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2022/10/bringing-the-climate-fight-to-your-ide/" title="Bringing the Climate Fight to Your IDE">Bringing the Climate Fight to Your IDE</a> </h2> <!-- /post title --> <p>TL;DR As part of Spotify’s goal to reach net zero emissions by 2030, we’ve made climate action one of our [...]</p> <span class="by"> Published by Tyson Singer, Head of Technology and Platforms </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-5465" class="post-5465 post type-post status-publish format-standard has-post-thumbnail hentry category-data category-developer-tools category-infrastructure category-web tag-web"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2022/09/from-development-to-real-users-how-to-create-a-web-performance-story/" title="From Development to Real Users: How to Create a Web Performance Story"> <img src="https://storage.googleapis.com/production-eng/1/2022/09/Header.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2022/09/Header.png 1999w, https://storage.googleapis.com/production-eng/1/2022/09/Header-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2022/09/Header-700x344.png 700w, https://storage.googleapis.com/production-eng/1/2022/09/Header-768x378.png 768w, https://storage.googleapis.com/production-eng/1/2022/09/Header-1536x755.png 1536w, https://storage.googleapis.com/production-eng/1/2022/09/Header-120x59.png 120w" sizes="auto, (max-width: 1999px) 100vw, 1999px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">September 29, 2022 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2022/09/from-development-to-real-users-how-to-create-a-web-performance-story/" title="From Development to Real Users: How to Create a Web Performance Story">From Development to Real Users: How to Create a Web Performance Story</a> </h2> <!-- /post title --> <p>Some of the most common questions asked when it comes to work with performance are, How do you convince stakeholders [...]</p> <span class="by"> Published by Vinicius Teixeira Dallacqua, Engineer </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-5444" class="post-5444 post type-post status-publish format-standard has-post-thumbnail hentry category-infrastructure category-platform tag-backend"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2022/09/scaling-translations-at-spotify/" title="Scaling Translations at Spotify"> <img src="https://storage.googleapis.com/production-eng/1/2022/09/EN173-Scaling-Translations.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Scaling Translations at Spotify" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2022/09/EN173-Scaling-Translations.png 1200w, https://storage.googleapis.com/production-eng/1/2022/09/EN173-Scaling-Translations-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2022/09/EN173-Scaling-Translations-700x344.png 700w, https://storage.googleapis.com/production-eng/1/2022/09/EN173-Scaling-Translations-768x378.png 768w, https://storage.googleapis.com/production-eng/1/2022/09/EN173-Scaling-Translations-120x59.png 120w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">September 15, 2022 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2022/09/scaling-translations-at-spotify/" title="Scaling Translations at Spotify">Scaling Translations at Spotify</a> </h2> <!-- /post title --> <p>Last year, we added support for 36 new languages to our products in one go, for a total of 62 [...]</p> <span class="by"> Published by Tommy Tynjä (Senior Engineering Manager and Project Engineering Lead) and Martiño Prada Díaz (Director, Localization) </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-5394" class="post-5394 post type-post status-publish format-standard has-post-thumbnail hentry category-data category-infrastructure category-web tag-backend tag-web"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2022/07/what-it-took-to-scale-spotifys-marketing-efforts/" title="What it Took to Scale Spotify’s Marketing Efforts"> <img src="https://storage.googleapis.com/production-eng/1/2022/07/Scaling-for-Midyear-Marketing_Header.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2022/07/Scaling-for-Midyear-Marketing_Header.png 1200w, https://storage.googleapis.com/production-eng/1/2022/07/Scaling-for-Midyear-Marketing_Header-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2022/07/Scaling-for-Midyear-Marketing_Header-700x344.png 700w, https://storage.googleapis.com/production-eng/1/2022/07/Scaling-for-Midyear-Marketing_Header-768x378.png 768w, https://storage.googleapis.com/production-eng/1/2022/07/Scaling-for-Midyear-Marketing_Header-120x59.png 120w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">July 5, 2022 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2022/07/what-it-took-to-scale-spotifys-marketing-efforts/" title="What it Took to Scale Spotify’s Marketing Efforts">What it Took to Scale Spotify’s Marketing Efforts</a> </h2> <!-- /post title --> <p>At Spotify, we’ve tried to uphold the tradition of running one major holiday marketing campaign at the end of each [...]</p> <span class="by"> Published by James La Broy, Senior Engineer </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-5359" class="post-5359 post type-post status-publish format-standard has-post-thumbnail hentry category-infrastructure tag-backend"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2022/06/how-we-built-infrastructure-to-run-user-forecasts-at-spotify/" title="How We Built Infrastructure to Run User Forecasts at Spotify"> <img src="https://storage.googleapis.com/production-eng/1/2022/06/EN166-User-Forecasting-Models-Blog-Post-Header-FINAL-72ppi.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="How We Built Infrastructure to Run User Forecasts at Spotify" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2022/06/EN166-User-Forecasting-Models-Blog-Post-Header-FINAL-72ppi.png 1200w, https://storage.googleapis.com/production-eng/1/2022/06/EN166-User-Forecasting-Models-Blog-Post-Header-FINAL-72ppi-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2022/06/EN166-User-Forecasting-Models-Blog-Post-Header-FINAL-72ppi-700x344.png 700w, https://storage.googleapis.com/production-eng/1/2022/06/EN166-User-Forecasting-Models-Blog-Post-Header-FINAL-72ppi-768x378.png 768w, https://storage.googleapis.com/production-eng/1/2022/06/EN166-User-Forecasting-Models-Blog-Post-Header-FINAL-72ppi-120x59.png 120w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">June 16, 2022 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2022/06/how-we-built-infrastructure-to-run-user-forecasts-at-spotify/" title="How We Built Infrastructure to Run User Forecasts at Spotify">How We Built Infrastructure to Run User Forecasts at Spotify</a> </h2> <!-- /post title --> <p>TL;DR With Spotify’s rapid global expansion to more than 180 countries, it’s critical that the infrastructure of user forecasts catch [...]</p> <span class="by"> Published by Molly Zhu, Insights Manager </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-5300" class="post-5300 post type-post status-publish format-standard has-post-thumbnail hentry category-developer-tools category-infrastructure category-people category-platform tag-backend tag-engineering-leadership"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2022/05/failing-forward-how-we-grow-from-incidents/" title="Failing Forward — How We Grow from Incidents"> <img src="https://storage.googleapis.com/production-eng/1/2022/05/N164-Failing-Forward-How-We-Grow-from-Incidents_final-v4_header-72PPI.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Failing Forward — How We Grow from Incidents" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2022/05/N164-Failing-Forward-How-We-Grow-from-Incidents_final-v4_header-72PPI.png 1200w, https://storage.googleapis.com/production-eng/1/2022/05/N164-Failing-Forward-How-We-Grow-from-Incidents_final-v4_header-72PPI-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2022/05/N164-Failing-Forward-How-We-Grow-from-Incidents_final-v4_header-72PPI-700x344.png 700w, https://storage.googleapis.com/production-eng/1/2022/05/N164-Failing-Forward-How-We-Grow-from-Incidents_final-v4_header-72PPI-768x378.png 768w, https://storage.googleapis.com/production-eng/1/2022/05/N164-Failing-Forward-How-We-Grow-from-Incidents_final-v4_header-72PPI-120x59.png 120w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">May 12, 2022 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2022/05/failing-forward-how-we-grow-from-incidents/" title="Failing Forward — How We Grow from Incidents">Failing Forward — How We Grow from Incidents</a> </h2> <!-- /post title --> <p>This past year, a few of us who focus on the reliability of Spotify for Artists (S4A) spent some time [...]</p> <span class="by"> Published by Clint Byrum, Staff Engineer </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-5158" class="post-5158 post type-post status-publish format-standard has-post-thumbnail hentry category-backstage category-developer-tools category-infrastructure category-my-beat tag-backend"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2022/03/chantal-delfeld-engineer/" title="Chantal Delfeld: Engineer"> <img src="https://storage.googleapis.com/production-eng/1/2022/03/Header-Image_Chantal-Delfeld.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2022/03/Header-Image_Chantal-Delfeld.png 1200w, https://storage.googleapis.com/production-eng/1/2022/03/Header-Image_Chantal-Delfeld-250x156.png 250w, https://storage.googleapis.com/production-eng/1/2022/03/Header-Image_Chantal-Delfeld-700x438.png 700w, https://storage.googleapis.com/production-eng/1/2022/03/Header-Image_Chantal-Delfeld-768x480.png 768w, https://storage.googleapis.com/production-eng/1/2022/03/Header-Image_Chantal-Delfeld-120x75.png 120w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">March 9, 2022 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2022/03/chantal-delfeld-engineer/" title="Chantal Delfeld: Engineer">Chantal Delfeld: Engineer</a> </h2> <!-- /post title --> <p>7:00am My early mornings are spent running about after my children – getting them dressed, giving them breakfast and putting on [...]</p> <span class="by"> Published by Spotify Engineering </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-5125" class="post-5125 post type-post status-publish format-standard has-post-thumbnail hentry category-data category-developer-tools category-infrastructure category-maching-learning category-mobile category-platform category-product tag-engineering-culture tag-engineering-leadership"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2022/03/introducing-nerdout-at-spotify-tech-podcast/" title="Introducing NerdOut@Spotify: A New Podcast for Developers"> <img src="https://storage.googleapis.com/production-eng/1/2022/03/NerdOut@Spotify.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2022/03/NerdOut@Spotify.png 1000w, https://storage.googleapis.com/production-eng/1/2022/03/NerdOut@Spotify-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2022/03/NerdOut@Spotify-700x343.png 700w, https://storage.googleapis.com/production-eng/1/2022/03/NerdOut@Spotify-768x376.png 768w, https://storage.googleapis.com/production-eng/1/2022/03/NerdOut@Spotify-120x59.png 120w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">March 1, 2022 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2022/03/introducing-nerdout-at-spotify-tech-podcast/" title="Introducing NerdOut@Spotify: A New Podcast for Developers">Introducing NerdOut@Spotify: A New Podcast for Developers</a> </h2> <!-- /post title --> <p>TL;DR For years, Spotify’s official engineering blog has been giving you a peek behind the curtain at Spotify R&D. Today, [...]</p> <span class="by"> Published by Dave Zolotusky, Principal Engineer </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-4821" class="post-4821 post type-post status-publish format-standard has-post-thumbnail hentry category-data category-data-science category-developer-tools category-infrastructure tag-data"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2021/10/changing-the-wheels-on-a-moving-bus-spotify-event-delivery-migration/" title="Changing the Wheels on a Moving Bus — Spotify’s Event Delivery Migration"> <img src="https://storage.googleapis.com/production-eng/1/2021/10/Event-Delivery_Header-IMage.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2021/10/Event-Delivery_Header-IMage.png 2105w, https://storage.googleapis.com/production-eng/1/2021/10/Event-Delivery_Header-IMage-250x124.png 250w, https://storage.googleapis.com/production-eng/1/2021/10/Event-Delivery_Header-IMage-700x347.png 700w, https://storage.googleapis.com/production-eng/1/2021/10/Event-Delivery_Header-IMage-768x381.png 768w, https://storage.googleapis.com/production-eng/1/2021/10/Event-Delivery_Header-IMage-1536x761.png 1536w, https://storage.googleapis.com/production-eng/1/2021/10/Event-Delivery_Header-IMage-2048x1015.png 2048w, https://storage.googleapis.com/production-eng/1/2021/10/Event-Delivery_Header-IMage-120x59.png 120w" sizes="auto, (max-width: 2105px) 100vw, 2105px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">October 20, 2021 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2021/10/changing-the-wheels-on-a-moving-bus-spotify-event-delivery-migration/" title="Changing the Wheels on a Moving Bus — Spotify’s Event Delivery Migration">Changing the Wheels on a Moving Bus — Spotify’s Event Delivery Migration</a> </h2> <!-- /post title --> <p>At Spotify, data rules all. We log a variety of data, from listening history, to results of A/B testing, to [...]</p> <span class="by"> Published by Flavio Santos (Data Infrastructure Engineer) and Robert Stephenson (Senior Product Manager) </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-4612" class="post-4612 post type-post status-publish format-standard has-post-thumbnail hentry category-backstage category-infrastructure category-open-source tag-backend tag-engineering-leadership"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2021/05/a-product-story-the-lessons-of-backstage-and-spotifys-autonomous-culture/" title="A Product Story: The Lessons of Backstage and Spotify’s Autonomous Culture"> <img src="https://storage.googleapis.com/production-eng/1/2020/08/05-18-21-A-Product-Story.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2020/08/05-18-21-A-Product-Story.png 2500w, https://storage.googleapis.com/production-eng/1/2020/08/05-18-21-A-Product-Story-250x123.png 250w, https://storage.googleapis.com/production-eng/1/2020/08/05-18-21-A-Product-Story-700x344.png 700w, https://storage.googleapis.com/production-eng/1/2020/08/05-18-21-A-Product-Story-768x378.png 768w, https://storage.googleapis.com/production-eng/1/2020/08/05-18-21-A-Product-Story-1536x756.png 1536w, https://storage.googleapis.com/production-eng/1/2020/08/05-18-21-A-Product-Story-2048x1008.png 2048w, https://storage.googleapis.com/production-eng/1/2020/08/05-18-21-A-Product-Story-120x59.png 120w" sizes="auto, (max-width: 2500px) 100vw, 2500px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">May 18, 2021 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2021/05/a-product-story-the-lessons-of-backstage-and-spotifys-autonomous-culture/" title="A Product Story: The Lessons of Backstage and Spotify’s Autonomous Culture">A Product Story: The Lessons of Backstage and Spotify’s Autonomous Culture</a> </h2> <!-- /post title --> <p>TLDR; In episode 08 of our podcast series “Spotify: A Product Story”, we share stories and lessons from building and [...]</p> <span class="by"> Published by Spotify Engineering </span> </div> </article> <!-- /article --> </li> <li> <!-- article --> <article id="post-4585" class="post-4585 post type-post status-publish format-standard has-post-thumbnail hentry category-backstage category-developer-tools category-infrastructure tag-engineering-leadership"> <!-- post thumbnail --> <div class="img-holder"> <a href="https://engineering.atspotify.com/2021/05/spotify-wins-cncfs-top-end-user-award-and-toots-own-horn-about-it/" title="Spotify Wins CNCF’s Top End User Award and Toots Own Horn About It"> <img src="https://storage.googleapis.com/production-eng/1/2021/05/spotify-wins-cncf-end-user-award-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://storage.googleapis.com/production-eng/1/2021/05/spotify-wins-cncf-end-user-award-1.png 2105w, https://storage.googleapis.com/production-eng/1/2021/05/spotify-wins-cncf-end-user-award-1-250x126.png 250w, https://storage.googleapis.com/production-eng/1/2021/05/spotify-wins-cncf-end-user-award-1-700x351.png 700w, https://storage.googleapis.com/production-eng/1/2021/05/spotify-wins-cncf-end-user-award-1-768x386.png 768w, https://storage.googleapis.com/production-eng/1/2021/05/spotify-wins-cncf-end-user-award-1-1536x771.png 1536w, https://storage.googleapis.com/production-eng/1/2021/05/spotify-wins-cncf-end-user-award-1-2048x1028.png 2048w, https://storage.googleapis.com/production-eng/1/2021/05/spotify-wins-cncf-end-user-award-1-120x60.png 120w" sizes="auto, (max-width: 2105px) 100vw, 2105px" /> </a> </div> <!-- /post thumbnail --> <div class="info"> <span class="date">May 11, 2021 </span> <!-- post title --> <h2> <a href="https://engineering.atspotify.com/2021/05/spotify-wins-cncfs-top-end-user-award-and-toots-own-horn-about-it/" title="Spotify Wins CNCF’s Top End User Award and Toots Own Horn About It">Spotify Wins CNCF’s Top End User Award and Toots Own Horn About It</a> </h2> <!-- /post title --> <p>Last week, Spotify won an award — and we’re not playing it cool. We tweeted. We bragged on LinkedIn. Our [...]</p> <span class="by"> Published by Dave Zolotusky, Principal Engineer & CNCF Technical Oversight Committee Representative </span> </div> </article> <!-- /article --> </li> </ul> <!-- pagination --> <div class="pagination"> <span aria-current="page" class="page-numbers current">1</span> <a class="page-numbers" href="https://engineering.atspotify.com/category/infrastructure/page/2/">2</a> <a class="page-numbers" href="https://engineering.atspotify.com/category/infrastructure/page/3/">3</a> <a class="page-numbers" href="https://engineering.atspotify.com/category/infrastructure/page/4/">4</a> <a class="next page-numbers" href="https://engineering.atspotify.com/category/infrastructure/page/2/">Next »</a></div> <!-- /pagination --> </section> <!-- /section --> <aside class="asidebar"> <div class="categories-list sub-nav" > <div class="field-label">Infrastructure</div> <h2>Other categories</h2> <ul> <li class="cat-item cat-item-147"><a href="https://engineering.atspotify.com/category/backstage/">Backstage</a> </li> <li class="cat-item cat-item-2"><a href="https://engineering.atspotify.com/category/data/">Data</a> </li> <li class="cat-item cat-item-3"><a href="https://engineering.atspotify.com/category/data-science/">Data Science</a> </li> <li class="cat-item cat-item-146"><a href="https://engineering.atspotify.com/category/design/">Design</a> </li> <li class="cat-item cat-item-4"><a href="https://engineering.atspotify.com/category/developer-tools/">Developer Tools</a> </li> <li class="cat-item cat-item-5 current-cat"><a aria-current="page" href="https://engineering.atspotify.com/category/infrastructure/">Infrastructure</a> </li> <li class="cat-item cat-item-6"><a href="https://engineering.atspotify.com/category/labs/">Labs</a> </li> <li class="cat-item cat-item-7"><a href="https://engineering.atspotify.com/category/maching-learning/">Machine Learning</a> </li> <li class="cat-item cat-item-8"><a href="https://engineering.atspotify.com/category/mobile/">Mobile</a> </li> <li class="cat-item cat-item-10"><a href="https://engineering.atspotify.com/category/open-source/">Open Source</a> </li> <li class="cat-item cat-item-11"><a href="https://engineering.atspotify.com/category/people/">People</a> </li> <li class="cat-item cat-item-149"><a href="https://engineering.atspotify.com/category/platform/">Platform</a> </li> <li class="cat-item cat-item-148"><a href="https://engineering.atspotify.com/category/product/">Product</a> </li> <li class="cat-item cat-item-12"><a href="https://engineering.atspotify.com/category/security/">Security</a> </li> <li class="cat-item cat-item-144"><a href="https://engineering.atspotify.com/category/web/">Web</a> </li> </ul> </div> </aside> </main> <!-- Begin Mailchimp Signup Form --> <link href="//cdn-images.mailchimp.com/embedcode/classic-10_7.css" rel="stylesheet" type="text/css"> <div class="subscribe"> <div class="container"> <div class="footer-logo mobile"> <a href="https://engineering.atspotify.com"> <img src="https://engineering.atspotify.com/wp-content/themes/theme-spotify/images/footer-logo.svg" alt=""> </a> </div> </div> <div class="container"> <div class="col-6"> <div class="content-wrapper"> <h2>Sign up for engineering updates</h2> <small>By clicking sign up you’ll receive occasional emails from Spotify. You always have the choice to adjust your interest settings or unsubscribe.</small> </div> </div> <div class="col-6"> <div id="mc_embed_signup"> <form action="https://spotify.us20.list-manage.com/subscribe/post?u=99aa88d3fba458716d0cd1299&id=28cc680980" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate> <div id="mc_embed_signup_scroll"> <!-- <div class="indicates-required"><span class="asterisk">*</span> indicates required</div> --> <div class="mc-field-group"> <!-- <label for="mce-EMAIL">Email Address <span class="asterisk">*</span> </label> --> <input type="email" value="" name="EMAIL" class="required email" id="mce-EMAIL" placeholder="Your Email"> <input type="submit" value="Sign up!" name="subscribe" id="mc-embedded-subscribe" class="button"> </div> <div id="mce-responses" class="clear"> <div class="response" id="mce-error-response" style="display:none"></div> <div class="response" id="mce-success-response" style="display:none"></div> </div> <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups--> <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_99aa88d3fba458716d0cd1299_28cc680980" tabindex="-1" value=""></div> </div> </form> </div> <ul class="social-networks"> <li> <a href="http://www.instagram.com/lifeatspotify" target="_blank"> <img src="https://engineering.atspotify.com/wp-content/themes/theme-spotify/images/instagram.svg" alt="Instagram"> </a> </li> <li> <a href="https://twitter.com/spotifyeng" target="_blank"> <img src="https://engineering.atspotify.com/wp-content/themes/theme-spotify/images/twitter.svg" alt="Twitter"> </a> </li> <li> <a href="https://www.facebook.com/spotify" target="_blank"> <img src="https://engineering.atspotify.com/wp-content/themes/theme-spotify/images/facebook.svg" alt="Facebook"> </a> </li> <li> <a href="https://www.linkedin.com/showcase/spotify-r&d/" target="_blank"> <img src="https://engineering.atspotify.com/wp-content/themes/theme-spotify/images/linkedin.svg" alt="Linked In"> </a> </li> <li> <a href="https://engineering.atspotify.com/feed" target="_blank"> <img src="https://engineering.atspotify.com/wp-content/themes/theme-spotify/images/rss.svg" alt="Instagram"> </a> </li> </ul> </div> </div> </div> <!--End mc_embed_signup--><!-- footer --> <footer id="footer"> <div class="container"> <div class="footer-lft"> <div class="col-1"> <div class="footer-logo"> <a href="https://engineering.atspotify.com"> <img src="https://engineering.atspotify.com/wp-content/themes/theme-spotify/images/footer-logo.svg" alt=""> </a> </div> </div> <div class="col-2"> <ul class="footer-main-links"> <li> <a href="https://www.lifeatspotify.com/" class="Footer-link ga" target="_blank">Spotify Jobs</a> </li> <li> <a href="https://spotify.com" class="Footer-link ga" target="_blank">Spotify.com</a> </li> <li> <a href="https://newsroom.spotify.com" class="Footer-link ga" target="_blank">Newsroom</a> </li> </ul> <ul class="footer-main-links"> <li> <a href="https://research.atspotify.com/" class="Footer-link ga" target="_blank">Spotify R&D Research</a> </li> <li> <a href="https://spotify.design/" class="Footer-link ga" target="_blank">Spotify R&D Design</a> </li> </ul> <div class="row"> <ul class="footer-links"> <li><a target="_blank" href="https://www.spotify.com/us/legal/end-user-agreement/" class="Footer-link ga" data-ga-category="Outbound Links" data-ga-action="Legal" data-ga-label="Footer">Legal</a></li> <li><a target="_blank" href="https://www.spotify.com/us/legal/privacy-policy/" class="Footer-link ga" data-ga-category="Outbound Links" data-ga-action="Privacy" data-ga-label="Footer">Privacy</a> </li> <li id="cookie-policy"> <button id="ot-sdk-btn" class="ot-sdk-show-settings"></button> <a title="Cookies" id="policy" href="https://www.spotify.com/legal/cookies-policy/" class="policy">Cookies</a> </li> <li><a target="_blank" href="https://www.spotify.com/us/legal/privacy-policy/" class="Footer-link ga" data-ga-category="Outbound Links" data-ga-action="About Ads" data-ga-label="Footer">About Ads</a></li> </ul> <div class="copyrights">© 2024 Spotify AB</div> </div> </div> </div> </div> </footer> <!-- /footer --> </div> <!-- /wrapper --> <!-- Mail Chimp code --> <script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script> <script type='text/javascript'> (function($) { window.fnames = new Array(); window.ftypes = new Array(); fnames[0] = 'EMAIL'; ftypes[0] = 'email'; fnames[1] = 'FNAME'; ftypes[1] = 'text'; fnames[2] = 'LNAME'; ftypes[2] = 'text'; fnames[3] = 'ADDRESS'; ftypes[3] = 'address'; fnames[4] = 'PHONE'; ftypes[4] = 'phone'; }(jQuery)); var $mcj = jQuery.noConflict(true); </script> <script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script> <script src="https://code.createjs.com/createjs-2015.11.26.min.js"></script> <script src="https://unpkg.com/embla-carousel/embla-carousel.umd.js"></script> <!-- <script src="https://engineering.atspotify.com/wp-content/themes/theme-spotify/js/desktop-banner.js"></script> --> <script src="https://engineering.atspotify.com/wp-content/themes/theme-spotify/js/dotButtons.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.7.1/gsap.min.js" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script type="text/javascript"> const OPTIONS = {align: 'center', containScroll: false, startIndex:1} const wrap = document.querySelector(".embla"); const viewPort = wrap.querySelector(".embla__viewport"); const prevBtn = wrap.querySelector(".embla__button--prev"); const nextBtn = wrap.querySelector(".embla__button--next"); const embla = EmblaCarousel(viewPort,OPTIONS); const disablePrevAndNextBtns = disablePrevNextBtns(prevBtn, nextBtn, embla); setupPrevNextBtns(prevBtn, nextBtn, embla); embla.on("select", disablePrevAndNextBtns); embla.on("init", disablePrevAndNextBtns); </script> <script> function cookieSettings() { let cookiePlacement = document.getElementById("cookie-policy") let cookieSettingsBtn = document.createElement("button") cookieSettingsBtn.setAttribute('id', 'ot-sdk-btn') cookieSettingsBtn.setAttribute('class', 'ot-sdk-show-settings') cookiePlacement.appendChild(cookieSettingsBtn) } function cookiePolicy() { let cookiePlacement = document.getElementById("cookie-policy") let cookiePolicy = document.createElement("a") let cookiePolicyLink = document.createTextNode("Cookies") cookiePolicy.appendChild(cookiePolicyLink) cookiePolicy.title = "Cookies" cookiePolicy.href = "https://www.spotify.com/legal/cookies-policy/" cookiePolicy.setAttribute('class', 'policy') cookiePlacement.append(cookiePolicy) } document.querySelector('head').addEventListener('countryFunc', function(e) { if (window.markerFunc() == 1) { // return cookieSettings() let Policy_Button = document.getElementById("ot-sdk-btn") Policy_Button.classList.add("show"); } else { // return cookiePolicy() let Policy_Button = document.getElementById("policy") Policy_Button.classList.add("show"); } }, false); </script> </body> </html>