CINXE.COM
Vimeo Engineering Blog – Medium
<!DOCTYPE html><html xmlns:cc="http://creativecommons.org/ns#"><head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# medium-com: http://ogp.me/ns/fb/medium-com#"><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://medium.com/vimeo-engineering-blog","20211201230001","https://web.archive.org/","web","/_static/", "1638399601"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=contain"><title>Vimeo Engineering Blog – Medium</title><link rel="canonical" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog"><link id="feedLink" rel="alternate" type="application/rss+xml" title="RSS" href="https://web.archive.org/web/20211201230001/https://medium.com/feed/vimeo-engineering-blog"><meta name="robots" content="index,follow"><meta name="title" content="Vimeo Engineering Blog – Medium"><meta name="referrer" content="unsafe-url"><meta name="description" content="We tinker, we build, and we dream up all-new things to help support the world's best community of creators. Lift up the hood and see how it all works."><meta name="keywords" content="VIMEO, VIDEO, ENGINEERING, TECH, CODING"><meta name="theme-color" content="#000000"><meta property="og:title" content="Vimeo Engineering Blog – Medium"><meta property="twitter:title" content="Vimeo Engineering Blog – Medium"><meta property="og:url" content="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog"><meta property="og:image" content="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/max/1200/1*aTJtrirnEDuzqgTrUEcd7g.png"><meta property="fb:app_id" content="542599432471018"><meta property="og:description" content="We tinker, we build, and we dream up all-new things to help support the world's best community of creators. Lift up the hood and see how it all works."><meta name="twitter:description" content="We tinker, we build, and we dream up all-new things to help support the world's best community of creators. Lift up the hood and see how it all works."><meta name="twitter:image:src" content="https://cdn-images-1.medium.com/max/1200/1*aTJtrirnEDuzqgTrUEcd7g.png"><meta property="og:type" content="medium-com:collection"><meta name="twitter:card" content="summary_large_image"><meta property="medium-com:creator" content="https://medium.com/@Vimeo"><meta name="twitter:site" content="@Medium"><meta property="og:site_name" content="Medium"><meta name="twitter:app:name:iphone" content="Medium"><meta name="twitter:app:id:iphone" content="828256236"><meta name="twitter:app:url:iphone" content="medium://vimeo-engineering-blog"><meta property="al:ios:app_name" content="Medium"><meta property="al:ios:app_store_id" content="828256236"><meta property="al:android:package" content="com.medium.reader"><meta property="al:android:app_name" content="Medium"><meta property="al:ios:url" content="medium://vimeo-engineering-blog"><meta property="al:android:url" content="medium://vimeo-engineering-blog"><meta property="al:web:url" content="https://medium.com/vimeo-engineering-blog"><link rel="search" type="application/opensearchdescription+xml" title="Medium" href="/web/20211201230001/https://medium.com/osd.xml"/><link rel="alternate" href="https://web.archive.org/web/20211201230001/android-app://com.medium.reader/https/medium.com/vimeo-engineering-blog"/><script type="application/ld+json">{"@context": "https://web.archive.org/web/20211201230001/http://schema.org", "@graph": [{"@type": "WebSite", "url": "https:\/\/web.archive.org\/web\/20211201230001\/https:\/\/medium.com", "name": "Medium", "alternateName": "Medium is a community of readers and writers offering unique perspectives on ideas large and small."},{"@type": "Organization", "url": "https:\/\/web.archive.org\/web\/20211201230001\/https:\/\/medium.com\/vimeo-engineering-blog", "name": "Vimeo Engineering Blog"}]}</script><link rel="stylesheet" href="https://web.archive.org/web/20211201230001cs_/https://cdn-static-1.medium.com/_/fp/css/main-branding-base.LfhAKclHYfd2poCL3maAvg.css"><script>!function(n,e){var t,o,i,c=[],f={passive:!0,capture:!0},r=new Date,a="pointerup",u="pointercancel";function p(n,c){t||(t=c,o=n,i=new Date,w(e),s())}function s(){o>=0&&o<i-r&&(c.forEach(function(n){n(o,t)}),c=[])}function l(t){if(t.cancelable){var o=(t.timeStamp>1e12?new Date:performance.now())-t.timeStamp;"pointerdown"==t.type?function(t,o){function i(){p(t,o),r()}function c(){r()}function r(){e(a,i,f),e(u,c,f)}n(a,i,f),n(u,c,f)}(o,t):p(o,t)}}function w(n){["click","mousedown","keydown","touchstart","pointerdown"].forEach(function(e){n(e,l,f)})}w(n),self.perfMetrics=self.perfMetrics||{},self.perfMetrics.onFirstInputDelay=function(n){c.push(n),s()}}(addEventListener,removeEventListener);</script><script>document.domain = document.domain;</script><script>if (window.top !== window.self) window.location = 'about:blank';var OB_startTime = new Date().getTime(); var OB_loadErrors = []; function _onerror(e) { OB_loadErrors.push(e) }; if (document.addEventListener) document.addEventListener("error", _onerror, true); else if (document.attachEvent) document.attachEvent("onerror", _onerror); function _asyncScript(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("script"); s.type = "text/javascript"; s.async = true; s.src = u; f.parentNode.insertBefore(s, f);}function _asyncStyles(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("link"); s.rel = "stylesheet"; s.href = u; f.parentNode.insertBefore(s, f); return s}(new Image()).src = "/_/stat?event=pixel.load&origin=" + encodeURIComponent(location.origin);</script><script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; ga("create", "UA-24232453-2", "auto", {"allowLinker": true, "legacyCookieDomain": window.location.hostname});ga("send", "pageview");</script><script async src="https://web.archive.org/web/20211201230001js_/https://www.google-analytics.com/analytics.js"></script><script>(function () {var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; document.write("<style>section.section-image--fullBleed.is-backgrounded {padding-top: " + Math.round(1.1 * height) + "px;}section.section-image--fullScreen.is-backgrounded, section.section-image--coverFade.is-backgrounded {min-height: " + height + "px; padding-top: " + Math.round(0.5 * height) + "px;}.u-height100vh {height: " + height + "px !important;}.u-height110vh {height: " + Math.round(1.1 * height) + "px !important;}.u-minHeight100vh {min-height: " + height + "px !important;}.u-maxHeight100vh {max-height: " + height + "px !important;}section.section-image--coverFade {height: " + height + "px;}.section-aspectRatioViewportPlaceholder, .section-aspectRatioViewportCropPlaceholder {max-height: " + height + "px;}.section-aspectRatioViewportBottomSpacer, .section-aspectRatioViewportBottomPlaceholder {max-height: " + Math.round(0.5 * height) + "px;}.zoomable:before {top: " + (-1 * height) + "px; left: " + (-1 * width) + "px; padding: " + height + "px " + width + "px;}</style>");})()</script><!--[if lt IE 9]><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.js"></script><![endif]--><link rel="icon" href="https://web.archive.org/web/20211201230001im_/https://miro.medium.com/1*m-R_BkNf1Qjr1YbyOIJY2w.png" class="js-favicon"><link rel="apple-touch-icon" sizes="152x152" href="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/c/304/304/1*aTJtrirnEDuzqgTrUEcd7g.png"><link rel="apple-touch-icon" sizes="120x120" href="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/c/240/240/1*aTJtrirnEDuzqgTrUEcd7g.png"><link rel="apple-touch-icon" sizes="76x76" href="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/c/152/152/1*aTJtrirnEDuzqgTrUEcd7g.png"><link rel="apple-touch-icon" sizes="60x60" href="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/c/120/120/1*aTJtrirnEDuzqgTrUEcd7g.png"><link rel="mask-icon" href="https://web.archive.org/web/20211201230001im_/https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.svg" color="#171717"></head><body itemscope class=" v-unbound v-glyph v-glyph--m2-unbound is-noJs"><script>document.body.className = document.body.className.replace(/(^|\s)is-noJs(\s|$)/, "$1is-js$2")</script><div class="site-main" id="container"><div class="butterBar butterBar--error"></div><div class="surface"><div id="prerendered" class="screenContent"><div class="metabar u-clearfix u-textColorTransparentWhiteDarker u-tintBgColor u-tintSpectrum js-metabar"><div class="branch-journeys-top"></div><div class="js-metabarMiddle metabar-inner u-marginAuto u-maxWidth1032 u-flexCenter u-justifyContentSpaceBetween u-height65 u-xs-height56 u-paddingHorizontal20"><div class="metabar-block u-flex1 u-flexCenter"><div class="js-metabarLogoLeft"><a href="https://web.archive.org/web/20211201230001/https://medium.com/" data-log-event="home" class="siteNav-logo u-fillBlack u-flex0 u-flexCenter u-paddingTop0"><span class="svgIcon svgIcon--logoMonogramUnbound svgIcon--25px"><svg class="svgIcon-use" height="25" viewbox="0 0 1043.63 592.71"><g data-name="Layer 2"><g data-name="Layer 1"><path d="M588.67 296.36c0 163.67-131.78 296.35-294.33 296.35S0 460 0 296.36 131.78 0 294.34 0s294.33 132.69 294.33 296.36"/><path d="M911.56 296.36c0 154.06-65.89 279-147.17 279s-147.17-124.94-147.17-279 65.88-279 147.16-279 147.17 124.9 147.17 279"/><path d="M1043.63 296.36c0 138-23.17 249.94-51.76 249.94s-51.75-111.91-51.75-249.94 23.17-249.94 51.75-249.94 51.76 111.9 51.76 249.94"/></g></g></svg></span><span class="u-textScreenReader">Homepage</span></a></div><div class="u-paddingLeft10 u-sm-show r-paddingRight10"><a href="https://web.archive.org/web/20211201230001/https://rsci.app.link/?%24canonical_url=https%3A%2F%2Fmedium.com/vimeo-engineering-blog%3F~feature=LoMobileNavBar&~channel=ShowCollectionHome&~stage=m2">Open in app</a></div></div><div class="metabar-block u-flex0 u-flexCenter"><div class="u-flexCenter u-height65 u-xs-height56"><div class="buttonSet buttonSet--wide u-lineHeightInherit"><a class="button button--primary button--light button--chromeless u-accentColor--buttonNormal is-inSiteNavBar u-xs-hide js-signInButton" href="https://web.archive.org/web/20211201230001/https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%2Fvimeo-engineering-blog&source=--------------------------nav_reg&operation=login" data-action="sign-in-prompt" data-redirect="https://medium.com/vimeo-engineering-blog" data-action-source="--------------------------nav_reg">Sign in</a><a class="button button--primary button--light button--withChrome u-accentColor--buttonNormal is-inSiteNavBar js-signUpButton" href="https://web.archive.org/web/20211201230001/https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%2Fvimeo-engineering-blog&source=--------------------------nav_reg&operation=register" data-action="sign-up-prompt" data-redirect="https://medium.com/vimeo-engineering-blog" data-action-source="--------------------------nav_reg">Get started</a></div></div></div></div></div><div class="metabar metabar--spacer js-metabarSpacer u-tintBgColor u-height65 u-xs-height56"></div><div class="collectionHeader js-collectionHeaderContainer u-relative collectionHeader--layoutLarge collectionHeader--alignmentLeft collectionHeader--withLogo collectionHeader--withoutBackground collectionHeader--colorBehaviorBold collectionHeader--withoutNavigation collectionHeader--editorLayoutTitleAndLogo is-modeView u-tintBgColor"><div class="collectionHeader-aspectRatioTable"><div class="collectionHeader-aspectRatioContent u-backgroundSizeCover js-collectionHeaderBackground"><div class="collectionHeader-overlayBackground u-height100vh"></div><header class="collectionHeader-heroAndInlineNav u-borderBox u-maxWidth1072 u-paddingLeft20 u-paddingRight20 u-marginAuto u-foreground js-collectionHeader"><div class="collectionHeader-hero js-collectionHeaderHero u-clearfix u-tintSpectrum"><div class="collectionHeader-heroInner"><div class="collectionHeader-logo js-collectionHeaderLogo" style="max-width: 233px;"><a class="link u-baseColor--link" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog" title="Go to Vimeo Engineering Blog" aria-label="Go to Vimeo Engineering Blog"><div class="u-relative u-marginAuto"><div style="padding-bottom: 60.08064516129032%"></div><img class="collectionHeader-logoImage js-collectionHeaderLogoImage" src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/max/466/1*kRn0TQdR7OreKRJ1_5lxxQ@2x.png" data-image-id="1*kRn0TQdR7OreKRJ1_5lxxQ@2x.png" data-width="992" data-height="596"/></div></a></div><div class="collectionHeader-nameAndDescription"><a class="link link--noUnderline u-baseColor--link" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog" title="Go to Vimeo Engineering Blog" aria-label="Go to Vimeo Engineering Blog"><h1 class="collectionHeader-name js-collectionName u-foreground u-baseColor--textDark u-paddingBottom4 u-lineHeightTightest u-contentSansBold u-fontSize40 u-xs-fontSize32">Vimeo Engineering Blog</h1></a><h2 class="collectionHeader-description js-collectionDescription u-foreground u-baseColor--textNormal u-contentSansRegular u-fontSize24 u-xs-fontSize18">How we tinker, build, and dream up all-new things for Vimeo.</h2></div></div></div></header></div><div class="collectionHeader-aspectRatioCell"><div class="collectionHeader-aspectRatioFullWidth"></div></div></div><div class="collectionHeader-blockNav"><div class="u-borderBox u-maxWidth1072 u-paddingLeft20 u-paddingRight20 u-marginAuto"><nav class="collectionHeader-nav u-clearfix js-collectionHeaderNav u-lineHeight40 u-overflowHiddenY u-tintSpectrum"><div class="buttonSet u-flex1 u-noWrap u-overflowX u-paddingBottom100 u-xs-marginRight15"><label class="button button--small button--chromeless button--withIcon button--withSvgIcon inputGroup u-sm-hide metabar-predictiveSearch u-baseColor--buttonNormal u-baseColor--placeholderNormal" title="Search"><span class="svgIcon svgIcon--search svgIcon--25px u-baseColor--iconLight"><svg class="svgIcon-use" width="25" height="25"><path d="M20.067 18.933l-4.157-4.157a6 6 0 10-.884.884l4.157 4.157a.624.624 0 10.884-.884zM6.5 11c0-2.62 2.13-4.75 4.75-4.75S16 8.38 16 11s-2.13 4.75-4.75 4.75S6.5 13.62 6.5 11z"/></svg></span><input class="js-predictiveSearchInput textInput textInput--rounded textInput--darkText u-baseColor--textNormal textInput--transparent" type="search" placeholder="Search" required="true" data-collection-id="92df1b631aeb"/></label><a class="button button--light button--chromeless is-touchIconBlackPulse u-baseColor--buttonLight button--withIcon button--withSvgIcon button--chromeless u-verticalAlignMiddle" href="https://web.archive.org/web/20211201230001/https://twitter.com/vimeo" title="Visit “Vimeo Engineering Blog” on Twitter" aria-label="Visit “Vimeo Engineering Blog” on Twitter" rel="me" target="_blank"><span class="button-defaultState"><span class="svgIcon svgIcon--twitterFilled svgIcon--25px"><svg class="svgIcon-use" width="25" height="25"><path d="M22.31 4.305a8.48 8.48 0 01-2.684 1.073A4.245 4.245 0 0016.486 4a4.293 4.293 0 00-4.293 4.29c0 .34.037.669.077.997a12.199 12.199 0 01-8.814-4.521 4.805 4.805 0 00-.613 2.141c.033 1.514.79 2.83 1.916 3.594a4.13 4.13 0 01-1.913-.542.185.185 0 000 .074c-.005 2.055 1.476 3.79 3.446 4.21-.37.073-.746.122-1.15.147-.266-.025-.535-.05-.767-.074.517 1.686 2.101 2.917 3.988 2.99a9.028 9.028 0 01-5.366 1.834L2 19.08A12.258 12.258 0 008.59 21c7.886 0 12.203-6.547 12.185-12.184a4.103 4.103 0 000-.616 8.057 8.057 0 002.147-2.227 7.612 7.612 0 01-2.451.69 4.092 4.092 0 001.838-2.376"/></svg></span></span></a><a class="button button--light button--chromeless is-touchIconBlackPulse u-baseColor--buttonLight button--withIcon button--withSvgIcon button--chromeless u-verticalAlignMiddle" href="//web.archive.org/web/20211201230001/https://facebook.com/vimeo" title="Visit “Vimeo Engineering Blog” on Facebook" aria-label="Visit “Vimeo Engineering Blog” on Facebook" rel="me" target="_blank"><span class="button-defaultState"><span class="svgIcon svgIcon--facebookFilled svgIcon--25px"><svg class="svgIcon-use" width="25" height="25"><path d="M21 12.646C21 7.65 16.97 3.6 12 3.6s-9 4.05-9 9.046a9.026 9.026 0 007.59 8.924v-6.376H8.395V12.64h2.193v-1.88c0-2.186 1.328-3.375 3.267-3.375.93 0 1.728.07 1.96.1V9.77H14.47c-1.055 0-1.26.503-1.26 1.242v1.63h2.517l-.33 2.554H13.21V21.6c4.398-.597 7.79-4.373 7.79-8.954"/></svg></span></span></a></div><div class="buttonSet u-textAlignRight u-marginLeft18 u-flex0 u-noWrap"><button class="button button--primary button--smallest u-noUserSelect button--withChrome u-accentColor--buttonNormal js-relationshipButton is-smallPill" data-action="sign-up-prompt" data-sign-in-action="toggle-follow-collection" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/collection/vimeo-engineering-blog" data-action-source="pub_header----92df1b631aeb----------------------follow_pub" data-collection-id="92df1b631aeb"><span class="button-label js-buttonLabel">Follow</span></button></div></nav></div></div></div><div class="u-marginBottom40 js-collectionStream"><div class="streamItem streamItem--section js-streamItem"><div class="u-clearfix u-maxWidth1032 u-marginAuto"><div class="row u-marginTop30 u-marginBottom20 u-sm-marginLeft20 u-sm-marginRight20 u-xs-marginTop0 u-xs-marginRight0 u-xs-marginLeft0"><div class="col u-size8of12 u-xs-size12of12"><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation u-borderBottomLight" data-source="collection_home---6------0-----------------------" data-post-id="751b01d1c874"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://web.archive.org/web/20211201230001/https://medium.com/@jaspreet-ranjit" data-action="show-user-card" data-action-value="fce00e13dbfb" data-action-type="hover" data-user-id="fce00e13dbfb" dir="auto"><div class="u-relative u-inlineBlock u-flex0"><img src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/c/72/72/1*PAJKTOe6hL0nwpJsSlce9w.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Jaspreet Ranjit"><div class="avatar-halo u-absolute u-textColorGreenNormal svgIcon" style=" display:flex; flex-direction:row; align-items: center; justify-content: center; height:calc(100% + 25px); width:calc(100% + 25px); pointer-events: none; top:50%; left:50%; transform:translateY(-50%) translateX(-50%); "><svg width="39" height="39" viewbox="0 0 39 39" xmlns="http://www.w3.org/2000/svg" style="width: calc(100% - 18px); height: calc(100% - 18px);"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.5 1C11.8339 1 5.168 5.74599 1.90845 12.7115L1 12.2885C4.40345 5.01551 11.3974 0 19.5 0C27.6026 0 34.5966 5.01551 38 12.2885L37.0915 12.7115C33.832 5.74599 27.1661 1 19.5 1ZM1.90845 26.2885C5.168 33.254 11.8339 38 19.5 38C27.1661 38 33.832 33.254 37.0915 26.2885L38 26.7115C34.5966 33.9845 27.6026 39 19.5 39C11.3974 39 4.40345 33.9845 1 26.7115L1.90845 26.2885Z"/></svg></div></div></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://web.archive.org/web/20211201230001/https://medium.com/@jaspreet-ranjit?source=collection_home---6------0-----------------------" data-action="show-user-card" data-action-source="collection_home---6------0-----------------------" data-action-value="fce00e13dbfb" data-action-type="hover" data-user-id="fce00e13dbfb" dir="auto">Jaspreet Ranjit</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/uncovering-bias-in-search-and-recommendations-751b01d1c874?source=collection_home---6------0-----------------------" data-action="open-post" data-action-value="https://medium.com/vimeo-engineering-blog/uncovering-bias-in-search-and-recommendations-751b01d1c874?source=collection_home---6------0-----------------------" data-action-source="preview-listing"><time datetime="2021-11-19T18:02:38.864Z">Nov 19</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="19 min read"></span></div></div></div></div></div><a class="" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/uncovering-bias-in-search-and-recommendations-751b01d1c874?source=collection_home---6------0-----------------------" data-action-source="collection_home---6------0-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="0*Qh34NdgtcQy400Ut" data-width="1206" data-height="892" data-is-featured="true" src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/t/1600/480/0*Qh34NdgtcQy400Ut"></div></figure><h3 name="80e5" id="80e5" class="graf graf--h3 graf-after--figure graf--title"><strong class="markup--strong markup--h3-strong">Uncovering bias in search and recommendations</strong></h3><h4 name="8fd3" id="8fd3" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle">Because the first step in controlling for bias is…</h4></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/uncovering-bias-in-search-and-recommendations-751b01d1c874?source=collection_home---6------0-----------------------" data-action="open-post" data-action-source="collection_home---6------0-----------------------" data-action-value="https://medium.com/vimeo-engineering-blog/uncovering-bias-in-search-and-recommendations-751b01d1c874?source=collection_home---6------0-----------------------" data-post-id="751b01d1c874">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="751b01d1c874" data-is-flush-left="true" data-source="listing-----751b01d1c874---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/751b01d1c874" data-action-source="listing-----751b01d1c874---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="751b01d1c874">93</button></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="751b01d1c874"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25"><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none"><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation u-borderBottomLight" data-source="collection_home---6------1-----------------------" data-post-id="bd9c3a4fd0b5"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://web.archive.org/web/20211201230001/https://medium.com/@mrccmpbll" data-action="show-user-card" data-action-value="f4943d90d808" data-action-type="hover" data-user-id="f4943d90d808" dir="auto"><img src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/c/72/72/1*ddje2ZQ4bxfdgoEHBAb_gQ.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Marc Campbell"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://web.archive.org/web/20211201230001/https://medium.com/@mrccmpbll?source=collection_home---6------1-----------------------" data-action="show-user-card" data-action-source="collection_home---6------1-----------------------" data-action-value="f4943d90d808" data-action-type="hover" data-user-id="f4943d90d808" dir="auto">Marc Campbell</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/vimeos-sergio-salvatore-on-scaling-and-cloud-databases-bd9c3a4fd0b5?source=collection_home---6------1-----------------------" data-action="open-post" data-action-value="https://medium.com/vimeo-engineering-blog/vimeos-sergio-salvatore-on-scaling-and-cloud-databases-bd9c3a4fd0b5?source=collection_home---6------1-----------------------" data-action-source="preview-listing"><time datetime="2021-11-12T14:03:07.042Z">Nov 12</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="1 min read"></span></div></div></div></div></div><a class="" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/vimeos-sergio-salvatore-on-scaling-and-cloud-databases-bd9c3a4fd0b5?source=collection_home---6------1-----------------------" data-action-source="collection_home---6------1-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*5LzC70l3wLE8CNSgOcNi3Q.png" data-width="1281" data-height="721" data-is-featured="true" src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/t/1600/480/1*5LzC70l3wLE8CNSgOcNi3Q.png"></div></figure><h3 name="86e4" id="86e4" class="graf graf--h3 graf-after--figure graf--title"><strong class="markup--strong markup--h3-strong">Vimeo’s Sergio Salvatore on scaling and cloud databases</strong></h3><h4 name="b39b" id="b39b" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle">A Senior Director of Engineering talks shop…</h4></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/vimeos-sergio-salvatore-on-scaling-and-cloud-databases-bd9c3a4fd0b5?source=collection_home---6------1-----------------------" data-action="open-post" data-action-source="collection_home---6------1-----------------------" data-action-value="https://medium.com/vimeo-engineering-blog/vimeos-sergio-salvatore-on-scaling-and-cloud-databases-bd9c3a4fd0b5?source=collection_home---6------1-----------------------" data-post-id="bd9c3a4fd0b5">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="bd9c3a4fd0b5" data-is-flush-left="true" data-source="listing-----bd9c3a4fd0b5---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/bd9c3a4fd0b5" data-action-source="listing-----bd9c3a4fd0b5---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="bd9c3a4fd0b5">12</button></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="bd9c3a4fd0b5"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25"><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none"><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation u-borderBottomLight" data-source="collection_home---6------2-----------------------" data-post-id="42221f9a8623"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://web.archive.org/web/20211201230001/https://medium.com/@ZeevFeldbeine" data-action="show-user-card" data-action-value="c497c5a4b2de" data-action-type="hover" data-user-id="c497c5a4b2de" dir="auto"><img src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/c/72/72/1*mQ3A7pmHN6XSd9yNma2KRQ@2x.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of zeev feldbeine"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://web.archive.org/web/20211201230001/https://medium.com/@ZeevFeldbeine?source=collection_home---6------2-----------------------" data-action="show-user-card" data-action-source="collection_home---6------2-----------------------" data-action-value="c497c5a4b2de" data-action-type="hover" data-user-id="c497c5a4b2de" dir="auto">zeev feldbeine</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/too-big-to-query-how-to-query-hbase-with-minimal-pain-42221f9a8623?source=collection_home---6------2-----------------------" data-action="open-post" data-action-value="https://medium.com/vimeo-engineering-blog/too-big-to-query-how-to-query-hbase-with-minimal-pain-42221f9a8623?source=collection_home---6------2-----------------------" data-action-source="preview-listing"><time datetime="2021-10-26T13:32:30.739Z">Oct 26</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="6 min read"></span></div></div></div></div></div><a class="" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/too-big-to-query-how-to-query-hbase-with-minimal-pain-42221f9a8623?source=collection_home---6------2-----------------------" data-action-source="collection_home---6------2-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*vw6is8NeEmGTc5PMVhqhzQ.png" data-width="2048" data-height="2048" data-is-featured="true" src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/t/1600/480/1*vw6is8NeEmGTc5PMVhqhzQ.png"></div></figure><h3 name="37df" id="37df" class="graf graf--h3 graf-after--figure graf--trailing graf--title">Too big to query: how to query HBase with minimal pain</h3></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/too-big-to-query-how-to-query-hbase-with-minimal-pain-42221f9a8623?source=collection_home---6------2-----------------------" data-action="open-post" data-action-source="collection_home---6------2-----------------------" data-action-value="https://medium.com/vimeo-engineering-blog/too-big-to-query-how-to-query-hbase-with-minimal-pain-42221f9a8623?source=collection_home---6------2-----------------------" data-post-id="42221f9a8623">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="42221f9a8623" data-is-flush-left="true" data-source="listing-----42221f9a8623---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/42221f9a8623" data-action-source="listing-----42221f9a8623---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="42221f9a8623">16</button></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="42221f9a8623"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25"><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none"><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation u-borderBottomLight" data-source="collection_home---6------3-----------------------" data-post-id="e1103df2d6b8"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://web.archive.org/web/20211201230001/https://medium.com/@rzumer" data-action="show-user-card" data-action-value="10bab874bf16" data-action-type="hover" data-user-id="10bab874bf16" dir="auto"><img src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/c/72/72/0*l3mag4j0fcKv54Ej.jpg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Raphaël Zumer"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://web.archive.org/web/20211201230001/https://medium.com/@rzumer?source=collection_home---6------3-----------------------" data-action="show-user-card" data-action-source="collection_home---6------3-----------------------" data-action-value="10bab874bf16" data-action-type="hover" data-user-id="10bab874bf16" dir="auto">Raphaël Zumer</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/thumbnails-for-everyone-e1103df2d6b8?source=collection_home---6------3-----------------------" data-action="open-post" data-action-value="https://medium.com/vimeo-engineering-blog/thumbnails-for-everyone-e1103df2d6b8?source=collection_home---6------3-----------------------" data-action-source="preview-listing"><time datetime="2021-10-15T17:06:59.040Z">Oct 15</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="5 min read"></span></div></div></div></div></div><a class="" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/thumbnails-for-everyone-e1103df2d6b8?source=collection_home---6------3-----------------------" data-action-source="collection_home---6------3-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="0*EZbLl9J5G6YnSIYT" data-width="800" data-height="400" data-is-featured="true" src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/t/1600/480/0*EZbLl9J5G6YnSIYT"></div></figure><h3 name="previewTitle" id="previewTitle" class="graf graf--h3 graf-after--figure graf--title">Picture-perfect thumbnails for all videos</h3><h4 name="previewSubtitle" id="previewSubtitle" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle">How we improved thumbnails for HDR, interlaced, and 360°…</h4></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/thumbnails-for-everyone-e1103df2d6b8?source=collection_home---6------3-----------------------" data-action="open-post" data-action-source="collection_home---6------3-----------------------" data-action-value="https://medium.com/vimeo-engineering-blog/thumbnails-for-everyone-e1103df2d6b8?source=collection_home---6------3-----------------------" data-post-id="e1103df2d6b8">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="e1103df2d6b8" data-is-flush-left="true" data-source="listing-----e1103df2d6b8---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/e1103df2d6b8" data-action-source="listing-----e1103df2d6b8---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="e1103df2d6b8">10</button></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="e1103df2d6b8"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25"><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none"><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation u-borderBottomLight" data-source="collection_home---6------4-----------------------" data-post-id="59e3feca7e84"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://web.archive.org/web/20211201230001/https://medium.com/@apkatsikas" data-action="show-user-card" data-action-value="53d6fde4a8ad" data-action-type="hover" data-user-id="53d6fde4a8ad" dir="auto"><img src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/c/72/72/1*OP3Rvemg2RgTkvgROVoQVA.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Andrew Katsikas"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://web.archive.org/web/20211201230001/https://medium.com/@apkatsikas?source=collection_home---6------4-----------------------" data-action="show-user-card" data-action-source="collection_home---6------4-----------------------" data-action-value="53d6fde4a8ad" data-action-type="hover" data-user-id="53d6fde4a8ad" dir="auto">Andrew Katsikas</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/how-we-built-better-automated-ui-testing-at-vimeo-59e3feca7e84?source=collection_home---6------4-----------------------" data-action="open-post" data-action-value="https://medium.com/vimeo-engineering-blog/how-we-built-better-automated-ui-testing-at-vimeo-59e3feca7e84?source=collection_home---6------4-----------------------" data-action-source="preview-listing"><time datetime="2021-09-14T14:54:37.104Z">Sep 14</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="4 min read"></span></div></div></div></div></div><a class="" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/how-we-built-better-automated-ui-testing-at-vimeo-59e3feca7e84?source=collection_home---6------4-----------------------" data-action-source="collection_home---6------4-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="0*_JS4VSBsV7W0rnUZ" data-width="1732" data-height="956" data-is-featured="true" alt="Screenshot of a test report generated using Backbone" src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/t/1600/480/0*_JS4VSBsV7W0rnUZ"></div></figure><h3 name="8c53" id="8c53" class="graf graf--h3 graf-after--figure graf--trailing graf--title">How we built better automated UI testing at Vimeo</h3></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/how-we-built-better-automated-ui-testing-at-vimeo-59e3feca7e84?source=collection_home---6------4-----------------------" data-action="open-post" data-action-source="collection_home---6------4-----------------------" data-action-value="https://medium.com/vimeo-engineering-blog/how-we-built-better-automated-ui-testing-at-vimeo-59e3feca7e84?source=collection_home---6------4-----------------------" data-post-id="59e3feca7e84">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="59e3feca7e84" data-is-flush-left="true" data-source="listing-----59e3feca7e84---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/59e3feca7e84" data-action-source="listing-----59e3feca7e84---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="59e3feca7e84">38</button></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="59e3feca7e84"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25"><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none"><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation u-borderBottomLight" data-source="collection_home---6------5-----------------------" data-post-id="363f6497362b"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://web.archive.org/web/20211201230001/https://medium.com/@supperspidey" data-action="show-user-card" data-action-value="11e87bbb2e89" data-action-type="hover" data-user-id="11e87bbb2e89" dir="auto"><img src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/c/72/72/1*3eEjcO2zZizFGmP5oVEPaQ.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Van Nguyen"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://web.archive.org/web/20211201230001/https://medium.com/@supperspidey?source=collection_home---6------5-----------------------" data-action="show-user-card" data-action-source="collection_home---6------5-----------------------" data-action-value="11e87bbb2e89" data-action-type="hover" data-user-id="11e87bbb2e89" dir="auto">Van Nguyen</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/uiscrollview-with-vimeos-latest-player-screen-363f6497362b?source=collection_home---6------5-----------------------" data-action="open-post" data-action-value="https://medium.com/vimeo-engineering-blog/uiscrollview-with-vimeos-latest-player-screen-363f6497362b?source=collection_home---6------5-----------------------" data-action-source="preview-listing"><time datetime="2021-09-10T15:35:22.650Z">Sep 10</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="12 min read"></span></div></div></div></div></div><a class="" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/uiscrollview-with-vimeos-latest-player-screen-363f6497362b?source=collection_home---6------5-----------------------" data-action-source="collection_home---6------5-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="0*azk5j_To9nj-qGwa" data-width="1400" data-height="736" data-is-featured="true" src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/t/1600/480/0*azk5j_To9nj-qGwa"></div></figure><h3 name="previewTitle" id="previewTitle" class="graf graf--h3 graf-after--figure graf--title">UIScrollView with Vimeo’s Latest Player Screen</h3><h4 name="previewSubtitle" id="previewSubtitle" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle">UIScrollView is one of the most complicated UIView…</h4></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/uiscrollview-with-vimeos-latest-player-screen-363f6497362b?source=collection_home---6------5-----------------------" data-action="open-post" data-action-source="collection_home---6------5-----------------------" data-action-value="https://medium.com/vimeo-engineering-blog/uiscrollview-with-vimeos-latest-player-screen-363f6497362b?source=collection_home---6------5-----------------------" data-post-id="363f6497362b">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="363f6497362b" data-is-flush-left="true" data-source="listing-----363f6497362b---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/363f6497362b" data-action-source="listing-----363f6497362b---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="363f6497362b">63</button></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="363f6497362b"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25"><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none"><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation u-borderBottomLight" data-source="collection_home---6------6-----------------------" data-post-id="9c3b9537119a"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://web.archive.org/web/20211201230001/https://medium.com/@reckoner165" data-action="show-user-card" data-action-value="5c508928d495" data-action-type="hover" data-user-id="5c508928d495" dir="auto"><img src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/c/72/72/1*3y3irRJVKecEWw1No6qjPg.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Sumanth Srinivasan"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://web.archive.org/web/20211201230001/https://medium.com/@reckoner165?source=collection_home---6------6-----------------------" data-action="show-user-card" data-action-source="collection_home---6------6-----------------------" data-action-value="5c508928d495" data-action-type="hover" data-user-id="5c508928d495" dir="auto">Sumanth Srinivasan</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/drm-at-vimeo-9c3b9537119a?source=collection_home---6------6-----------------------" data-action="open-post" data-action-value="https://medium.com/vimeo-engineering-blog/drm-at-vimeo-9c3b9537119a?source=collection_home---6------6-----------------------" data-action-source="preview-listing"><time datetime="2021-08-03T14:26:33.226Z">Aug 3</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="6 min read"></span></div></div></div></div></div><a class="" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/drm-at-vimeo-9c3b9537119a?source=collection_home---6------6-----------------------" data-action-source="collection_home---6------6-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="0*HJtZbe4P-WxlmQUx" data-width="1600" data-height="807" data-is-featured="true" src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/t/1600/480/0*HJtZbe4P-WxlmQUx"></div></figure><h3 name="previewTitle" id="previewTitle" class="graf graf--h3 graf-after--figure graf--title">DRM at Vimeo</h3><h4 name="previewSubtitle" id="previewSubtitle" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle">DRM technology for streaming media is a decades-long evolution of cold war era…</h4></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/drm-at-vimeo-9c3b9537119a?source=collection_home---6------6-----------------------" data-action="open-post" data-action-source="collection_home---6------6-----------------------" data-action-value="https://medium.com/vimeo-engineering-blog/drm-at-vimeo-9c3b9537119a?source=collection_home---6------6-----------------------" data-post-id="9c3b9537119a">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="9c3b9537119a" data-is-flush-left="true" data-source="listing-----9c3b9537119a---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/9c3b9537119a" data-action-source="listing-----9c3b9537119a---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="9c3b9537119a">19</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/drm-at-vimeo-9c3b9537119a?source=collection_home---6------6-----------------------#--responses" data-action-source="collection_home---6------6-----------------------">1 response</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="9c3b9537119a"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25"><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none"><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation u-borderBottomLight" data-source="collection_home---6------7-----------------------" data-post-id="b0e8397cfac2"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://web.archive.org/web/20211201230001/https://medium.com/@obedespina" data-action="show-user-card" data-action-value="76f0c8379c68" data-action-type="hover" data-user-id="76f0c8379c68" dir="auto"><img src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/c/72/72/1*AfeGqQsQWv3yOtnaAP10gQ.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Obed"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://web.archive.org/web/20211201230001/https://medium.com/@obedespina?source=collection_home---6------7-----------------------" data-action="show-user-card" data-action-source="collection_home---6------7-----------------------" data-action-value="76f0c8379c68" data-action-type="hover" data-user-id="76f0c8379c68" dir="auto">Obed</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/debezium-event-flattening-with-sql-in-snowflake-b0e8397cfac2?source=collection_home---6------7-----------------------" data-action="open-post" data-action-value="https://medium.com/vimeo-engineering-blog/debezium-event-flattening-with-sql-in-snowflake-b0e8397cfac2?source=collection_home---6------7-----------------------" data-action-source="preview-listing"><time datetime="2021-06-30T13:45:09.635Z">Jun 30</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="8 min read"></span></div></div></div></div></div><a class="" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/debezium-event-flattening-with-sql-in-snowflake-b0e8397cfac2?source=collection_home---6------7-----------------------" data-action-source="collection_home---6------7-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="0*xJ1C7VVePURkb-MN" data-width="1370" data-height="809" data-is-featured="true" src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/t/1600/480/0*xJ1C7VVePURkb-MN"></div></figure><h3 name="f16d" id="f16d" class="graf graf--h3 graf-after--figure graf--trailing graf--title">Debezium event flattening with SQL in Snowflake</h3></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/debezium-event-flattening-with-sql-in-snowflake-b0e8397cfac2?source=collection_home---6------7-----------------------" data-action="open-post" data-action-source="collection_home---6------7-----------------------" data-action-value="https://medium.com/vimeo-engineering-blog/debezium-event-flattening-with-sql-in-snowflake-b0e8397cfac2?source=collection_home---6------7-----------------------" data-post-id="b0e8397cfac2">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="b0e8397cfac2" data-is-flush-left="true" data-source="listing-----b0e8397cfac2---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/b0e8397cfac2" data-action-source="listing-----b0e8397cfac2---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="b0e8397cfac2">48</button></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="b0e8397cfac2"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25"><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none"><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation u-borderBottomLight" data-source="collection_home---6------8-----------------------" data-post-id="620f79da8605"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://web.archive.org/web/20211201230001/https://medium.com/@rzumer" data-action="show-user-card" data-action-value="10bab874bf16" data-action-type="hover" data-user-id="10bab874bf16" dir="auto"><img src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/c/72/72/0*l3mag4j0fcKv54Ej.jpg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Raphaël Zumer"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://web.archive.org/web/20211201230001/https://medium.com/@rzumer?source=collection_home---6------8-----------------------" data-action="show-user-card" data-action-source="collection_home---6------8-----------------------" data-action-value="10bab874bf16" data-action-type="hover" data-user-id="10bab874bf16" dir="auto">Raphaël Zumer</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/upgrading-images-on-vimeo-620f79da8605?source=collection_home---6------8-----------------------" data-action="open-post" data-action-value="https://medium.com/vimeo-engineering-blog/upgrading-images-on-vimeo-620f79da8605?source=collection_home---6------8-----------------------" data-action-source="preview-listing"><time datetime="2021-06-02T20:58:48.612Z">Jun 2</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="4 min read"></span></div></div></div></div></div><a class="" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/upgrading-images-on-vimeo-620f79da8605?source=collection_home---6------8-----------------------" data-action-source="collection_home---6------8-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="0*nn4ihFzuELEoTpJE" data-width="930" data-height="568" data-is-featured="true" src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/t/1600/480/0*nn4ihFzuELEoTpJE"></div></figure><h3 name="previewTitle" id="previewTitle" class="graf graf--h3 graf-after--figure graf--title">Upgrading images on Vimeo</h3><h4 name="previewSubtitle" id="previewSubtitle" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle">Introducing AVIF format support and expanded WebP coverage for faster…</h4></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/upgrading-images-on-vimeo-620f79da8605?source=collection_home---6------8-----------------------" data-action="open-post" data-action-source="collection_home---6------8-----------------------" data-action-value="https://medium.com/vimeo-engineering-blog/upgrading-images-on-vimeo-620f79da8605?source=collection_home---6------8-----------------------" data-post-id="620f79da8605">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="620f79da8605" data-is-flush-left="true" data-source="listing-----620f79da8605---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/620f79da8605" data-action-source="listing-----620f79da8605---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="620f79da8605">68</button></span></div></div><div class="buttonSet u-floatRight"><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="620f79da8605"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25"><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none"><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div><div class="postArticle postArticle--short is-withAccentColors"><div class="u-paddingBottom25 u-paddingTop20 js-trackPostPresentation" data-source="collection_home---6------9-----------------------" data-post-id="680ca565dfbb"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://web.archive.org/web/20211201230001/https://medium.com/@shelby.scalia" data-action="show-user-card" data-action-value="8f231cc0fef5" data-action-type="hover" data-user-id="8f231cc0fef5" dir="auto"><img src="https://web.archive.org/web/20211201230001im_/https://cdn-images-1.medium.com/fit/c/72/72/1*iIoS54YvbHY57E-Nz9SQjA.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Shelby Scalia"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://web.archive.org/web/20211201230001/https://medium.com/@shelby.scalia?source=collection_home---6------9-----------------------" data-action="show-user-card" data-action-source="collection_home---6------9-----------------------" data-action-value="8f231cc0fef5" data-action-type="hover" data-user-id="8f231cc0fef5" dir="auto">Shelby Scalia</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/engineer-inspect-with-max-jacobson-680ca565dfbb?source=collection_home---6------9-----------------------" data-action="open-post" data-action-value="https://medium.com/vimeo-engineering-blog/engineer-inspect-with-max-jacobson-680ca565dfbb?source=collection_home---6------9-----------------------" data-action-source="preview-listing"><time datetime="2021-04-06T14:27:36.904Z">Apr 6</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="5 min read"></span></div></div></div></div></div><a class="" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/engineer-inspect-with-max-jacobson-680ca565dfbb?source=collection_home---6------9-----------------------" data-action-source="collection_home---6------9-----------------------"><div class="u-maxWidth600 u-margin0 postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><h3 name="previewTitle" id="previewTitle" class="graf graf--h3 graf--leading graf--title">Engineer.inspect with Max Jacobson</h3><h4 name="previewSubtitle" id="previewSubtitle" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle">Welcome to the first installment of Engineer.inspect, an interview series introducing engineers across Vimeo. First up, meet Max Jacobson.</h4></div></div></section></div></a><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/engineer-inspect-with-max-jacobson-680ca565dfbb?source=collection_home---6------9-----------------------" data-action="open-post" data-action-source="collection_home---6------9-----------------------" data-action-value="https://medium.com/vimeo-engineering-blog/engineer-inspect-with-max-jacobson-680ca565dfbb?source=collection_home---6------9-----------------------" data-post-id="680ca565dfbb">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="680ca565dfbb" data-is-flush-left="true" data-source="listing-----680ca565dfbb---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/680ca565dfbb" data-action-source="listing-----680ca565dfbb---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25"><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="680ca565dfbb">82</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/engineer-inspect-with-max-jacobson-680ca565dfbb?source=collection_home---6------9-----------------------#--responses" data-action-source="collection_home---6------9-----------------------">1 response</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="680ca565dfbb"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25"><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none"><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="col u-size4of12 u-xs-size12of12 js-aboutCollectionBox u-marginTop30 u-minHeight250 u-xs-hide"></div></div></div></div></div><style class="js-collectionStyle"> .u-accentColor--borderLight {border-color: #0094D5 !important;} .u-accentColor--borderNormal {border-color: #0094D5 !important;} .u-accentColor--borderDark {border-color: #007EB1 !important;} .u-accentColor--iconLight .svgIcon,.u-accentColor--iconLight.svgIcon {fill: #0094D5 !important;} .u-accentColor--iconNormal .svgIcon,.u-accentColor--iconNormal.svgIcon {fill: #0094D5 !important;} .u-accentColor--iconDark .svgIcon,.u-accentColor--iconDark.svgIcon {fill: #007EB1 !important;} .u-accentColor--textNormal {color: #007EB1 !important;} .u-accentColor--hoverTextNormal:hover {color: #007EB1 !important;} .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: #0673A0 !important;} .u-accentColor--textDark {color: #0673A0 !important;} .u-accentColor--backgroundLight {background-color: #0094D5 !important;} .u-accentColor--backgroundNormal {background-color: #0094D5 !important;} .u-accentColor--backgroundDark {background-color: #007EB1 !important;} .u-accentColor--buttonDark {border-color: #007EB1 !important; color: #0673A0 !important;} .u-accentColor--buttonDark:hover {border-color: #0673A0 !important;} .u-accentColor--buttonDark .icon:before,.u-accentColor--buttonDark .svgIcon{color: #007EB1 !important; fill: #007EB1 !important;} .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: #0094D5 !important; color: #007EB1 !important;} .u-accentColor--buttonNormal:hover {border-color: #007EB1 !important;} .u-accentColor--buttonNormal .icon:before,.u-accentColor--buttonNormal .svgIcon{color: #0094D5 !important; fill: #0094D5 !important;} .u-accentColor--buttonNormal.button--filled .icon:before,.u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-accentColor--buttonDark.button--filled,.u-accentColor--buttonDark.button--withChrome.is-active,.u-accentColor--fillWhenActive.is-active {background-color: #007EB1 !important; border-color: #007EB1 !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: #0094D5 !important; border-color: #0094D5 !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .postArticle.is-withAccentColors .markup--user,.postArticle.is-withAccentColors .markup--query {color: #007EB1 !important;}.u-tintBgColor {background-color: rgba(0, 173, 239, 1) !important;}.u-tintBgColor .u-fadeLeft:before {background-image: linear-gradient(to right, rgba(0, 173, 239, 1) 0%, rgba(0, 173, 239, 0) 100%) !important;}.u-tintBgColor .u-fadeRight:after {background-image: linear-gradient(to right, rgba(0, 173, 239, 0) 0%, rgba(0, 173, 239, 1) 100%) !important;} .u-tintSpectrum .u-baseColor--borderLight {border-color: #9EDAFF !important;} .u-tintSpectrum .u-baseColor--borderNormal {border-color: #C1EBFF !important;} .u-tintSpectrum .u-baseColor--borderDark {border-color: #E1FBFF !important;} .u-tintSpectrum .u-baseColor--iconLight .svgIcon,.u-tintSpectrum .u-baseColor--iconLight.svgIcon {fill: #9EDAFF !important;} .u-tintSpectrum .u-baseColor--iconNormal .svgIcon,.u-tintSpectrum .u-baseColor--iconNormal.svgIcon {fill: #C1EBFF !important;} .u-tintSpectrum .u-baseColor--iconDark .svgIcon,.u-tintSpectrum .u-baseColor--iconDark.svgIcon {fill: #E1FBFF !important;} .u-tintSpectrum .u-baseColor--textNormal {color: #C1EBFF !important;} .u-tintSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: #F1FFFF !important;} .u-tintSpectrum .u-baseColor--textDark {color: #F1FFFF !important;} .u-tintSpectrum .u-baseColor--textDarker {color: #F1FFFF !important;} .u-tintSpectrum .u-baseColor--backgroundLight {background-color: #9EDAFF !important;} .u-tintSpectrum .u-baseColor--backgroundNormal {background-color: #C1EBFF !important;} .u-tintSpectrum .u-baseColor--backgroundDark {background-color: #E1FBFF !important;} .u-tintSpectrum .u-baseColor--buttonLight {border-color: #9EDAFF !important; color: #9EDAFF !important;} .u-tintSpectrum .u-baseColor--buttonLight:hover {border-color: #9EDAFF !important;} .u-tintSpectrum .u-baseColor--buttonLight .icon:before,.u-tintSpectrum .u-baseColor--buttonLight .svgIcon {color: #9EDAFF !important; fill: #9EDAFF !important;} .u-tintSpectrum .u-baseColor--buttonDark {border-color: #E1FBFF !important; color: #F1FFFF !important;} .u-tintSpectrum .u-baseColor--buttonDark:hover {border-color: #F1FFFF !important;} .u-tintSpectrum .u-baseColor--buttonDark .icon:before,.u-tintSpectrum .u-baseColor--buttonDark .svgIcon {color: #E1FBFF !important; fill: #E1FBFF !important;} .u-tintSpectrum .u-baseColor--buttonNormal {border-color: #C1EBFF !important; color: #C1EBFF !important;} .u-tintSpectrum .u-baseColor--buttonNormal:hover {border-color: #E1FBFF !important;} .u-tintSpectrum .u-baseColor--buttonNormal .icon:before,.u-tintSpectrum .u-baseColor--buttonNormal .svgIcon {color: #C1EBFF !important; fill: #C1EBFF !important;} .u-tintSpectrum .u-baseColor--buttonDark.button--filled,.u-tintSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: #E1FBFF !important; border-color: #E1FBFF !important; color: rgba(0, 173, 239, 1) !important; fill: rgba(0, 173, 239, 1) !important;} .u-tintSpectrum .u-baseColor--buttonNormal.button--filled,.u-tintSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: #C1EBFF !important; border-color: #C1EBFF !important; color: rgba(0, 173, 239, 1) !important; fill: rgba(0, 173, 239, 1) !important;} .u-tintSpectrum .u-baseColor--link {color: #C1EBFF !important;} .u-tintSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: #F1FFFF !important;} .u-tintSpectrum .u-baseColor--link.link--darken:hover,.u-tintSpectrum .u-baseColor--link.link--darken:focus,.u-tintSpectrum .u-baseColor--link.link--darken:active {color: #F1FFFF !important;} .u-tintSpectrum .u-baseColor--link.link--dark {color: #F1FFFF !important;} .u-tintSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-tintSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-tintSpectrum .u-baseColor--link.link--dark.link--darken:active {color: #F1FFFF !important;} .u-tintSpectrum .u-baseColor--link.link--darker {color: #F1FFFF !important;} .u-tintSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: #9EDAFF;} .u-tintSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: #9EDAFF;} .u-tintSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: #9EDAFF;} .u-tintSpectrum .svgIcon--logoWordmark {stroke: none !important; fill: #F1FFFF !important;} .u-tintSpectrum .svgIcon--logoMonogram {stroke: none !important; fill: #F1FFFF !important;} .u-tintSpectrum .ui-h1,.u-tintSpectrum .ui-h2,.u-tintSpectrum .ui-h3,.u-tintSpectrum .ui-h4,.u-tintSpectrum .ui-brand1,.u-tintSpectrum .ui-brand2,.u-tintSpectrum .ui-captionStrong {color: #F1FFFF !important; fill: #F1FFFF !important;} .u-tintSpectrum .ui-body,.u-tintSpectrum .ui-caps {color: #F1FFFF !important; fill: #F1FFFF !important;} .u-tintSpectrum .ui-summary,.u-tintSpectrum .ui-caption {color: #9EDAFF !important; fill: #9EDAFF !important;} .u-tintSpectrum .u-accentColor--borderLight {border-color: #9EDAFF !important;} .u-tintSpectrum .u-accentColor--borderNormal {border-color: #C1EBFF !important;} .u-tintSpectrum .u-accentColor--borderDark {border-color: #E1FBFF !important;} .u-tintSpectrum .u-accentColor--iconLight .svgIcon,.u-tintSpectrum .u-accentColor--iconLight.svgIcon {fill: #9EDAFF !important;} .u-tintSpectrum .u-accentColor--iconNormal .svgIcon,.u-tintSpectrum .u-accentColor--iconNormal.svgIcon {fill: #C1EBFF !important;} .u-tintSpectrum .u-accentColor--iconDark .svgIcon,.u-tintSpectrum .u-accentColor--iconDark.svgIcon {fill: #E1FBFF !important;} .u-tintSpectrum .u-accentColor--textNormal {color: #C1EBFF !important;} .u-tintSpectrum .u-accentColor--hoverTextNormal:hover {color: #C1EBFF !important;} .u-tintSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: #F1FFFF !important;} .u-tintSpectrum .u-accentColor--textDark {color: #F1FFFF !important;} .u-tintSpectrum .u-accentColor--backgroundLight {background-color: #9EDAFF !important;} .u-tintSpectrum .u-accentColor--backgroundNormal {background-color: #C1EBFF !important;} .u-tintSpectrum .u-accentColor--backgroundDark {background-color: #E1FBFF !important;} .u-tintSpectrum .u-accentColor--buttonDark {border-color: #E1FBFF !important; color: #F1FFFF !important;} .u-tintSpectrum .u-accentColor--buttonDark:hover {border-color: #F1FFFF !important;} .u-tintSpectrum .u-accentColor--buttonDark .icon:before,.u-tintSpectrum .u-accentColor--buttonDark .svgIcon{color: #E1FBFF !important; fill: #E1FBFF !important;} .u-tintSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: #C1EBFF !important; color: #C1EBFF !important;} .u-tintSpectrum .u-accentColor--buttonNormal:hover {border-color: #E1FBFF !important;} .u-tintSpectrum .u-accentColor--buttonNormal .icon:before,.u-tintSpectrum .u-accentColor--buttonNormal .svgIcon{color: #C1EBFF !important; fill: #C1EBFF !important;} .u-tintSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-tintSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(0, 173, 239, 1) !important; fill: rgba(0, 173, 239, 1) !important;} .u-tintSpectrum .u-accentColor--buttonDark.button--filled,.u-tintSpectrum .u-accentColor--buttonDark.button--withChrome.is-active,.u-tintSpectrum .u-accentColor--fillWhenActive.is-active {background-color: #E1FBFF !important; border-color: #E1FBFF !important; color: rgba(0, 173, 239, 1) !important; fill: rgba(0, 173, 239, 1) !important;} .u-tintSpectrum .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-tintSpectrum .u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: #C1EBFF !important; border-color: #C1EBFF !important; color: rgba(0, 173, 239, 1) !important; fill: rgba(0, 173, 239, 1) !important;} .u-tintSpectrum .postArticle.is-withAccentColors .markup--user,.u-tintSpectrum .postArticle.is-withAccentColors .markup--query {color: #C1EBFF !important;} .u-accentColor--highlightFaint {background-color: rgba(218, 246, 255, 1) !important;} .u-accentColor--highlightStrong.is-active .svgIcon {fill: rgba(151, 238, 255, 1) !important;} .postArticle.is-withAccentColors .markup--quote.is-other {background-color: rgba(218, 246, 255, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-other {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(218, 246, 255, 1), rgba(218, 246, 255, 1));} .postArticle.is-withAccentColors .markup--quote.is-me {background-color: rgba(184, 242, 255, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-me {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(184, 242, 255, 1), rgba(184, 242, 255, 1));} .postArticle.is-withAccentColors .markup--quote.is-targeted {background-color: rgba(151, 238, 255, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-targeted {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(151, 238, 255, 1), rgba(151, 238, 255, 1));} .postArticle.is-withAccentColors .markup--quote.is-selected {background-color: rgba(151, 238, 255, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-selected {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(151, 238, 255, 1), rgba(151, 238, 255, 1));} .postArticle.is-withAccentColors .markup--highlight {background-color: rgba(151, 238, 255, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--highlight {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(151, 238, 255, 1), rgba(151, 238, 255, 1));}.u-baseColor--iconNormal.avatar-halo {fill: rgba(0, 0, 0, 0.4980392156862745) !important;}</style><style class="js-collectionStyleConstant">.u-imageBgColor {background-color: rgba(0, 0, 0, 0.24705882352941178);} .u-imageSpectrum .u-baseColor--borderLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;} .u-imageSpectrum .u-baseColor--borderNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-baseColor--borderDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--iconLight .svgIcon,.u-imageSpectrum .u-baseColor--iconLight.svgIcon {fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-baseColor--iconNormal .svgIcon,.u-imageSpectrum .u-baseColor--iconNormal.svgIcon {fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--iconDark .svgIcon,.u-imageSpectrum .u-baseColor--iconDark.svgIcon {fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--textNormal {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--textDark {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--textDarker {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--backgroundLight {background-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-baseColor--backgroundNormal {background-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--backgroundDark {background-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important; color: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-baseColor--buttonLight:hover {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;} .u-imageSpectrum .u-baseColor--buttonLight .icon:before,.u-imageSpectrum .u-baseColor--buttonLight .svgIcon {color: rgba(255, 255, 255, 0.8) !important; fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-baseColor--buttonDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonDark:hover {border-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonDark .icon:before,.u-imageSpectrum .u-baseColor--buttonDark .svgIcon {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important; color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--buttonNormal:hover {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--buttonNormal .icon:before,.u-imageSpectrum .u-baseColor--buttonNormal .svgIcon {color: rgba(255, 255, 255, 0.9490196078431372) !important; fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--buttonDark.button--filled,.u-imageSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: rgba(255, 255, 255, 1) !important; border-color: rgba(255, 255, 255, 1) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-baseColor--buttonNormal.button--filled,.u-imageSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: rgba(255, 255, 255, 0.9490196078431372) !important; border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-baseColor--link {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--darken:hover,.u-imageSpectrum .u-baseColor--link.link--darken:focus,.u-imageSpectrum .u-baseColor--link.link--darken:active {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--dark {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-imageSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-imageSpectrum .u-baseColor--link.link--dark.link--darken:active {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--darker {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: rgba(255, 255, 255, 0.8);} .u-imageSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: rgba(255, 255, 255, 0.8);} .u-imageSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: rgba(255, 255, 255, 0.8);} .u-imageSpectrum .svgIcon--logoWordmark {stroke: none !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .svgIcon--logoMonogram {stroke: none !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .ui-h1,.u-imageSpectrum .ui-h2,.u-imageSpectrum .ui-h3,.u-imageSpectrum .ui-h4,.u-imageSpectrum .ui-brand1,.u-imageSpectrum .ui-brand2,.u-imageSpectrum .ui-captionStrong {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .ui-body,.u-imageSpectrum .ui-caps {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .ui-summary,.u-imageSpectrum .ui-caption {color: rgba(255, 255, 255, 0.8) !important; fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-accentColor--borderLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;} .u-imageSpectrum .u-accentColor--borderNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-accentColor--borderDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--iconLight .svgIcon,.u-imageSpectrum .u-accentColor--iconLight.svgIcon {fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-accentColor--iconNormal .svgIcon,.u-imageSpectrum .u-accentColor--iconNormal.svgIcon {fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--iconDark .svgIcon,.u-imageSpectrum .u-accentColor--iconDark.svgIcon {fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--textNormal {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--hoverTextNormal:hover {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--textDark {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--backgroundLight {background-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-accentColor--backgroundNormal {background-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--backgroundDark {background-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonDark:hover {border-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonDark .icon:before,.u-imageSpectrum .u-accentColor--buttonDark .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: rgba(255, 255, 255, 0.8980392156862745) !important; color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--buttonNormal:hover {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--buttonNormal .icon:before,.u-imageSpectrum .u-accentColor--buttonNormal .svgIcon{color: rgba(255, 255, 255, 0.9490196078431372) !important; fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-imageSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-accentColor--buttonDark.button--filled,.u-imageSpectrum .u-accentColor--buttonDark.button--withChrome.is-active,.u-imageSpectrum .u-accentColor--fillWhenActive.is-active {background-color: rgba(255, 255, 255, 1) !important; border-color: rgba(255, 255, 255, 1) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-imageSpectrum .u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: rgba(255, 255, 255, 0.9490196078431372) !important; border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .postArticle.is-withAccentColors .markup--user,.u-imageSpectrum .postArticle.is-withAccentColors .markup--query {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--highlightFaint {background-color: rgba(255, 255, 255, 0.2) !important;} .u-imageSpectrum .u-accentColor--highlightStrong.is-active .svgIcon {fill: rgba(255, 255, 255, 0.6) !important;} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-other {background-color: rgba(255, 255, 255, 0.2) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-other {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-me {background-color: rgba(255, 255, 255, 0.4) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-me {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.4));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-targeted {background-color: rgba(255, 255, 255, 0.6) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-targeted {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-selected {background-color: rgba(255, 255, 255, 0.6) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-selected {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--highlight {background-color: rgba(255, 255, 255, 0.6) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--highlight {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));}.u-resetSpectrum .u-tintBgColor {background-color: rgba(255, 255, 255, 1) !important;}.u-resetSpectrum .u-tintBgColor .u-fadeLeft:before {background-image: linear-gradient(to right, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%) !important;}.u-resetSpectrum .u-tintBgColor .u-fadeRight:after {background-image: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%) !important;} .u-resetSpectrum .u-baseColor--borderLight {border-color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--borderNormal {border-color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--borderDark {border-color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--iconLight .svgIcon,.u-resetSpectrum .u-baseColor--iconLight.svgIcon {fill: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--iconNormal .svgIcon,.u-resetSpectrum .u-baseColor--iconNormal.svgIcon {fill: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--iconDark .svgIcon,.u-resetSpectrum .u-baseColor--iconDark.svgIcon {fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--textNormal {color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--textDark {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--textDarker {color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--backgroundLight {background-color: rgba(0, 0, 0, 0.09803921568627451) !important;} .u-resetSpectrum .u-baseColor--backgroundNormal {background-color: rgba(0, 0, 0, 0.2) !important;} .u-resetSpectrum .u-baseColor--backgroundDark {background-color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonLight {border-color: rgba(0, 0, 0, 0.2980392156862745) !important; color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonLight:hover {border-color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonLight .icon:before,.u-resetSpectrum .u-baseColor--buttonLight .svgIcon {color: rgba(0, 0, 0, 0.2980392156862745) !important; fill: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonDark {border-color: rgba(0, 0, 0, 0.6) !important; color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--buttonDark:hover {border-color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--buttonDark .icon:before,.u-resetSpectrum .u-baseColor--buttonDark .svgIcon {color: rgba(0, 0, 0, 0.6) !important; fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--buttonNormal {border-color: rgba(0, 0, 0, 0.4980392156862745) !important; color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonNormal:hover {border-color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--buttonNormal .icon:before,.u-resetSpectrum .u-baseColor--buttonNormal .svgIcon {color: rgba(0, 0, 0, 0.4980392156862745) !important; fill: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonDark.button--filled,.u-resetSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: rgba(0, 0, 0, 0.2980392156862745) !important; border-color: rgba(0, 0, 0, 0.2980392156862745) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-baseColor--buttonNormal.button--filled,.u-resetSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: rgba(0, 0, 0, 0.2) !important; border-color: rgba(0, 0, 0, 0.2) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-baseColor--link {color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--link.link--darken:hover,.u-resetSpectrum .u-baseColor--link.link--darken:focus,.u-resetSpectrum .u-baseColor--link.link--darken:active {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--link.link--dark {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-resetSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-resetSpectrum .u-baseColor--link.link--dark.link--darken:active {color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--link.link--darker {color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);} .u-resetSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);} .u-resetSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);} .u-resetSpectrum .svgIcon--logoWordmark {stroke: none !important; fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .svgIcon--logoMonogram {stroke: none !important; fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .ui-h1,.u-resetSpectrum .ui-h2,.u-resetSpectrum .ui-h3,.u-resetSpectrum .ui-h4,.u-resetSpectrum .ui-brand1,.u-resetSpectrum .ui-brand2,.u-resetSpectrum .ui-captionStrong {color: rgba(0, 0, 0, 0.8) !important; fill: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .ui-body,.u-resetSpectrum .ui-caps {color: rgba(0, 0, 0, 0.6) !important; fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .ui-summary,.u-resetSpectrum .ui-caption {color: rgba(0, 0, 0, 0.2980392156862745) !important; fill: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-accentColor--borderLight {border-color: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--borderNormal {border-color: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--borderDark {border-color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--iconLight .svgIcon,.u-resetSpectrum .u-accentColor--iconLight.svgIcon {fill: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--iconNormal .svgIcon,.u-resetSpectrum .u-accentColor--iconNormal.svgIcon {fill: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--iconDark .svgIcon,.u-resetSpectrum .u-accentColor--iconDark.svgIcon {fill: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--textNormal {color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--hoverTextNormal:hover {color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--textDark {color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--backgroundLight {background-color: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--backgroundNormal {background-color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--backgroundDark {background-color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark {border-color: rgba(17, 128, 14, 1) !important; color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark:hover {border-color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark .icon:before,.u-resetSpectrum .u-accentColor--buttonDark .svgIcon{color: rgba(15, 115, 12, 1) !important; fill: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: rgba(26, 137, 23, 1) !important; color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal:hover {border-color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal .icon:before,.u-resetSpectrum .u-accentColor--buttonNormal .svgIcon{color: rgba(17, 128, 14, 1) !important; fill: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-resetSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark.button--filled,.u-resetSpectrum .u-accentColor--buttonDark.button--withChrome.is-active,.u-resetSpectrum .u-accentColor--fillWhenActive.is-active {background-color: rgba(15, 115, 12, 1) !important; border-color: rgba(15, 115, 12, 1) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-resetSpectrum .u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: rgba(17, 128, 14, 1) !important; border-color: rgba(17, 128, 14, 1) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .postArticle.is-withAccentColors .markup--user,.u-resetSpectrum .postArticle.is-withAccentColors .markup--query {color: rgba(17, 128, 14, 1) !important;}</style><div class="js-collectionFooter u-tintBgColor u-hide"><div class="container u-maxWidth1040"><div class="u-marginTop10 u-paddingTop10 u-paddingBottom30 u-tintSpectrum"><div class="linkSet u-clearfix"><div class="u-floatRight u-textColorNormal u-baseColor--textNormal u-xs-floatLeft"><a class="button button--chromeless u-baseColor--buttonNormal u-marginLeft15 u-lineHeight35 u-xs-block u-xs-marginLeft0" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/about" title="About Vimeo Engineering Blog" aria-label="About Vimeo Engineering Blog">About Vimeo Engineering Blog</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/latest" title="Latest Stories for Vimeo Engineering Blog" aria-label="Latest Stories for Vimeo Engineering Blog">Latest Stories</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/archive" title="Archive for Vimeo Engineering Blog" aria-label="Archive for Vimeo Engineering Blog">Archive</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="https://web.archive.org/web/20211201230001/https://medium.com/about">About Medium</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="https://web.archive.org/web/20211201230001/https://policy.medium.com/medium-terms-of-service-9db0094a1e0f">Terms</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="https://web.archive.org/web/20211201230001/https://policy.medium.com/medium-privacy-policy-f03bf92035c9">Privacy</a></div></div></div></div></div></div></div></div><div class="loadingBar"></div><script>// <![CDATA[ window["obvInit"] = function (opt_embedded) {window["obvInit"]["embedded"] = opt_embedded; window["obvInit"]["ready"] = true;} // ]]></script><script>// <![CDATA[ var GLOBALS = {"audioUrl":"https://web.archive.org/web/20211201230001/https://d1fcbxp97j4nb2.cloudfront.net","baseUrl":"https://web.archive.org/web/20211201230001/https://medium.com","buildLabel":"20211201-2130-root","currentUser":{"userId":"lo_43db11542c15","isVerified":false,"subscriberEmail":"","hasPastMemberships":false,"isEnrolledInHightower":false,"isEligibleForHightower":false,"hightowerLastLockedAt":0,"isWriterProgramEnrolled":true,"isWriterProgramInvited":false,"isWriterProgramOptedOut":false,"writerProgramVersion":0,"writerProgramEnrolledAt":0,"friendLinkOnboarding":0,"hasAdditionalUnlocks":false,"hasApiAccess":false,"writerProgramDistributionSettingOptedIn":false,"isSuspended":false,"collectionOnboardingSeen":0,"isAllowEdsEnabled":false,"atsQualifiedAt":0},"currentUserHasUnverifiedEmail":false,"isAuthenticated":false,"isCurrentUserVerified":false,"miroUrl":"https://web.archive.org/web/20211201230001/https://cdn-images-1.medium.com","moduleUrls":{"base":"https://web.archive.org/web/20211201230001/https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.hoFDglhm8ARCHy2HoLd9hw.js","common-async":"https://web.archive.org/web/20211201230001/https://cdn-static-1.medium.com/_/fp/gen-js/main-common-async.bundle.hf0t1gS0HArijdbL6xJk1w.js","hightower":"https://web.archive.org/web/20211201230001/https://cdn-static-1.medium.com/_/fp/gen-js/main-hightower.bundle.wRj9Fo91l2umhXsfCfI3iA.js","home-screens":"https://web.archive.org/web/20211201230001/https://cdn-static-1.medium.com/_/fp/gen-js/main-home-screens.bundle.bo8q9ki3udRNvcXgeTC2aw.js","misc-screens":"https://web.archive.org/web/20211201230001/https://cdn-static-1.medium.com/_/fp/gen-js/main-misc-screens.bundle.noM1q0m4EgwDIRRlj2xMaQ.js","notes":"https://web.archive.org/web/20211201230001/https://cdn-static-1.medium.com/_/fp/gen-js/main-notes.bundle.Y6TssOTW73M_3ykq6AasYQ.js","payments":"https://web.archive.org/web/20211201230001/https://cdn-static-1.medium.com/_/fp/gen-js/main-payments.bundle.2o6ewJCa8Z1sb1LtMJV9dQ.js","posters":"https://web.archive.org/web/20211201230001/https://cdn-static-1.medium.com/_/fp/gen-js/main-posters.bundle.qM57oKqwncqc04UWN3ARyw.js","power-readers":"https://web.archive.org/web/20211201230001/https://cdn-static-1.medium.com/_/fp/gen-js/main-power-readers.bundle.C18nK3mtIvtosk9r4tKfHA.js","pubs":"https://web.archive.org/web/20211201230001/https://cdn-static-1.medium.com/_/fp/gen-js/main-pubs.bundle.vcy29tlUob6PzePj6fhImQ.js","stats":"https://web.archive.org/web/20211201230001/https://cdn-static-1.medium.com/_/fp/gen-js/main-stats.bundle.pzw4Q6uZzrSpbjkkmKZXHw.js"},"previewConfig":{"weightThreshold":1,"weightImageParagraph":0.51,"weightIframeParagraph":0.8,"weightTextParagraph":0.08,"weightEmptyParagraph":0,"weightP":0.003,"weightH":0.005,"weightBq":0.003,"minPTextLength":60,"truncateBoundaryChars":20,"detectTitle":true,"detectTitleLevThreshold":0.15},"productName":"Medium","supportsEdit":false,"termsUrl":"//web.archive.org/web/20211201230001/https://policy.medium.com/medium-terms-of-service-9db0094a1e0f","textshotHost":"textshot.textshot-production.svc.cluster.local","transactionId":"1638399601800:e1b2a7f12367","useragent":{"browser":"heritrix","family":"","os":"","version":3.3,"supportsDesktopEdit":false,"supportsInteract":false,"supportsView":true,"isMobile":false,"isTablet":false,"isNative":false,"supportsFileAPI":false,"isTier1":false,"clientVersion":"","clientChannel":"","supportsRealScrollEvents":false,"supportsVhUnits":false,"ruinsViewportSections":false,"supportsHtml5Video":false,"supportsMagicUnderlines":false,"isWebView":false,"isFacebookWebView":false,"supportsProgressiveMedia":false,"supportsPromotedPosts":true,"isBot":false,"isNativeIphone":false,"supportsCssVariables":false,"supportsVideoSections":true,"emojiSupportLevel":1,"isSearchBot":false,"isSyndicationBot":false,"isNativeAndroid":false,"isNativeIos":false,"isSeoAuditBot":false,"isInternalApp":false,"supportsApplePay":false,"supportsScrollableMetabar":false},"variants":{"allow_access":true,"allow_signup":true,"allow_test_auth":"disallow","android_enable_lock_responses":true,"android_rating_prompt_stories_read_threshold":2,"assign_default_topic_to_posts":true,"author_fair_distribution_non_qp":true,"author_under_quota_fair_distribution":true,"available_annual_plan":"2c754bcc2995","available_monthly_plan":"60e220181034","branch_seo_metadata":true,"browsable_stream_config_bucket":"curated-topics","coronavirus_topic_recirc":true,"covid_19_cdc_banner":true,"default_seo_post_titles":true,"disable_age_cutoff_fdh":true,"disable_android_subscription_activity_carousel":true,"disable_ios_subscription_activity_carousel":true,"disable_mobile_featured_chunk":true,"disable_partner_program_enrollment":true,"disable_post_recommended_from_friends_provider":true,"enable_android_local_currency":true,"enable_annual_renewal_reminder_email":true,"enable_app_flirty_thirty":true,"enable_apple_sign_in":true,"enable_apple_webhook":true,"enable_apple_webhook_renewal_failure":true,"enable_aurora_about_page_routing":true,"enable_aurora_general_admission":true,"enable_aurora_nav":true,"enable_aurora_profile_page":true,"enable_aurora_pub_follower_page":true,"enable_aurora_recirc":true,"enable_aurora_sticky_nav":true,"enable_aurora_tag_page_routing":true,"enable_author_autotier":true,"enable_author_cards":true,"enable_author_cards_byline":true,"enable_auto_follow_on_subscribe":true,"enable_automated_mission_control_triggers":true,"enable_automod":true,"enable_braintree_apple_pay":true,"enable_braintree_client":true,"enable_braintree_google_pay":true,"enable_braintree_integration":true,"enable_braintree_paypal":true,"enable_braintree_trial_membership":true,"enable_braintree_webhook":true,"enable_branch_io":true,"enable_branch_text_me_the_app":true,"enable_branding":true,"enable_branding_fonts":true,"enable_cleansweep_double_writes":true,"enable_confirm_sign_in":true,"enable_creator_payscreen":true,"enable_creator_welcome_email":true,"enable_cta_meter":true,"enable_custom_domain_v2_settings":true,"enable_digest_feature_logging":true,"enable_digest_generation_pipeline":true,"enable_digest_tagline":true,"enable_drm_provider":true,"enable_drm_recirc":true,"enable_earn_redirect":true,"enable_edit_alt_text":true,"enable_email_sign_in_captcha":true,"enable_embedding_based_diversification":true,"enable_end_of_post_cleanup":true,"enable_evhead_com_to_ev_medium_com_redirect":true,"enable_expanded_feature_chunk_pool":true,"enable_filter_by_resend_rules":true,"enable_filter_expire_processor":true,"enable_fix_collection_follow_counts":true,"enable_fix_follow_counts":true,"enable_footer_app_buttons":true,"enable_global_susi_modal":true,"enable_google_one_tap":true,"enable_google_webhook":true,"enable_google_webhook_subscription_cancelled":true,"enable_google_webhook_subscription_expired":true,"enable_google_webhook_subscription_in_grace_period":true,"enable_google_webhook_subscription_on_hold":true,"enable_google_webhook_subscription_renewed":true,"enable_group_gifting":true,"enable_highlander_member_digest":true,"enable_hightower_user_bonus":true,"enable_hot_topics":true,"enable_hot_topics_v2":true,"enable_hybrid_fdh_non_popular_sources":true,"enable_iceland_forced_android":true,"enable_iceland_forced_ios":true,"enable_import":true,"enable_in_context_sharing":true,"enable_inline_expansion":true,"enable_ios_iceland_3":true,"enable_ios_responses_3":true,"enable_ios_seamless":true,"enable_json_logs_trained_ranker":true,"enable_kbfd_rex":true,"enable_kbfd_rex_app_highlights":true,"enable_li_homepage_write_cta":true,"enable_lite_continue_this_thread":true,"enable_lite_gift_redemption":true,"enable_lite_homepage":true,"enable_lite_homepage_feed":true,"enable_lite_notifications":true,"enable_lite_pub_homepage_for_selected_domains":true,"enable_lite_response_markup":true,"enable_lite_server_upstream_deadlines":true,"enable_lite_stories":true,"enable_lite_topics":true,"enable_lite_topics_edge_cache":true,"enable_lite_unread_notification_count_mutation":true,"enable_lock_responses":true,"enable_login_code_flow":true,"enable_marketing_emails":true,"enable_media_resource_try_catch":true,"enable_medium2_kbfd":true,"enable_membership_remove_section_a":true,"enable_miro_on_kubernetes":true,"enable_mission_control":true,"enable_ml_rank_modules":true,"enable_ml_rank_rex_anno":true,"enable_mobile_regwall_read_in_app_button":true,"enable_mobile_web_editor_redirect_route":true,"enable_mute":true,"enable_negative_signal":true,"enable_new_collaborative_filtering_data":true,"enable_new_member_welcome_email_enhancement":true,"enable_new_three_dot_menu":true,"enable_new_writer_editor_enhancement":true,"enable_newsletter_lo_flow_custom_domains":true,"enable_parsely":true,"enable_patronus_on_kubernetes":true,"enable_paywall_conversions_for_referred_members":true,"enable_persistent_recirc":true,"enable_popularity_feature":true,"enable_post_page_nav_stickiness_removal":true,"enable_post_page_write_cta":true,"enable_post_settings_screen":true,"enable_pp_dashboard_referred_earnings":true,"enable_primary_topic_for_mobile":true,"enable_profile_design_reminder":true,"enable_profile_page_seo_titles":true,"enable_publish_to_email_for_publication_posts":true,"enable_rank_v2_usage":true,"enable_reading_history_set":true,"enable_recirc_reboot_lo":true,"enable_referred_memberships":true,"enable_reply_to_email":true,"enable_responses_all":true,"enable_responses_edit_and_delete":true,"enable_responses_moderation":true,"enable_rex_follow_feed_cache":true,"enable_rex_reading_history":true,"enable_rito_upstream_deadlines":true,"enable_robometric_scanner":true,"enable_rtr_channel":true,"enable_save_to_medium":true,"enable_seamless_social_sharing":true,"enable_signup_friction":true,"enable_spam_title_filter":true,"enable_starspace":true,"enable_starspace_ranker_starspace":true,"enable_subscriber_stats_referred":true,"enable_tag_recs":true,"enable_tick_landing_page":true,"enable_tipalti_onboarding":true,"enable_top_posts_in_fdh_hybrid":true,"enable_trending_posts_diversification":true,"enable_tribute_landing_page":true,"enable_triton_predictions":true,"enable_trumpland_landing_page":true,"enable_twitter_auth_suggestions":true,"enable_updated_follower_email":true,"enable_updated_new_member_email":true,"enable_updated_new_user_onboarding":true,"enable_user_settings_subdomain":true,"glyph_font_set":"m2-unbound","google_sign_in_android":true,"ios_enable_generic_home_modules":true,"ios_enable_home_post_menu":true,"ios_enable_lock_responses":true,"ios_iceland_nux":true,"ios_in_app_free_trial":true,"ios_pub_follow_email_opt_in":true,"ios_social_share_sheet":true,"is_not_medium_subscriber":true,"kill_fastrak":true,"kill_stripe_express":true,"limit_post_referrers":true,"limit_user_follows":true,"make_nav_sticky":true,"max_premium_content_per_user_under_metering":3,"new_transition_page":true,"post_edge_cache_enabled":true,"post_edge_cache_enabled_moc":true,"posts_under_quota_fair_distribution":true,"provider_for_credit_card_form":"BRAINTREE","pub_sidebar":true,"reader_fair_distribution_non_qp":true,"redefine_average_post_reading_time":true,"reengagement_notification_duration":3,"remove_post_post_similarity":true,"retrained_ranker":true,"rex_provider_candidate_amounts":true,"rex_recirc_reboot":true,"show_pp_awareness_banner":true,"show_writing_101_cta":true,"sign_up_with_email_button":true,"signin_services":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple","signup_services":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple","single_partition_key":true,"skip_sign_in_recaptcha":true,"suppress_apple_missing_expires_date_alert":true,"unhide_mobile_ctas":true,"use_new_admin_topic_backend":true},"xsrfToken":"","iosAppId":"828256236","supportEmail":"yourfriends@medium.com","fp":{"/icons/monogram-mask.svg":"https://web.archive.org/web/20211201230001/https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.svg","/icons/favicon-dev-editor.ico":"https://web.archive.org/web/20211201230001/https://cdn-static-1.medium.com/_/fp/icons/favicon-dev-editor.YKKRxBO8EMvIqhyCwIiJeQ.ico","/icons/favicon-hatch-editor.ico":"https://web.archive.org/web/20211201230001/https://cdn-static-1.medium.com/_/fp/icons/favicon-hatch-editor.BuEyHIqlyh2s_XEk4Rl32Q.ico","/icons/favicon-medium-editor.ico":"https://web.archive.org/web/20211201230001/https://cdn-static-1.medium.com/_/fp/icons/favicon-medium-editor.PiakrZWB7Yb80quUVQWM6g.ico"},"authBaseUrl":"https://web.archive.org/web/20211201230001/https://medium.com","imageUploadSizeMb":25,"isAuthDomainRequest":true,"algoliaApiEndpoint":"https://web.archive.org/web/20211201230001/https://mq57uuuqz2-dsn.algolia.net","algoliaAppId":"MQ57UUUQZ2","algoliaSearchOnlyApiKey":"394474ced050e3911ae2249ecc774921","iosAppStoreUrl":"https://web.archive.org/web/20211201230001/https://itunes.apple.com/app/medium-everyones-stories/id828256236?pt=698524&mt=8","iosAppLinkBaseUrl":"medium:","algoliaIndexPrefix":"medium_","androidPlayStoreUrl":"https://web.archive.org/web/20211201230001/https://play.google.com/store/apps/details?id=com.medium.reader","googleClientId":"216296035834-k1k6qe060s2tp2a2jam4ljdcms00sttg.apps.googleusercontent.com","androidPackage":"com.medium.reader","androidPlayStoreMarketScheme":"market://details?id=com.medium.reader","googleAuthUri":"https://web.archive.org/web/20211201230001/https://accounts.google.com/o/oauth2/auth","androidScheme":"medium","layoutData":{"useDynamicScripts":false,"googleAnalyticsTrackingCode":"UA-24232453-2","jsShivUrl":"https://web.archive.org/web/20211201230001/https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.js","useDynamicCss":false,"faviconUrl":"https://web.archive.org/web/20211201230001/https://miro.medium.com/1*m-R_BkNf1Qjr1YbyOIJY2w.png","faviconImageId":"1*m-R_BkNf1Qjr1YbyOIJY2w.png","fontSets":[{"id":8,"url":"https://web.archive.org/web/20211201230001/https://glyph.medium.com/css/e/sr/latin/e/ssr/latin/e/ssb/latin/m2-unbound.css"},{"id":11,"url":"https://web.archive.org/web/20211201230001/https://glyph.medium.com/css/m2-unbound.css"},{"id":9,"url":"https://web.archive.org/web/20211201230001/https://glyph.medium.com/css/mkt.css"}],"editorFaviconUrl":"https://web.archive.org/web/20211201230001/https://miro.medium.com/1*m-R_BkNf1Qjr1YbyOIJY2w.png","glyphUrl":"https://web.archive.org/web/20211201230001/https://glyph.medium.com"},"authBaseUrlRev":"moc.muidem//:sptth","stripePublishableKey":"pk_live_7FReX44VnNIInZwrIIx6ghjl","archiveUploadSizeMb":100,"previewConfig2":{"weightThreshold":1,"weightImageParagraph":0.05,"raiseImage":true,"enforceHeaderHierarchy":true,"isImageInsetRight":true},"isAmp":false,"iosScheme":"medium","lightstep":{"accessToken":"ce5be895bef60919541332990ac9fef2","carrier":"{\"ot-tracer-spanid\":\"3a6f4d896ed41c3b\",\"ot-tracer-traceid\":\"1d21ff1361ec7ddd\",\"ot-tracer-sampled\":\"true\"}","host":"lightstep.medium.systems"},"facebook":{"key":"542599432471018","namespace":"medium-com","scope":{"default":["public_profile","email"],"connect":["public_profile","email"],"login":["public_profile","email"],"share":["public_profile","email"]}},"memberContentTopicId":"13d7efd82fb2","audioContentTopicId":"3792abbd134","isDoNotAuth":false,"buggle":{"url":"https://web.archive.org/web/20211201230001/https://buggle.medium.com","videoUrl":"https://web.archive.org/web/20211201230001/https://cdn-videos-1.medium.com","audioUrl":"https://web.archive.org/web/20211201230001/https://cdn-audio-1.medium.com"},"referrerType":3,"isMeteredOut":false,"meterConfig":{"maxUnlockCount":3,"windowLength":"MONTHLY"},"partnerProgramEmail":"partnerprogram@medium.com","recaptchaKey":"6Lfc37IUAAAAAKGGtC6rLS13R1Hrw_BqADfS1LRk","signinWallCustomDomainCollectionIds":["3a8144eabfe3","336d898217ee","61061eb0c96b","138adf9c44c","819cc2aaeee0"],"countryCode":"US","bypassMeter":false,"branchKey":"key_live_ofxXr2qTrrU9NqURK8ZwEhknBxiI6KBm","paypal":{"clientMode":"production","oneYearGift":{"name":"Medium Membership (1 Year, Digital Gift Code)","description":"Unlimited access to the best and brightest stories on Medium. Gift codes can be redeemed at medium.com/redeem.","price":"50.00","currency":"USD","sku":"membership-gift-1-yr"}},"collectionConfig":{"mediumOwnedAndOperatedCollectionIds":["8a9336e5bb4","b7e45b22fec3","193b68bd4fba","8d6b8a439e32","54c98c43354d","3f6ecf56618","d944778ce714","92d2092dc598","ae2a65f35510","1285ba81cada","544c7006046e","fc8964313712","40187e704f1c","88d9857e584e","7b6769f2748b","bcc38c8f6edf","cef6983b292","cb8577c9149e","444d13b52878","713d7dbc99b0","ef8e90590e66","191186aaafa0","55760f21cdc5","9dc80918cc93","bdc4052bbdba","8ccfed20cbb2"]},"bypassMeterWithShareKey":false,"recaptcha3Key":"6Lf8R9wUAAAAABMI_85Wb8melS7Zj6ziuf99Yot5","braintreeClientKey":"production_zjkj96jm_m56f8fqpf7ngnrd4","cdcMessaging":[{"text":"For more information on the novel coronavirus and Covid-19, visit ","href":"","type":"text","start":0,"end":0},{"text":"cdc.gov","href":"https://web.archive.org/web/20211201230001/https://www.cdc.gov/coronavirus/2019-nCoV","type":"link","start":66,"end":73},{"text":".","href":"","type":"text","start":0,"end":0}],"covidApplicableTagSlugs":[],"braintree":{"merchantId":"m56f8fqpf7ngnrd4"},"diagnostics":{},"domain":"medium.com"} // ]]></script><script charset="UTF-8" src="https://web.archive.org/web/20211201230001js_/https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.hoFDglhm8ARCHy2HoLd9hw.js" async></script><script>// <![CDATA[ window["obvInit"]({"references":{"Collection":{"92df1b631aeb":{"id":"92df1b631aeb","name":"Vimeo Engineering Blog","slug":"vimeo-engineering-blog","tags":["VIMEO","VIDEO","ENGINEERING","TECH","CODING"],"creatorId":"9a4d2ea550cb","description":"We tinker, we build, and we dream up all-new things to help support the world's best community of creators. Lift up the hood and see how it all works.","shortDescription":"We tinker, we build, and we dream up all-new things to help…","image":{"imageId":"1*aTJtrirnEDuzqgTrUEcd7g.png","filter":"","backgroundSize":"","originalWidth":240,"originalHeight":240,"strategy":"resample","height":0,"width":0},"metadata":{"followerCount":2388,"activeAt":1637344959460},"virtuals":{"permissions":{"canPublish":false,"canPublishAll":false,"canRepublish":false,"canRemove":false,"canManageAll":false,"canSubmit":false,"canEditPosts":false,"canAddWriters":false,"canViewStats":false,"canSendNewsletter":false,"canViewLockedPosts":false,"canViewCloaked":false,"canEditOwnPosts":false,"canBeAssignedAuthor":false,"canEnrollInHightower":false,"canLockPostsForMediumMembers":false,"canLockOwnPostsForMediumMembers":false,"canViewNewsletterV2Stats":false,"canCreateNewsletterV3":false},"isSubscribed":false,"isEnrolledInHightower":false,"isEligibleForHightower":false,"isSubscribedToCollectionEmails":false,"isMuted":false,"canToggleEmail":false,"isWriter":false},"logo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"twitterUsername":"vimeo","facebookPageName":"vimeo","sections":[{"type":2,"collectionHeaderMetadata":{"title":"Vimeo Engineering Blog","description":"How we tinker, build, and dream up all-new things for Vimeo.","backgroundImage":{},"logoImage":{"id":"1*kRn0TQdR7OreKRJ1_5lxxQ@2x.png","originalWidth":992,"originalHeight":596,"alt":"Vimeo Engineering Blog"},"alignment":2,"layout":6}},{"type":1,"postListMetadata":{"source":1,"layout":6,"number":10,"postIds":[]}}],"tintColor":"#FF00ADEF","lightText":true,"favicon":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"colorPalette":{"defaultBackgroundSpectrum":{"colorPoints":[{"color":"#FF0094D5","point":0},{"color":"#FF0089C3","point":0.1},{"color":"#FF007EB1","point":0.2},{"color":"#FF0673A0","point":0.3},{"color":"#FF15688F","point":0.4},{"color":"#FF1A5D7D","point":0.5},{"color":"#FF1C516C","point":0.6},{"color":"#FF1B455B","point":0.7},{"color":"#FF193849","point":0.8},{"color":"#FF142B38","point":0.9},{"color":"#FF0D1C25","point":1}],"backgroundColor":"#FFFFFFFF"},"tintBackgroundSpectrum":{"colorPoints":[{"color":"#FF00ADEF","point":0},{"color":"#FF41B7F2","point":0.1},{"color":"#FF5EC0F6","point":0.2},{"color":"#FF76C9F9","point":0.3},{"color":"#FF8BD1FD","point":0.4},{"color":"#FF9EDAFF","point":0.5},{"color":"#FFB0E2FF","point":0.6},{"color":"#FFC1EBFF","point":0.7},{"color":"#FFD1F3FF","point":0.8},{"color":"#FFE1FBFF","point":0.9},{"color":"#FFF1FFFF","point":1}],"backgroundColor":"#FF00ADEF"},"highlightSpectrum":{"colorPoints":[{"color":"#FFE0F7FF","point":0},{"color":"#FFDAF6FF","point":0.1},{"color":"#FFD4F5FF","point":0.2},{"color":"#FFCDF4FF","point":0.3},{"color":"#FFC7F3FF","point":0.4},{"color":"#FFBFF2FF","point":0.5},{"color":"#FFB8F2FF","point":0.6},{"color":"#FFB0F1FF","point":0.7},{"color":"#FFA8F0FF","point":0.8},{"color":"#FFA0EFFF","point":0.9},{"color":"#FF97EEFF","point":1}],"backgroundColor":"#FFFFFFFF"},"darkBackgroundSpectrum":{"colorPoints":[{"color":"#FF00ADEF","point":0},{"color":"#FF3EB4F0","point":0.1},{"color":"#FF5ABCF2","point":0.2},{"color":"#FF70C3F3","point":0.3},{"color":"#FF83CAF5","point":0.4},{"color":"#FF95D1F6","point":0.5},{"color":"#FFA5D8F8","point":0.6},{"color":"#FFB5DEFA","point":0.7},{"color":"#FFC4E5FB","point":0.8},{"color":"#FFD2ECFD","point":0.9},{"color":"#FFE0F2FF","point":1}],"backgroundColor":"#FF000000"}},"navItems":[],"colorBehavior":2,"acceleratedMobilePagesState":0,"ampLogo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"header":{"title":"Vimeo Engineering Blog","description":"How we tinker, build, and dream up all-new things for Vimeo.","backgroundImage":{},"logoImage":{"id":"1*kRn0TQdR7OreKRJ1_5lxxQ@2x.png","originalWidth":992,"originalHeight":596,"alt":"Vimeo Engineering Blog"},"alignment":2,"layout":6},"subscriberCount":2388,"tagline":"We tinker, we build, and we dream up all-new things to help…","isOptedIntoAurora":false,"isCurationAllowedByDefault":false,"polarisCoverImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"ptsQualifiedAt":1616092815346,"type":"Collection"}},"User":{"fce00e13dbfb":{"userId":"fce00e13dbfb","name":"Jaspreet Ranjit","username":"jaspreet-ranjit","createdAt":1594163165877,"imageId":"1*PAJKTOe6hL0nwpJsSlce9w.png","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":1602260873000,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"optInToIceland":false,"subdomainCreatedAt":1634829254270,"hasCompletedProfile":true,"userDismissableFlags":[8,12,2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"replyToEmailBannerShownCount":0,"type":"User"},"f4943d90d808":{"userId":"f4943d90d808","name":"Marc Campbell","username":"mrccmpbll","createdAt":1517978631892,"imageId":"1*ddje2ZQ4bxfdgoEHBAb_gQ.png","backgroundImageId":"","bio":"I’m the senior technical writer at Vimeo. Any mistakes on this blog are probably my fault.","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"optInToIceland":false,"hasCompletedProfile":false,"userDismissableFlags":[2,1],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"replyToEmailBannerShownCount":0,"type":"User"},"c497c5a4b2de":{"userId":"c497c5a4b2de","name":"zeev feldbeine","username":"ZeevFeldbeine","createdAt":1566526063628,"imageId":"1*mQ3A7pmHN6XSd9yNma2KRQ@2x.jpeg","backgroundImageId":"","bio":"Big data enthusiast who likes to build cool stuff. If you are reading this part, I’m doing something right😎","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1580683104339,"isMembershipTrialEligible":false,"optInToIceland":false,"hasCompletedProfile":false,"userDismissableFlags":[5,3,2,1],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"replyToEmailBannerShownCount":0,"type":"User"},"10bab874bf16":{"userId":"10bab874bf16","name":"Raphaël Zumer","username":"rzumer","createdAt":1574195635138,"imageId":"0*l3mag4j0fcKv54Ej.jpg","backgroundImageId":"","bio":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"optInToIceland":false,"hasCompletedProfile":false,"userDismissableFlags":[3,2,1],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"replyToEmailBannerShownCount":0,"type":"User"},"53d6fde4a8ad":{"userId":"53d6fde4a8ad","name":"Andrew Katsikas","username":"apkatsikas","createdAt":1629389872022,"imageId":"1*OP3Rvemg2RgTkvgROVoQVA.png","backgroundImageId":"","bio":"Technology for fun and (begrudgingly) for profit.","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"optInToIceland":false,"hasCompletedProfile":false,"userDismissableFlags":[8,2,1],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"replyToEmailBannerShownCount":0,"type":"User"},"11e87bbb2e89":{"userId":"11e87bbb2e89","name":"Van Nguyen","username":"supperspidey","createdAt":1599754489835,"imageId":"1*3eEjcO2zZizFGmP5oVEPaQ.jpeg","backgroundImageId":"","bio":"iOS Engineer @ Vimeo. Aspiring photographer. Currently a NYC resident.","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1600007387089,"isMembershipTrialEligible":true,"optInToIceland":false,"subdomainCreatedAt":1629324486885,"hasCompletedProfile":false,"userDismissableFlags":[8,2,1],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"replyToEmailBannerShownCount":0,"type":"User"},"5c508928d495":{"userId":"5c508928d495","name":"Sumanth Srinivasan","username":"reckoner165","createdAt":1397334793676,"imageId":"1*3y3irRJVKecEWw1No6qjPg.jpeg","backgroundImageId":"","bio":"Don’t worry about it. www.acrosspolyethylene.com","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"optInToIceland":false,"subdomainCreatedAt":1604162037152,"hasCompletedProfile":false,"userDismissableFlags":[8,5,3,2,1],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"replyToEmailBannerShownCount":0,"type":"User"},"76f0c8379c68":{"userId":"76f0c8379c68","name":"Obed","username":"obedespina","createdAt":1576619674775,"imageId":"1*AfeGqQsQWv3yOtnaAP10gQ.png","backgroundImageId":"","bio":"data engineering @vimeo","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"optInToIceland":false,"hasCompletedProfile":false,"userDismissableFlags":[8,21,2,1],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"replyToEmailBannerShownCount":0,"type":"User"},"8f231cc0fef5":{"userId":"8f231cc0fef5","name":"Shelby Scalia","username":"shelby.scalia","createdAt":1538276955751,"imageId":"1*iIoS54YvbHY57E-Nz9SQjA.jpeg","backgroundImageId":"","bio":"software engineer @ Vimeo","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"optInToIceland":false,"hasCompletedProfile":false,"userDismissableFlags":[2,1],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"replyToEmailBannerShownCount":0,"type":"User"}},"Post":{"751b01d1c874":{"id":"751b01d1c874","versionId":"6768ed5a7597","creatorId":"fce00e13dbfb","homeCollectionId":"92df1b631aeb","title":"Uncovering bias in search and recommendations","detectedLanguage":"en","latestVersion":"6768ed5a7597","latestPublishedVersion":"6768ed5a7597","hasUnpublishedEdits":false,"latestRev":492,"createdAt":1637277237895,"updatedAt":1638212162160,"acceptedAt":0,"firstPublishedAt":1637344958864,"latestPublishedAt":1638207814495,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Because the first step in controlling for bias is demonstrating that bias exists.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*Qh34NdgtcQy400Ut","filter":"","backgroundSize":"","originalWidth":1206,"originalHeight":892,"strategy":"resample","height":0,"width":0},"wordCount":4388,"imageCount":17,"readingTime":18.158490566037738,"subtitle":"Because the first step in controlling for bias is demonstrating that bias exists.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":7,"isBookmarked":false,"tags":[{"slug":"learning-to-rank","name":"Learning To Rank","postCount":36,"metadata":{"postCount":36,"coverImage":{"id":"1*bFF6FMiIUBeyCzLGz9qNzw.png","originalWidth":2400,"originalHeight":1004,"isFeatured":true}},"type":"Tag"},{"slug":"gender-bias","name":"Gender Bias","postCount":385,"metadata":{"postCount":385,"coverImage":{"id":"1*ggZ5mdte3eiWrXvwg5YgWg.png","originalWidth":410,"originalHeight":274}},"type":"Tag"},{"slug":"search","name":"Search","postCount":5266,"metadata":{"postCount":5266,"coverImage":{"id":"1*UdDhUwS12TX1lhZfd6P_fA.jpeg","originalWidth":799,"originalHeight":533,"isFeatured":true}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":174432,"metadata":{"postCount":174432,"coverImage":{"id":"0*3JFb_6FgLVt6JQu3.jpg","originalWidth":1536,"originalHeight":1024,"isFeatured":true}},"type":"Tag"},{"slug":"vimeo","name":"Vimeo","postCount":376,"metadata":{"postCount":376,"coverImage":{"id":"1*vw6is8NeEmGTc5PMVhqhzQ.png","originalWidth":2048,"originalHeight":2048,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://web.archive.org/web/20211201230001/https://microsoft.github.io/msmarco/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://cmry.github.io/notes/euclidean-v-cosine","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://en.wikipedia.org/wiki/Evaluation_measures_(information_retrieval)","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://en.wikipedia.org/wiki/Euclidean_distance","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://en.wikipedia.org/wiki/Transformer_(machine_learning_model)","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://en.wikipedia.org/wiki/Cosine_similarity","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://en.wikipedia.org/wiki/BERT_(language_model)","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://en.wikipedia.org/wiki/Learning_to_rank","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://en.wikipedia.org/wiki/Tf%E2%80%93idf","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/http://www.stat.yale.edu/Courses/1997-98/101/linreg.htm","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://vimeo.com/jobs","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://www.ibm.com/topics/logistic-regression","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://thenextweb.com/news/how-to-detect-unwanted-bias-in-machine-learning-models","alts":[{"type":1,"url":"https://web.archive.org/web/20211201230001/https://cdn.ampproject.org/c/s/thenextweb.com/news/how-to-detect-unwanted-bias-in-machine-learning-models/amp"}],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://www.statology.org/kendalls-tau/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/http://times.cs.uiuc.edu/course/598f14/l2r.pdf","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://github.com/elastic/elasticsearch","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://www.microsoft.com/en-us/research/publication/from-ranknet-to-lambdarank-to-lambdamart-an-overview/?from=https%3A%2F%2Fresearch.microsoft.com%2Fpubs%2F132652%2FMSR-TR-2010-82.pdf","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://arxiv.org/pdf/2005.00372.pdf","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://arxiv.org/pdf/1607.06520.pdf","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://www.sbert.net/docs/pretrained-models/msmarco-v3.html","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://www.elastic.co/blog/practical-bm25-part-2-the-bm25-algorithm-and-its-variables","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://blogs.sas.com/content/subconsciousmusings/2020/12/09/machine-learning-algorithm-use/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://www.numpyninja.com/post/gradient-boost-for-regression-explained","alts":[{"type":1,"url":"https://web.archive.org/web/20211201230001/https://cdn.ampproject.org/c/s/www.numpyninja.com/amp/gradient-boost-for-regression-explained"}],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://towardsdatascience.com/normalized-discounted-cumulative-gain-37e6f75090e9","alts":[{"type":3,"url":"medium://p/37e6f75090e9"},{"type":2,"url":"medium://p/37e6f75090e9"}],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://towardsdatascience.com/an-intuitive-explanation-of-random-forest-and-extra-trees-classifiers-8507ac21d54b","alts":[{"type":3,"url":"medium://p/8507ac21d54b"},{"type":2,"url":"medium://p/8507ac21d54b"}],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://towardsdatascience.com/breaking-down-mean-average-precision-map-ae462f623a52","alts":[{"type":3,"url":"medium://p/ae462f623a52"},{"type":2,"url":"medium://p/ae462f623a52"}],"httpStatus":200}],"version":"0.3","generatedAt":1638207816343},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":93,"sectionCount":2,"readingList":0,"topics":[{"topicId":"1eca0103fff3","slug":"machine-learning","createdAt":1534449726145,"deletedAt":0,"image":{"id":"1*gFJS3amhZEg_z39D5EErVg@2x.png","originalWidth":2800,"originalHeight":1750},"name":"Machine Learning","description":"Teaching the learners.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Machine Learning News and Articles — Medium","type":"Topic"},{"topicId":"ae5d4995e225","slug":"data-science","createdAt":1493923906289,"deletedAt":0,"image":{"id":"1*NHWOEki_ncCX-xzbKtkEWw@2x.jpeg","originalWidth":5760,"originalHeight":3840},"name":"Data Science","description":"Query this.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Data Science News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"uncovering-bias-in-search-and-recommendations","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"uncovering-bias-in-search-and-recommendations-751b01d1c874","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*Qh34NdgtcQy400Ut","originalWidth":1206,"originalHeight":892,"isFeatured":true}},{"name":"80e5","type":3,"text":"Uncovering bias in search and recommendations","markups":[{"type":1,"start":0,"end":45}],"alignment":1},{"name":"8fd3","type":13,"text":"Because the first step in controlling for bias is…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Because the first step in controlling for bias is demonstrating that bias exists."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"92df1b631aeb","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":3,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopicId":"ae5d4995e225","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"80e5","type":3,"text":"Uncovering bias in search and recommendations","markups":[{"type":1,"start":0,"end":45}]},{"name":"8fd3","type":13,"text":"Because the first step in controlling for bias is demonstrating that bias exists.","markups":[]},{"name":"eb3a","type":1,"text":"Bias is a problem that’s exceedingly easy to introduce into any system and exceedingly hard to identify and address. At Vimeo, like at many other tech companies, we attempt to make data-driven decisions about our products in hopes of creating tools and adding features based on actual user experience. But…","markups":[]}],"sections":[{"name":"c663","startIndex":0}]},"isFullContent":false,"subtitle":"Because the first step in controlling for bias is demonstrating that bias exists."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"bd9c3a4fd0b5":{"id":"bd9c3a4fd0b5","versionId":"4805c693ec01","creatorId":"f4943d90d808","homeCollectionId":"92df1b631aeb","title":"Vimeo’s Sergio Salvatore on scaling and cloud databases","detectedLanguage":"en","latestVersion":"4805c693ec01","latestPublishedVersion":"4805c693ec01","hasUnpublishedEdits":false,"latestRev":32,"createdAt":1636660716602,"updatedAt":1636725797187,"acceptedAt":0,"firstPublishedAt":1636725787042,"latestPublishedAt":1636725787042,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"A Senior Director of Engineering talks shop with Google Cloud.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*5LzC70l3wLE8CNSgOcNi3Q.png","filter":"","backgroundSize":"","originalWidth":1281,"originalHeight":721,"strategy":"resample","height":0,"width":0},"wordCount":124,"imageCount":1,"readingTime":0.6679245283018869,"subtitle":"A Senior Director of Engineering talks shop with Google Cloud.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":3,"isBookmarked":false,"tags":[{"slug":"vimeo","name":"Vimeo","postCount":376,"metadata":{"postCount":376,"coverImage":{"id":"1*vw6is8NeEmGTc5PMVhqhzQ.png","originalWidth":2048,"originalHeight":2048,"isFeatured":true}},"type":"Tag"},{"slug":"google-cloud","name":"Google Cloud","postCount":1190,"metadata":{"postCount":1190,"coverImage":{"id":"0*ce7s5zefSUyOn9A6","originalWidth":1600,"originalHeight":667,"isFeatured":true}},"type":"Tag"},{"slug":"google-cloud-platform","name":"Google Cloud Platform","postCount":12851,"metadata":{"postCount":12851,"coverImage":{"id":"1*jR0UxeEtYOcnd5S1pp0dZQ.png","originalWidth":2000,"originalHeight":971,"isFeatured":true}},"type":"Tag"},{"slug":"scaling","name":"Scaling","postCount":2347,"metadata":{"postCount":2347,"coverImage":{"id":"0*qLYwpkbX0YuKQyaQ.jpg","originalWidth":2048,"originalHeight":1152,"isFeatured":true}},"type":"Tag"},{"slug":"cloud-database","name":"Cloud Database","postCount":62,"metadata":{"postCount":62,"coverImage":{"id":"1*tif4Ss5ReP_8y9i9Xu41rw.png","originalWidth":3238,"originalHeight":1718,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://web.archive.org/web/20211201230001/https://boards.greenhouse.io/vimeo/jobs/3253766","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://boards.greenhouse.io/vimeo/jobs/2398868","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://vimeo.com/jobs","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1636725789169},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":12,"sectionCount":1,"readingList":0,"topics":[{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"vimeos-sergio-salvatore-on-scaling-and-cloud-databases","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"vimeos-sergio-salvatore-on-scaling-and-cloud-databases-bd9c3a4fd0b5","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*5LzC70l3wLE8CNSgOcNi3Q.png","originalWidth":1281,"originalHeight":721,"isFeatured":true}},{"name":"86e4","type":3,"text":"Vimeo’s Sergio Salvatore on scaling and cloud databases","markups":[{"type":1,"start":0,"end":55}],"alignment":1},{"name":"b39b","type":13,"text":"A Senior Director of Engineering talks shop…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"A Senior Director of Engineering talks shop with Google Cloud."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"92df1b631aeb","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"Vimeo’s Sergio Salvatore on scaling and cloud databases","previewContent2":{"bodyModel":{"paragraphs":[{"name":"86e4","type":3,"text":"Vimeo’s Sergio Salvatore on scaling and cloud databases","markups":[{"type":1,"start":0,"end":55}]},{"name":"b39b","type":13,"text":"A Senior Director of Engineering talks shop with Google Cloud.","markups":[]},{"name":"4c95","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*5LzC70l3wLE8CNSgOcNi3Q.png","originalWidth":1281,"originalHeight":721,"isFeatured":true}},{"name":"60a3","type":1,"text":"The product team for databases at Google Cloud recently hosted a fireside chat with Vimeo’s very own Sergio Salvatore, Senior Director of Engineering, to discuss how we make the most of their technology.","markups":[]},{"name":"fad3","type":1,"text":"During the course of their tête-à-tête, Sergio dropped all kinds of details about the very tasty trouble…","markups":[]}],"sections":[{"name":"38cf","startIndex":0}]},"isFullContent":false,"subtitle":"A Senior Director of Engineering talks shop with Google Cloud."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":true,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"42221f9a8623":{"id":"42221f9a8623","versionId":"23539b40b54d","creatorId":"c497c5a4b2de","homeCollectionId":"92df1b631aeb","title":"Too big to query: how to query HBase with minimal pain","detectedLanguage":"en","latestVersion":"23539b40b54d","latestPublishedVersion":"23539b40b54d","hasUnpublishedEdits":false,"latestRev":627,"createdAt":1634753419618,"updatedAt":1635267363913,"acceptedAt":0,"firstPublishedAt":1635255150739,"latestPublishedAt":1635255150739,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"How to query HBase/Phoenix using Apache Spark from HBase snapshots with minimal impact on the cluster","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*vw6is8NeEmGTc5PMVhqhzQ.png","filter":"","backgroundSize":"","originalWidth":2048,"originalHeight":2048,"strategy":"resample","height":0,"width":0},"wordCount":1381,"imageCount":3,"readingTime":5.761320754716981,"subtitle":"How to query HBase/Phoenix using Apache Spark from HBase snapshots with minimal impact on the cluster","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":10,"isBookmarked":false,"tags":[{"slug":"data-engineering","name":"Data Engineering","postCount":6090,"metadata":{"postCount":6090,"coverImage":{"id":"1*nPSth7bo45eWeuWU363Cxw.png","originalWidth":1273,"originalHeight":665,"isFeatured":true}},"type":"Tag"},{"slug":"hbase","name":"Hbase","postCount":219,"metadata":{"postCount":219,"coverImage":{"id":"1*vw6is8NeEmGTc5PMVhqhzQ.png","originalWidth":2048,"originalHeight":2048,"isFeatured":true}},"type":"Tag"},{"slug":"spark","name":"Spark","postCount":4509,"metadata":{"postCount":4509,"coverImage":{"id":"0*NFPFqCGZ7Pb6NSSk","originalWidth":2899,"originalHeight":2576,"isFeatured":true,"unsplashPhotoId":"BGaGusB9rL4"}},"type":"Tag"},{"slug":"apache-phoenix","name":"Apache Phoenix","postCount":17,"metadata":{"postCount":17,"coverImage":{"id":"1*vw6is8NeEmGTc5PMVhqhzQ.png","originalWidth":2048,"originalHeight":2048,"isFeatured":true}},"type":"Tag"},{"slug":"vimeo","name":"Vimeo","postCount":376,"metadata":{"postCount":376,"coverImage":{"id":"1*vw6is8NeEmGTc5PMVhqhzQ.png","originalWidth":2048,"originalHeight":2048,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://web.archive.org/web/20211201230001/https://hadoop.apache.org/docs/r1.2.1/hdfs_design.html","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/video-social-analytics-at-scale-using-apache-spark-5bf34359c9ba","alts":[{"type":3,"url":"medium://p/5bf34359c9ba"},{"type":2,"url":"medium://p/5bf34359c9ba"}],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.1.5/hbase-data-access/content/hbase-snapshots.html","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://dzone.com/articles/apache-phoenix-sql-driver","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://www.talenthouse.com/sanket-deshmukh","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://en.wikipedia.org/wiki/File:Gerry_and_the_pacemakers_how_do_you_do_it.jpeg","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://gist.github.com/zeev1079/cc6e9df486b74958ea327395c632eedb","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://phoenix.apache.org/salted.html","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://spark.apache.org/docs/latest/api/java/org/apache/spark/rdd/NewHadoopRDD.html","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://grnh.se/667d23a21us","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://phoenix.apache.org/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://community.cloudera.com/t5/Support-Questions/How-to-Query-Hbase-Snapshot-in-HDFS-from-Spark-or-PySpark/td-p/166137","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1635255153316},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":16,"sectionCount":1,"readingList":0,"topics":[{"topicId":"ae5d4995e225","slug":"data-science","createdAt":1493923906289,"deletedAt":0,"image":{"id":"1*NHWOEki_ncCX-xzbKtkEWw@2x.jpeg","originalWidth":5760,"originalHeight":3840},"name":"Data Science","description":"Query this.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Data Science News and Articles — Medium","type":"Topic"},{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"too-big-to-query-how-to-query-hbase-with-minimal-pain","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"too-big-to-query-how-to-query-hbase-with-minimal-pain-42221f9a8623","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*vw6is8NeEmGTc5PMVhqhzQ.png","originalWidth":2048,"originalHeight":2048,"isFeatured":true}},{"name":"37df","type":3,"text":"Too big to query: how to query HBase with minimal pain","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"How to query HBase/Phoenix using Apache Spark from HBase snapshots with minimal impact on the cluster"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"92df1b631aeb","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":3,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopicId":"decb52b64abf","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"Too big to query","previewContent2":{"bodyModel":{"paragraphs":[{"name":"37df","type":3,"text":"Too big to query: how to query HBase with minimal pain","markups":[]},{"name":"94f6","type":1,"text":"In today’s world of media consumption and engagement, we on the Vimeo Analytics team had to find ways to scale and handle the massive amounts of analytical data growth that we experienced during the COVID era.","markups":[]},{"name":"fe7d","type":1,"text":"Video analytics at Vimeo has been supported for the most part by an HBase…","markups":[]}],"sections":[{"name":"3745","startIndex":0}]},"isFullContent":false,"subtitle":"How to query HBase/Phoenix using Apache Spark from HBase snapshots with minimal impact on the cluster"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"e1103df2d6b8":{"id":"e1103df2d6b8","versionId":"2c8ca26e2f74","creatorId":"10bab874bf16","homeCollectionId":"92df1b631aeb","title":"Picture-perfect thumbnails for all videos","detectedLanguage":"en","latestVersion":"2c8ca26e2f74","latestPublishedVersion":"2c8ca26e2f74","hasUnpublishedEdits":false,"latestRev":389,"createdAt":1630067156264,"updatedAt":1634328861372,"acceptedAt":0,"firstPublishedAt":1634317619040,"latestPublishedAt":1634319150752,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"How we improved thumbnails for HDR, interlaced, and 360° videos.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*EZbLl9J5G6YnSIYT","filter":"","backgroundSize":"","originalWidth":800,"originalHeight":400,"strategy":"resample","height":0,"width":0},"wordCount":896,"imageCount":8,"readingTime":4.514465408805032,"subtitle":"How we improved thumbnails for HDR, interlaced, and 360° videos.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":5,"isBookmarked":false,"tags":[{"slug":"image-processing","name":"Image Processing","postCount":4017,"metadata":{"postCount":4017,"coverImage":{"id":"1*WvlUhhQSpVKzN6049a0mqA.png","originalWidth":1058,"originalHeight":375,"isFeatured":true}},"type":"Tag"},{"slug":"software-engineering","name":"Software Engineering","postCount":38411,"metadata":{"postCount":38411,"coverImage":{"id":"1*5HXEbRM9vNr06NYuyENFPQ.jpeg","originalWidth":4928,"originalHeight":3280,"isFeatured":true}},"type":"Tag"},{"slug":"interlacing","name":"Interlacing","postCount":0,"metadata":{"postCount":0,"coverImage":{"id":"0*EZbLl9J5G6YnSIYT","originalWidth":800,"originalHeight":400,"isFeatured":true}},"type":"Tag"},{"slug":"360-video","name":"360 Video","postCount":2019,"metadata":{"postCount":2019,"coverImage":{"id":"1*mmWRYnqcfsoMl3UcXiWCMg.jpeg","originalWidth":3910,"originalHeight":2226}},"type":"Tag"},{"slug":"hdr","name":"Hdr","postCount":220,"metadata":{"postCount":220,"coverImage":{"id":"1*DLKFTW9BT92QOF7jx7uGZA.png","originalWidth":1352,"originalHeight":754,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://web.archive.org/web/20211201230001/https://vimeo.com/blog/post/introducing-vimeo-360/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/upgrading-images-on-vimeo-620f79da8605","alts":[{"type":3,"url":"medium://p/620f79da8605"},{"type":2,"url":"medium://p/620f79da8605"}],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://mathworld.wolfram.com/about/author.html","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://mathworld.wolfram.com/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://mathworld.wolfram.com/GnomonicProjection.html","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://github.com/sekrit-twc/znedi3","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/http://avisynth.nl/index.php/Nnedi3","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1634319152032},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":10,"sectionCount":1,"readingList":0,"topics":[{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"thumbnails-for-everyone","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"thumbnails-for-everyone-e1103df2d6b8","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*EZbLl9J5G6YnSIYT","originalWidth":800,"originalHeight":400,"isFeatured":true}},{"name":"previewTitle","type":3,"text":"Picture-perfect thumbnails for all videos","alignment":1},{"name":"previewSubtitle","type":13,"text":"How we improved thumbnails for HDR, interlaced, and 360°…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"How we improved thumbnails for HDR, interlaced, and 360° videos."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"92df1b631aeb","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":3,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopicId":"decb52b64abf","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"2713","type":3,"text":"Picture-perfect thumbnails for all videos","markups":[]},{"name":"1ebd","type":1,"text":"We recently introduced AVIF support to images all over the Vimeo platform. Today, on the same theme, I’d like to introduce three improvements to video thumbnails that were deployed over the last few weeks.","markups":[{"type":3,"start":12,"end":35,"href":"https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/upgrading-images-on-vimeo-620f79da8605","title":"","rel":"","anchorType":0}]},{"name":"157d","type":3,"text":"Better thumbnail generation for HDR video","markups":[]},{"name":"68cd","type":1,"text":"High Dynamic Range (HDR) images and videos boast an increased range of luminosity, which allows for…","markups":[{"type":2,"start":347,"end":358}]}],"sections":[{"name":"1c6e","startIndex":0}]},"isFullContent":false,"subtitle":"How we improved thumbnails for HDR, interlaced, and 360° videos."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"59e3feca7e84":{"id":"59e3feca7e84","versionId":"40e7bd2c998","creatorId":"53d6fde4a8ad","homeCollectionId":"92df1b631aeb","title":"How we built better automated UI testing at Vimeo","detectedLanguage":"en","latestVersion":"40e7bd2c998","latestPublishedVersion":"40e7bd2c998","hasUnpublishedEdits":false,"latestRev":82,"createdAt":1631629447460,"updatedAt":1631631283206,"acceptedAt":0,"firstPublishedAt":1631631277104,"latestPublishedAt":1631631277104,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Reducing the burden of regression testing frees up human QA for what they do best. Here’s our approach for automating that at Vimeo.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*_JS4VSBsV7W0rnUZ","filter":"","backgroundSize":"","originalWidth":1732,"originalHeight":956,"strategy":"resample","height":0,"width":0},"wordCount":795,"imageCount":3,"readingTime":3.55,"subtitle":"Reducing the burden of regression testing frees up human QA for what they do best. Here’s our approach for automating that at Vimeo.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":15,"isBookmarked":false,"tags":[{"slug":"qa","name":"QA","postCount":4373,"metadata":{"postCount":4373,"coverImage":{"id":"1*U-SksuDQNg1C4R4krpIPzw.png","originalWidth":3489,"originalHeight":2959,"isFeatured":true,"alt":"article image: pyramid with layers"}},"type":"Tag"},{"slug":"automation-testing","name":"Automation Testing","postCount":2711,"metadata":{"postCount":2711,"coverImage":{"id":"1*CMEsuVSnxbfbKXaQUI5Tqg.png","originalWidth":1240,"originalHeight":453,"isFeatured":true}},"type":"Tag"},{"slug":"ui-testing","name":"Ui Testing","postCount":351,"metadata":{"postCount":351,"coverImage":{"id":"1*E5c3vO-euLnJQeoajzuQmA.jpeg","originalWidth":5108,"originalHeight":3459,"isFeatured":true}},"type":"Tag"},{"slug":"qa-testing","name":"Qa Testing","postCount":905,"metadata":{"postCount":905,"coverImage":{"id":"1*S8e5bO1jSw4sIN8iCI9bNA.png","originalWidth":788,"originalHeight":405,"isFeatured":true}},"type":"Tag"},{"slug":"development","name":"Development","postCount":58044,"metadata":{"postCount":58044,"coverImage":{"id":"1*m6WDayuOINWZRf4Om7_vfg.png","originalWidth":1425,"originalHeight":819,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://web.archive.org/web/20211201230001/https://hubot.github.com/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://vimeo.com/create","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://www.jenkins.io/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://vimeo.com/features/screen-recorder","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://docs.npmjs.com/cli/v7/configuring-npm/package-json#github-urls","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://webdriver.io/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://www.npmjs.com/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://www.browserstack.com/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://www.jenkins.io/doc/pipeline/steps/credentials-binding/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://grnh.se/353a1d2c1us","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1631631277980},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":38,"sectionCount":2,"readingList":0,"topics":[{"topicId":"63c6f1f93ee","slug":"javascript","createdAt":1493945704961,"deletedAt":0,"image":{"id":"1*5UyyDJ1ESD11yQNd1UVAaQ@2x.jpeg","originalWidth":5472,"originalHeight":3648},"name":"Javascript","description":"An ode to code.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Javascript News and Articles — Medium","type":"Topic"},{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"how-we-built-better-automated-ui-testing-at-vimeo","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"how-we-built-better-automated-ui-testing-at-vimeo-59e3feca7e84","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*_JS4VSBsV7W0rnUZ","originalWidth":1732,"originalHeight":956,"isFeatured":true,"alt":"Screenshot of a test report generated using Backbone"}},{"name":"8c53","type":3,"text":"How we built better automated UI testing at Vimeo","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Reducing the burden of regression testing frees up human QA for what they do best. Here’s our approach for automating that at Vimeo."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"92df1b631aeb","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"8c53","type":3,"text":"How we built better automated UI testing at Vimeo","markups":[]},{"name":"c19e","type":1,"text":"Automated UI testing is an important part of evaluating the quality of a given software build or release candidate. By running tests against a real version of our application at Vimeo, we can very closely mimic the end-user experience. This is done to increase quality and confidence in our builds…","markups":[]}],"sections":[{"name":"e2ed","startIndex":0}]},"isFullContent":false,"subtitle":"Reducing the burden of regression testing frees up human QA for what they do best. Here’s our approach for automating that at Vimeo."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"363f6497362b":{"id":"363f6497362b","versionId":"b41a336a4bc7","creatorId":"11e87bbb2e89","homeCollectionId":"92df1b631aeb","title":"UIScrollView with Vimeo’s Latest Player Screen","detectedLanguage":"en","latestVersion":"b41a336a4bc7","latestPublishedVersion":"b41a336a4bc7","hasUnpublishedEdits":false,"latestRev":563,"createdAt":1631128581153,"updatedAt":1631556144928,"acceptedAt":0,"firstPublishedAt":1631288122650,"latestPublishedAt":1631556140198,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"UIScrollView is one of the most complicated UIView subclasses, but if used properly, it can bring a delightful experience. Check out how.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*azk5j_To9nj-qGwa","filter":"","backgroundSize":"","originalWidth":1400,"originalHeight":736,"strategy":"resample","height":0,"width":0},"wordCount":2913,"imageCount":2,"readingTime":11.375786163522012,"subtitle":"UIScrollView is one of the most complicated UIView subclasses, but if used properly, it can bring a delightful experience. Check out how.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":10,"isBookmarked":false,"tags":[{"slug":"ios","name":"iOS","postCount":60348,"metadata":{"postCount":60348,"coverImage":{"id":"1*m3Fp0NIBSiWm_ea0P7Xq6A@2x.png","originalWidth":1604,"originalHeight":840,"isFeatured":true,"alt":"Preview of article content: Windows 11 right-click menu, toggle button, design, Windows 11 dialog, outline icons, toggle designs in iOS and Android, Segoe UI Variable optical sizes, and Material You wallpaper-based personalization."}},"type":"Tag"},{"slug":"uiscrollview","name":"Uiscrollview","postCount":50,"metadata":{"postCount":50,"coverImage":{"id":"1*vtMz_F0j7unRVzYB3kSx1A.png","originalWidth":1880,"originalHeight":932,"isFeatured":true}},"type":"Tag"},{"slug":"mobile-app-development","name":"Mobile App Development","postCount":53183,"metadata":{"postCount":53183,"coverImage":{"id":"1*3JnAt0vhVR0Ax1_4YM3wag.png","originalWidth":1800,"originalHeight":1052,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://web.archive.org/web/20211201230001/https://grnh.se/353a1d2c1us","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1631556140330},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":63,"sectionCount":2,"readingList":0,"topics":[{"topicId":"ab3d8f7f8eb1","slug":"ios-development","createdAt":1521651850182,"deletedAt":0,"image":{"id":"1*g_B4JNulmfXSj0AyEjImyA@2x.jpeg","originalWidth":5184,"originalHeight":3456},"name":"iOS Dev","description":"Appy talk.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"iOS App Development: Articles and News — Medium","type":"Topic"}]},"coverless":true,"slug":"uiscrollview-with-vimeos-latest-player-screen","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"uiscrollview-with-vimeos-latest-player-screen-363f6497362b","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*azk5j_To9nj-qGwa","originalWidth":1400,"originalHeight":736,"isFeatured":true}},{"name":"previewTitle","type":3,"text":"UIScrollView with Vimeo’s Latest Player Screen","alignment":1},{"name":"previewSubtitle","type":13,"text":"UIScrollView is one of the most complicated UIView…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"UIScrollView is one of the most complicated UIView subclasses, but if used properly, it can bring a delightful experience. Check out how."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"92df1b631aeb","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":3,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopicId":"ab3d8f7f8eb1","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"36dc","type":3,"text":"UIScrollView with Vimeo’s Latest Player Screen","markups":[]},{"name":"2d50","type":1,"text":"On Vimeo’s Mobile team, one of our goals is to empower our users with the latest technologies from iOS and Android as well as with an intuitive, easy-to-use user interface. One of many examples that demonstrate this commitment is the latest player screen that we shipped with version 8.6.0 of…","markups":[]}],"sections":[{"name":"dfa3","startIndex":0}]},"isFullContent":false,"subtitle":"UIScrollView is one of the most complicated UIView subclasses, but if used properly, it can bring a delightful experience. Check out how."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"9c3b9537119a":{"id":"9c3b9537119a","versionId":"c030ba71871","creatorId":"5c508928d495","homeCollectionId":"92df1b631aeb","title":"DRM at Vimeo","detectedLanguage":"en","latestVersion":"c030ba71871","latestPublishedVersion":"c030ba71871","hasUnpublishedEdits":false,"latestRev":127,"createdAt":1627938875757,"updatedAt":1628002557915,"acceptedAt":0,"firstPublishedAt":1628000793226,"latestPublishedAt":1628002548452,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"DRM technology for streaming media is a decades-long evolution of cold war era communication techniques. Here’s how Vimeo does it.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*HJtZbe4P-WxlmQUx","filter":"","backgroundSize":"","originalWidth":1600,"originalHeight":807,"strategy":"resample","height":0,"width":0},"wordCount":1268,"imageCount":3,"readingTime":5.334905660377358,"subtitle":"DRM technology for streaming media is a decades-long evolution of cold war era communication techniques. Here’s how Vimeo does it.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":13,"isBookmarked":false,"tags":[{"slug":"video-streaming-online","name":"Video Streaming Online","postCount":53,"metadata":{"postCount":53,"coverImage":{"id":"0*-FBzijUdABW0XYGJ","originalWidth":5536,"originalHeight":4160,"isFeatured":true,"unsplashPhotoId":"qnWPjzewewA"}},"type":"Tag"},{"slug":"drm","name":"Drm","postCount":317,"metadata":{"postCount":317,"coverImage":{"id":"1*1QcV2aH02ovUEA9ia1hO8g.png","originalWidth":1200,"originalHeight":600,"isFeatured":true}},"type":"Tag"},{"slug":"cryptography","name":"Cryptography","postCount":5702,"metadata":{"postCount":5702,"coverImage":{"id":"0*sUatsdUbzE2s5f3g","originalWidth":1400,"originalHeight":731,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://web.archive.org/web/20211201230001/https://www.fastly.com","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://w3c.github.io/encrypted-media/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/HLS_Sample_Encryption/Intro/Intro.html","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://www.intertrust.com/products/drm-system/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://grnh.se/353a1d2c1us","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/http://go2sm.com/cryptography","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/http://pages.cs.wisc.edu/~rist/642-spring-2014/shannon-secrecy.pdf","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1628002551877},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":19,"sectionCount":2,"readingList":0,"topics":[{"topicId":"d4e7f4144ac5","slug":"cybersecurity","createdAt":1493946839810,"deletedAt":0,"image":{"id":"1*JpJUz3WBPiQG5vkJ9WY8rw@2x.jpeg","originalWidth":6000,"originalHeight":4000},"name":"Cybersecurity","description":"Towards a more perfect password.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Cybersecurity News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"drm-at-vimeo","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"drm-at-vimeo-9c3b9537119a","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*HJtZbe4P-WxlmQUx","originalWidth":1600,"originalHeight":807,"isFeatured":true}},{"name":"previewTitle","type":3,"text":"DRM at Vimeo","alignment":1},{"name":"previewSubtitle","type":13,"text":"DRM technology for streaming media is a decades-long evolution of cold war era…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"DRM technology for streaming media is a decades-long evolution of cold war era communication techniques. Here’s how Vimeo does it."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"92df1b631aeb","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"3444","type":3,"text":"DRM at Vimeo","markups":[]},{"name":"d640","type":1,"text":"Digital Rights Management, or DRM, enables secure transmission of media such that no entity besides its intended recipient is able to access it meaningfully.","markups":[]},{"name":"8d64","type":1,"text":"Vimeo is in the business of providing access to video, and as we support bigger studios via our Vimeo OTT service, license holders want to exercise…","markups":[]}],"sections":[{"name":"e4e7","startIndex":0}]},"isFullContent":false,"subtitle":"DRM technology for streaming media is a decades-long evolution of cold war era communication techniques. Here’s how Vimeo does it."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"b0e8397cfac2":{"id":"b0e8397cfac2","versionId":"f26a2cf03fa5","creatorId":"76f0c8379c68","homeCollectionId":"92df1b631aeb","title":"Debezium event flattening with SQL in Snowflake","detectedLanguage":"en","latestVersion":"f26a2cf03fa5","latestPublishedVersion":"f26a2cf03fa5","hasUnpublishedEdits":false,"latestRev":446,"createdAt":1624986819047,"updatedAt":1625072088107,"acceptedAt":0,"firstPublishedAt":1625060709635,"latestPublishedAt":1625068571830,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Learn how we replicate MySQL tables in our Snowflake data warehouse.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*xJ1C7VVePURkb-MN","filter":"","backgroundSize":"","originalWidth":1370,"originalHeight":809,"strategy":"resample","height":0,"width":0},"wordCount":1833,"imageCount":4,"readingTime":7.6169811320754715,"subtitle":"Learn how we replicate MySQL tables in our Snowflake data warehouse.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":20,"isBookmarked":false,"tags":[{"slug":"debezium","name":"Debezium","postCount":123,"metadata":{"postCount":123,"coverImage":{"id":"1*x0yLiuMB1f30FeZLLADmXQ.png","originalWidth":1060,"originalHeight":540,"isFeatured":true}},"type":"Tag"},{"slug":"snowflake","name":"Snowflake","postCount":1588,"metadata":{"postCount":1588,"coverImage":{"id":"1*RiiE2PK-k0Was1YfbQB0zQ.jpeg","originalWidth":1200,"originalHeight":530,"isFeatured":true}},"type":"Tag"},{"slug":"snowflake-connector","name":"Snowflake Connector","postCount":13,"metadata":{"postCount":13,"coverImage":{"id":"1*euAGAAqKj-doc8KqjTg5AA.jpeg","originalWidth":1920,"originalHeight":1280,"isFeatured":true}},"type":"Tag"},{"slug":"airflow","name":"Airflow","postCount":1066,"metadata":{"postCount":1066,"coverImage":{"id":"1*xlgJlRyWYtx_JgmF0sKLMQ.png","originalWidth":930,"originalHeight":667,"isFeatured":true}},"type":"Tag"},{"slug":"data-engineering","name":"Data Engineering","postCount":6090,"metadata":{"postCount":6090,"coverImage":{"id":"1*nPSth7bo45eWeuWU363Cxw.png","originalWidth":1273,"originalHeight":665,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://web.archive.org/web/20211201230001/https://airflow.apache.org","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://www.getdbt.com/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://docs.snowflake.com/en/user-guide/kafka-connector.html","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://docs.confluent.io/platform/current/connect/transforms/custom.html#custom-transform","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://gist.github.com/oolongtea/694bd25b0d0a906a4821270606f1cdf7","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://docs.snowflake.com/en/user-guide/streams.html","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://docs.snowflake.com/en/user-guide/kafka-connector-overview.html#schema-of-topics-for-kafka-topics","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://docs.snowflake.com/en/user-guide/kafka-connector-overview.html#kafka-connector-limitations","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://gist.github.com/oolongtea/06c1b9d8094cd711e5ba480174bb7725","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://debezium.io/documentation/reference/1.2/connectors/index.html","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://debezium.io/documentation/faq/#what_is_debezium","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://debezium.io/documentation/reference/1.5/configuration/event-flattening.html","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://debezium.io/documentation/reference/tutorial.html#viewing-change-events","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://debezium.io/documentation/reference/0.9/connectors/mysql.html#schema-change-topic","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://debezium.io/documentation/reference/connectors/mysql.html#mysql-snapshot-events","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://github.com/snowflakedb/snowflake-kafka-connector","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://cwiki.apache.org/confluence/display/KAFKA/KIP-66%3A+Single+Message+Transforms+for+Kafka+Connect","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://grnh.se/353a1d2c1us","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://greatexpectations.io/","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1625068572631},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":48,"sectionCount":2,"readingList":0,"topics":[{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"debezium-event-flattening-with-sql-in-snowflake","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"debezium-event-flattening-with-sql-in-snowflake-b0e8397cfac2","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*xJ1C7VVePURkb-MN","originalWidth":1370,"originalHeight":809,"isFeatured":true}},{"name":"f16d","type":3,"text":"Debezium event flattening with SQL in Snowflake","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Learn how we replicate MySQL tables in our Snowflake data warehouse."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"92df1b631aeb","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":3,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopicId":"decb52b64abf","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"f16d","type":3,"text":"Debezium event flattening with SQL in Snowflake","markups":[]},{"name":"fb61","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"0*xJ1C7VVePURkb-MN","originalWidth":1370,"originalHeight":809,"isFeatured":true}},{"name":"f55e","type":1,"text":"As a company grows, data engineering teams need to focus on scaling to meet the increasing demands from BI reporting, product analytics, and data science. In the beginning, it’s enough to report directly from the application database to get the data you need. Next, you might add some read-only databases…","markups":[]}],"sections":[{"name":"6bdf","startIndex":0}]},"isFullContent":false,"subtitle":"Learn how we replicate MySQL tables in our Snowflake data warehouse."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"620f79da8605":{"id":"620f79da8605","versionId":"bd2c1296e5b4","creatorId":"10bab874bf16","homeCollectionId":"92df1b631aeb","title":"Upgrading images on Vimeo","detectedLanguage":"en","latestVersion":"bd2c1296e5b4","latestPublishedVersion":"bd2c1296e5b4","hasUnpublishedEdits":false,"latestRev":232,"createdAt":1620675931343,"updatedAt":1622667533131,"acceptedAt":0,"firstPublishedAt":1622667528612,"latestPublishedAt":1622667528612,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Introducing AVIF format support and expanded WebP coverage for faster loading times.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*nn4ihFzuELEoTpJE","filter":"","backgroundSize":"","originalWidth":930,"originalHeight":568,"strategy":"resample","height":0,"width":0},"wordCount":902,"imageCount":3,"readingTime":3.9537735849056608,"subtitle":"Introducing AVIF format support and expanded WebP coverage for faster loading times.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":14,"isBookmarked":false,"tags":[{"slug":"image-compression","name":"Image Compression","postCount":94,"metadata":{"postCount":94,"coverImage":{"id":"1*x9WWLkP3fwo9Tbxu3Xp23w.png","originalWidth":1636,"originalHeight":596,"isFeatured":true}},"type":"Tag"},{"slug":"avif","name":"Avif","postCount":14,"metadata":{"postCount":14,"coverImage":{"id":"1*BDCYb3Yx8exGZVu5lLRPNw.png","originalWidth":1125,"originalHeight":804,"isFeatured":true}},"type":"Tag"},{"slug":"webp","name":"Webp","postCount":155,"metadata":{"postCount":155,"coverImage":{"id":"0*doegBEw1NJ6nVBFT.gif","originalWidth":700,"originalHeight":350,"isFeatured":true}},"type":"Tag"},{"slug":"transcoding","name":"Transcoding","postCount":73,"metadata":{"postCount":73,"coverImage":{"id":"0*HqRqOc4ukfWNAmxS","originalWidth":754,"originalHeight":480,"isFeatured":true}},"type":"Tag"},{"slug":"web-performance","name":"Web Performance","postCount":1221,"metadata":{"postCount":1221,"coverImage":{"id":"1*pv9aFPV1gm1ydvTe5Fp7Kg.png","originalWidth":979,"originalHeight":736,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/behind-the-scenes-of-av1-at-vimeo-a2115973314b","alts":[{"type":3,"url":"medium://p/a2115973314b"},{"type":2,"url":"medium://p/a2115973314b"}],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/supporting-a-35-year-old-video-format-4cb9a62eae9","alts":[{"type":3,"url":"medium://p/4cb9a62eae9"},{"type":2,"url":"medium://p/4cb9a62eae9"}],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://vimeo.com/channels/staffpicks","alts":[{"type":2,"url":"vimeo://app.vimeo.com/channels/staffpicks"},{"type":3,"url":"vimeo://app.vimeo.com/channels/staffpicks"}],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://caniuse.com/avif","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://aomedia.googlesource.com/aom/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://vimeo.com/blog/post/av1-new-standard-codecs/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://hacks.mozilla.org/2014/11/distributed-on-the-fly-image-processing-and-open-source-at-vimeo/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://bugzilla.mozilla.org/show_bug.cgi?id=1634741","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://media.xiph.org/sets/vimeo-corpus-10s.tar.gz","alts":[],"httpStatus":0}],"version":"0.3","generatedAt":1622667539764},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":68,"sectionCount":1,"readingList":0,"topics":[{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"upgrading-images-on-vimeo","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"upgrading-images-on-vimeo-620f79da8605","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*nn4ihFzuELEoTpJE","originalWidth":930,"originalHeight":568,"isFeatured":true}},{"name":"previewTitle","type":3,"text":"Upgrading images on Vimeo","alignment":1},{"name":"previewSubtitle","type":13,"text":"Introducing AVIF format support and expanded WebP coverage for faster…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Introducing AVIF format support and expanded WebP coverage for faster loading times."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"92df1b631aeb","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"6982","type":3,"text":"Upgrading images on Vimeo","markups":[]},{"name":"df05","type":1,"text":"After introducing support for a classic animation format a few months back, we thought it was time to return to 2021 and take a look at current-generation codecs. Since 2019, AV1 video has been available for all videos in the Staff Picks channel, and today we’re expanding our AV1 coverage…","markups":[{"type":3,"start":40,"end":56,"href":"https://web.archive.org/web/20211201230001/https://medium.com/vimeo-engineering-blog/supporting-a-35-year-old-video-format-4cb9a62eae9","title":"","rel":"","anchorType":0},{"type":3,"start":163,"end":173,"href":"https://web.archive.org/web/20211201230001/https://vimeo.com/blog/post/av1-new-standard-codecs/","title":"","rel":"","anchorType":0},{"type":3,"start":226,"end":245,"href":"https://web.archive.org/web/20211201230001/https://vimeo.com/channels/staffpicks","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"40b7","startIndex":0}]},"isFullContent":false,"subtitle":"Introducing AVIF format support and expanded WebP coverage for faster loading times."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"680ca565dfbb":{"id":"680ca565dfbb","versionId":"34cd84243d8a","creatorId":"8f231cc0fef5","homeCollectionId":"92df1b631aeb","title":"Engineer.inspect with Max Jacobson","detectedLanguage":"en","latestVersion":"34cd84243d8a","latestPublishedVersion":"34cd84243d8a","hasUnpublishedEdits":false,"latestRev":160,"createdAt":1617650223360,"updatedAt":1617719556108,"acceptedAt":0,"firstPublishedAt":1617719256904,"latestPublishedAt":1617719256904,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Welcome to the first installment of Engineer.inspect, an interview series introducing engineers across Vimeo. First up, meet Max Jacobson.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"wordCount":1151,"imageCount":0,"readingTime":4.343396226415094,"subtitle":"Welcome to the first installment of Engineer.inspect, an interview series introducing engineers across Vimeo. First up, meet Max Jacobson.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":16,"isBookmarked":false,"tags":[{"slug":"interview-questionnaire","name":"Interview Questionnaire","postCount":1,"metadata":{"postCount":1,"coverImage":{"id":"1*LDtnnFKVo8vct4CSYoOVrQ.jpeg","originalWidth":4000,"originalHeight":3000,"backgroundSize":"","filter":"","isFeatured":false,"externalSrc":"","focusPercentX":-1,"focusPercentY":-1,"alt":"","repairedAt":0,"unsplashPhotoId":""}},"type":"Tag"},{"slug":"introduction","name":"Introduction","postCount":9002,"metadata":{"postCount":9002,"coverImage":{"id":"0*YJ4ZsAGEAq3ZjZN1","originalWidth":4032,"originalHeight":3024,"isFeatured":true,"alt":"Random Facts About Me — Pink and White Unicorn Plush Toys","unsplashPhotoId":"CDt2jVuSkh4"}},"type":"Tag"},{"slug":"get-to-know-me","name":"Get To Know Me","postCount":130,"metadata":{"postCount":130,"coverImage":{"id":"1*ajPb8bR8fboOhu9ZKghbhw.jpeg","originalWidth":1080,"originalHeight":1080,"backgroundSize":"","filter":"","isFeatured":false,"externalSrc":"","focusPercentX":-1,"focusPercentY":-1,"alt":"","repairedAt":0,"unsplashPhotoId":""}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://web.archive.org/web/20211201230001/https://tuple.app/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://twitter.com/vaidehijoshi/status/1343984202358767617","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://vimeo.com/ott/home","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://vimeo.com/jobs","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20211201230001/https://www.pckeyboard.com/page/product/UNIZPHA","alts":[],"httpStatus":404},{"url":"https://web.archive.org/web/20211201230001/https://vimeo.com/22497658","alts":[{"type":2,"url":"vimeo://app.vimeo.com/videos/22497658"},{"type":3,"url":"vimeo://app.vimeo.com/videos/22497658"}],"httpStatus":200}],"version":"0.3","generatedAt":1617719257510},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":82,"sectionCount":1,"readingList":0,"topics":[{"topicId":"af49579e220a","slug":"work","createdAt":1487918186996,"deletedAt":0,"image":{"id":"1*knbAt5qCQCelKx0BDkzZpQ@2x.jpeg","originalWidth":5018,"originalHeight":3049},"name":"Work","description":"The meaning behind the meetings.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Work Life: Articles and News — Medium","type":"Topic"},{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"engineer-inspect-with-max-jacobson","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"engineer-inspect-with-max-jacobson-680ca565dfbb","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewTitle","type":3,"text":"Engineer.inspect with Max Jacobson","alignment":1},{"name":"previewSubtitle","type":13,"text":"Welcome to the first installment of Engineer.inspect, an interview series introducing engineers across Vimeo. First up, meet Max Jacobson.","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Welcome to the first installment of Engineer.inspect, an interview series introducing engineers across Vimeo. First up, meet Max Jacobson."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"92df1b631aeb","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"d17c","type":3,"text":"Engineer.inspect with Max Jacobson","markups":[]},{"name":"532a","type":1,"text":"Welcome to the first installment of Engineer.inspect, an interview series introducing engineers across Vimeo. Get a glimpse into who we are and what we’re about.","markups":[{"type":2,"start":0,"end":161}]},{"name":"37da","type":1,"text":"Intro, please. What’s your name, and what are your pronouns?","markups":[{"type":1,"start":0,"end":60}]},{"name":"ea45","type":1,"text":"Hi, I’m Max Jacobson and I use he/him pronouns.","markups":[]},{"name":"937e","type":1,"text":"What do you do at Vimeo?","markups":[{"type":1,"start":0,"end":24}]},{"name":"6bba","type":1,"text":"…","markups":[{"type":3,"start":45,"end":54,"href":"https://web.archive.org/web/20211201230001/https://vimeo.com/ott/home","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"a97f","startIndex":0}]},"isFullContent":false,"subtitle":"Welcome to the first installment of Engineer.inspect, an interview series introducing engineers across Vimeo. First up, meet Max Jacobson."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"}}},"paging":{"path":"/_/api/collections/92df1b631aeb/stream","next":{"to":"1617719256904","ignoredIds":[],"page":2}},"collection":{"id":"92df1b631aeb","name":"Vimeo Engineering Blog","slug":"vimeo-engineering-blog","tags":["VIMEO","VIDEO","ENGINEERING","TECH","CODING"],"creatorId":"9a4d2ea550cb","description":"We tinker, we build, and we dream up all-new things to help support the world's best community of creators. Lift up the hood and see how it all works.","shortDescription":"We tinker, we build, and we dream up all-new things to help…","image":{"imageId":"1*aTJtrirnEDuzqgTrUEcd7g.png","filter":"","backgroundSize":"","originalWidth":240,"originalHeight":240,"strategy":"resample","height":0,"width":0},"metadata":{"followerCount":2388,"activeAt":1637344959460},"virtuals":{"permissions":{"canPublish":false,"canPublishAll":false,"canRepublish":false,"canRemove":false,"canManageAll":false,"canSubmit":false,"canEditPosts":false,"canAddWriters":false,"canViewStats":false,"canSendNewsletter":false,"canViewLockedPosts":false,"canViewCloaked":false,"canEditOwnPosts":false,"canBeAssignedAuthor":false,"canEnrollInHightower":false,"canLockPostsForMediumMembers":false,"canLockOwnPostsForMediumMembers":false,"canViewNewsletterV2Stats":false,"canCreateNewsletterV3":false},"isSubscribed":false,"isEnrolledInHightower":false,"isEligibleForHightower":false,"isSubscribedToCollectionEmails":false,"isMuted":false,"canToggleEmail":false,"isWriter":false},"logo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"twitterUsername":"vimeo","facebookPageName":"vimeo","sections":[{"type":2,"collectionHeaderMetadata":{"title":"Vimeo Engineering Blog","description":"How we tinker, build, and dream up all-new things for Vimeo.","backgroundImage":{},"logoImage":{"id":"1*kRn0TQdR7OreKRJ1_5lxxQ@2x.png","originalWidth":992,"originalHeight":596,"alt":"Vimeo Engineering Blog"},"alignment":2,"layout":6}},{"type":1,"postListMetadata":{"source":1,"layout":6,"number":10,"postIds":["751b01d1c874","bd9c3a4fd0b5","42221f9a8623","e1103df2d6b8","59e3feca7e84","363f6497362b","9c3b9537119a","b0e8397cfac2","620f79da8605","680ca565dfbb"]}}],"tintColor":"#FF00ADEF","lightText":true,"favicon":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"colorPalette":{"defaultBackgroundSpectrum":{"colorPoints":[{"color":"#FF0094D5","point":0},{"color":"#FF0089C3","point":0.1},{"color":"#FF007EB1","point":0.2},{"color":"#FF0673A0","point":0.3},{"color":"#FF15688F","point":0.4},{"color":"#FF1A5D7D","point":0.5},{"color":"#FF1C516C","point":0.6},{"color":"#FF1B455B","point":0.7},{"color":"#FF193849","point":0.8},{"color":"#FF142B38","point":0.9},{"color":"#FF0D1C25","point":1}],"backgroundColor":"#FFFFFFFF"},"tintBackgroundSpectrum":{"colorPoints":[{"color":"#FF00ADEF","point":0},{"color":"#FF41B7F2","point":0.1},{"color":"#FF5EC0F6","point":0.2},{"color":"#FF76C9F9","point":0.3},{"color":"#FF8BD1FD","point":0.4},{"color":"#FF9EDAFF","point":0.5},{"color":"#FFB0E2FF","point":0.6},{"color":"#FFC1EBFF","point":0.7},{"color":"#FFD1F3FF","point":0.8},{"color":"#FFE1FBFF","point":0.9},{"color":"#FFF1FFFF","point":1}],"backgroundColor":"#FF00ADEF"},"highlightSpectrum":{"colorPoints":[{"color":"#FFE0F7FF","point":0},{"color":"#FFDAF6FF","point":0.1},{"color":"#FFD4F5FF","point":0.2},{"color":"#FFCDF4FF","point":0.3},{"color":"#FFC7F3FF","point":0.4},{"color":"#FFBFF2FF","point":0.5},{"color":"#FFB8F2FF","point":0.6},{"color":"#FFB0F1FF","point":0.7},{"color":"#FFA8F0FF","point":0.8},{"color":"#FFA0EFFF","point":0.9},{"color":"#FF97EEFF","point":1}],"backgroundColor":"#FFFFFFFF"},"darkBackgroundSpectrum":{"colorPoints":[{"color":"#FF00ADEF","point":0},{"color":"#FF3EB4F0","point":0.1},{"color":"#FF5ABCF2","point":0.2},{"color":"#FF70C3F3","point":0.3},{"color":"#FF83CAF5","point":0.4},{"color":"#FF95D1F6","point":0.5},{"color":"#FFA5D8F8","point":0.6},{"color":"#FFB5DEFA","point":0.7},{"color":"#FFC4E5FB","point":0.8},{"color":"#FFD2ECFD","point":0.9},{"color":"#FFE0F2FF","point":1}],"backgroundColor":"#FF000000"}},"navItems":[],"colorBehavior":2,"acceleratedMobilePagesState":0,"ampLogo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"header":{"title":"Vimeo Engineering Blog","description":"How we tinker, build, and dream up all-new things for Vimeo.","backgroundImage":{},"logoImage":{"id":"1*kRn0TQdR7OreKRJ1_5lxxQ@2x.png","originalWidth":992,"originalHeight":596,"alt":"Vimeo Engineering Blog"},"alignment":2,"layout":6},"subscriberCount":2388,"tagline":"We tinker, we build, and we dream up all-new things to help…","isOptedIntoAurora":false,"isCurationAllowedByDefault":false,"polarisCoverImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"ptsQualifiedAt":1616092815346,"type":"Collection"},"header":{"title":"Vimeo Engineering Blog","description":"How we tinker, build, and dream up all-new things for Vimeo.","backgroundImage":{},"logoImage":{"id":"1*kRn0TQdR7OreKRJ1_5lxxQ@2x.png","originalWidth":992,"originalHeight":596,"alt":"Vimeo Engineering Blog"},"alignment":2,"layout":6},"streamItems":[{"createdAt":1638399031264,"randomId":"17d77f08da52","section":{"items":[{"post":{"postId":"751b01d1c874"},"itemType":"post"},{"post":{"postId":"bd9c3a4fd0b5"},"itemType":"post"},{"post":{"postId":"42221f9a8623"},"itemType":"post"},{"post":{"postId":"e1103df2d6b8"},"itemType":"post"},{"post":{"postId":"59e3feca7e84"},"itemType":"post"},{"post":{"postId":"363f6497362b"},"itemType":"post"},{"post":{"postId":"9c3b9537119a"},"itemType":"post"},{"post":{"postId":"b0e8397cfac2"},"itemType":"post"},{"post":{"postId":"620f79da8605"},"itemType":"post"},{"post":{"postId":"680ca565dfbb"},"itemType":"post"}],"layout":6},"itemType":"section","type":"StreamItem"}]}) // ]]></script><script type="text/javascript">(function(b,r,a,n,c,h,_,s,d,k){if(!b[n]||!b[n]._q){for(;s<_.length;)c(h,_[s++]);d=r.createElement(a);d.async=1;d.src="https://web.archive.org/web/20211201230001/https://cdn.branch.io/branch-latest.min.js";k=r.getElementsByTagName(a)[0];k.parentNode.insertBefore(d,k);b[n]=h}})(window,document,"script","branch",function(b,r){b[r]=function(){b._q.push([r,arguments])}},{_q:[],_v:1},"addListener applyCode autoAppIndex banner closeBanner closeJourney creditHistory credits data deepview deepviewCta first getCode init link logout redeem referrals removeListener sendSMS setBranchViewData setIdentity track validateCode trackCommerceEvent logEvent".split(" "), 0); branch.init('key_live_ofxXr2qTrrU9NqURK8ZwEhknBxiI6KBm', {'no_journeys': true, 'disable_exit_animation': true, 'disable_entry_animation': true, 'tracking_disabled': false }, function(err, data) {});</script><script defer src="https://web.archive.org/web/20211201230001js_/https://static.cloudflareinsights.com/beacon.min.js/v64f9daad31f64f81be21cbef6184a5e31634941392597" integrity="" data-cf-beacon="{"rayId":"6b6fede68dc67115","token":"0b5f665943484354a59c39c6833f7078","version":"2021.11.0","si":100}" crossorigin="anonymous"></script> </body></html><!-- FILE ARCHIVED ON 23:00:01 Dec 01, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 03:55:53 Nov 28, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 1.546 exclusion.robots: 0.085 exclusion.robots.policy: 0.067 esindex: 0.03 cdx.remote: 224.7 LoadShardBlock: 69.509 (3) PetaboxLoader3.datanode: 108.828 (4) load_resource: 184.523 PetaboxLoader3.resolve: 92.319 -->