CINXE.COM

Coursera Engineering - 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#"><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>Coursera Engineering - Medium</title><link rel="canonical" href="https://medium.com/coursera-engineering"><link id="feedLink" rel="alternate" type="application/rss+xml" title="RSS" href="https://medium.com/feed/coursera-engineering"><meta name="robots" content="index,follow"><meta name="title" content="Coursera Engineering - Medium"><meta name="referrer" content="unsafe-url"><meta name="description" content="We&#39;re changing the way the world learns! Posts from Coursera engineers and data scientists."><meta name="keywords" content="COURSERA, ENGINEERING"><meta name="theme-color" content="#000000"><meta property="og:title" content="Coursera Engineering – Medium"><meta property="twitter:title" content="Coursera Engineering – Medium"><meta property="og:url" content="https://medium.com/coursera-engineering"><meta property="og:image" content="https://cdn-images-1.medium.com/max/1200/1*j2vLJO9qZg435iRYfd2Mfg.png"><meta property="fb:app_id" content="542599432471018"><meta property="og:description" content="We&#39;re changing the way the world learns! Posts from Coursera engineers and data scientists."><meta name="twitter:description" content="We&#39;re changing the way the world learns! Posts from Coursera engineers and data scientists."><meta name="twitter:image:src" content="https://cdn-images-1.medium.com/max/1200/1*j2vLJO9qZg435iRYfd2Mfg.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/@jnwng"><meta name="twitter:creator" content="@jnwng"><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://coursera-engineering"><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://coursera-engineering"><meta property="al:android:url" content="medium://coursera-engineering"><meta property="al:web:url" content="https://medium.com/coursera-engineering"><link rel="search" type="application/opensearchdescription+xml" title="Medium" href="/osd.xml" /><link rel="alternate" href="android-app://com.medium.reader/https/medium.com/coursera-engineering" /><script type="application/ld+json">{"@context": "http://schema.org", "@graph": [{"@type": "WebSite", "url": "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:\/\/medium.com\/coursera-engineering", "name": "Coursera Engineering"}]}</script><link rel="stylesheet" href="https://cdn-static-1.medium.com/_/fp/css/main-branding-base.ouwh4uMviI3QQWIjxRhkHA.12.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", "G-7JY7T788PK", "auto", {"allowLinker": true, "legacyCookieDomain": window.location.hostname});ga("send", "pageview");</script><script async src="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.12.js"></script><![endif]--><link rel="icon" href="https://miro.medium.com/v2/5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19" class="js-favicon"><link rel="apple-touch-icon" sizes="152x152" href="https://cdn-images-1.medium.com/fit/c/304/304/1*j2vLJO9qZg435iRYfd2Mfg.png"><link rel="apple-touch-icon" sizes="120x120" href="https://cdn-images-1.medium.com/fit/c/240/240/1*j2vLJO9qZg435iRYfd2Mfg.png"><link rel="apple-touch-icon" sizes="76x76" href="https://cdn-images-1.medium.com/fit/c/152/152/1*j2vLJO9qZg435iRYfd2Mfg.png"><link rel="apple-touch-icon" sizes="60x60" href="https://cdn-images-1.medium.com/fit/c/120/120/1*j2vLJO9qZg435iRYfd2Mfg.png"><link rel="mask-icon" href="https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.12.svg" color="#171717"></head><body itemscope class=" browser-ie os-windows v-unbound v-glyph v-glyph--m2-unbound-source-serif-pro 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 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://medium.com/" data-log-event="home" class="siteNav-logo u-fillBlack u-flex0 u-flexCenter u-paddingTop0"><span class="svgIcon svgIcon--wordmarkMedium svgIcon--120x26px u-flex"><svg class="svgIcon-use" width="120" height="26" ><path d="M29.57 1.404l.036-.008V1.12h-7.27l-6.75 15.979-6.75-15.98H1.003v.278l.035.008c1.327.302 2 .752 2 2.374v18.993c0 1.623-.676 2.073-2.003 2.374L1 25.153v.279h5.315v-.278l-.035-.008c-1.327-.302-2-.751-2-2.374V4.88l8.67 20.552h.492l8.924-21.125V23.24c-.114 1.282-.782 1.677-1.983 1.95l-.036.009v.275h9.259V25.2l-.036-.008c-1.203-.274-1.886-.67-2-1.95l-.006-19.464h.006c0-1.622.674-2.072 2-2.374zm4.23 12.582c.15-3.412 1.367-5.875 3.41-5.918.629.01 1.157.219 1.568.62.872.852 1.282 2.634 1.219 5.298h-6.198zm-.092.962h10.85v-.046c-.03-2.61-.78-4.64-2.228-6.033-1.25-1.204-3.103-1.867-5.048-1.867h-.043c-1.01 0-2.248.246-3.13.693a7.316 7.316 0 00-2.623 2.086c-1.185 1.479-1.903 3.477-2.078 5.724a13.717 13.717 0 00-.04.755c-.004.195-.005.39-.001.587.117 5.087 2.846 9.153 7.692 9.153 4.254 0 6.73-3.132 7.348-7.336l-.312-.11c-1.085 2.259-3.034 3.628-5.252 3.461-3.028-.228-5.347-3.32-5.137-7.066m23.122 6.893c-.356.85-1.099 1.319-2.094 1.319-.995 0-1.905-.689-2.552-1.939-.694-1.342-1.06-3.24-1.06-5.487 0-4.678 1.445-7.704 3.68-7.704.937 0 1.674.468 2.026 1.284v12.527zm7.198 3.335c-1.327-.316-2-.787-2-2.492V0l-8.062 2.392v.293l.05-.004c1.111-.09 1.866.064 2.304.472.343.32.51.809.51 1.498v3.11C56.033 7.25 55.088 7 53.94 7c-2.326 0-4.453.987-5.986 2.779-1.599 1.867-2.444 4.42-2.444 7.38 0 5.287 2.584 8.84 6.43 8.84 2.25 0 4.06-1.242 4.888-3.336v2.811h7.233v-.29l-.035-.008zM70.94 3.085c0-1.65-1.236-2.896-2.875-2.896-1.632 0-2.908 1.272-2.908 2.896 0 1.624 1.278 2.896 2.908 2.896 1.64 0 2.875-1.245 2.875-2.896zm1.903 22.092c-1.327-.316-2-.787-2-2.492h-.006V7.055l-7.234 2.092v.284l.043.004c1.566.14 1.994.683 1.994 2.525v13.515h7.24v-.29l-.037-.008zm18.536 0c-1.327-.316-2-.787-2-2.492V7.055L82.49 9.078v.285l.04.004c1.28.136 1.65.71 1.65 2.56v9.88c-.426.85-1.227 1.356-2.196 1.39-1.573 0-2.439-1.07-2.439-3.012V7.055l-7.234 2.092v.284l.044.004c1.565.14 1.994.683 1.994 2.525v8.362a9.443 9.443 0 00.15 1.741l.13.57C75.243 24.845 76.848 26 79.362 26c2.129 0 3.996-1.328 4.818-3.405v2.885h7.233v-.291l-.034-.012zm28.102.298v-.291l-.035-.009c-1.44-.334-2.001-.964-2.001-2.248V12.295C117.445 8.98 115.597 7 112.5 7c-2.257 0-4.16 1.314-4.893 3.36-.582-2.168-2.257-3.36-4.734-3.36-2.175 0-3.88 1.156-4.612 3.11V7.056l-7.233 2.006v.286l.043.004c1.547.138 1.994.697 1.994 2.492v13.631h6.75v-.29l-.037-.01c-1.148-.271-1.519-.767-1.519-2.04V10.95c.304-.715.917-1.562 2.127-1.562 1.504 0 2.266 1.05 2.266 3.116v12.972h6.751v-.29l-.035-.01c-1.149-.271-1.52-.767-1.52-2.04V12.294a7.107 7.107 0 00-.095-1.21c.322-.777.97-1.696 2.23-1.696 1.524 0 2.265 1.02 2.265 3.116v12.972h7.233z"/></svg></span><span class="u-textScreenReader">Homepage</span></a></div><div class="u-paddingLeft10 u-sm-show r-paddingRight10"><a href="https://rsci.app.link/?%24canonical_url=https%3A%2F%2Fmedium.com/coursera-engineering%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--chromeless u-accentColor--buttonNormal is-inSiteNavBar u-xs-hide js-signInButton" href="https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%2Fcoursera-engineering%3Fsource%3Dcollection_archive---------6-----------------------&amp;source=--------------------------nav_reg&amp;operation=login" data-action="sign-in-prompt" data-redirect="https://medium.com/coursera-engineering?source=collection_archive---------6-----------------------" data-action-source="--------------------------nav_reg">Sign in</a><a class="button button--primary button--withChrome u-accentColor--buttonNormal is-inSiteNavBar js-signUpButton" href="https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%2Fcoursera-engineering%3Fsource%3Dcollection_archive---------6-----------------------&amp;source=--------------------------nav_reg&amp;operation=register" data-action="sign-up-prompt" data-redirect="https://medium.com/coursera-engineering?source=collection_archive---------6-----------------------" data-action-source="--------------------------nav_reg">Get started</a></div></div></div></div></div><div class="metabar metabar--spacer js-metabarSpacer u-height65 u-xs-height56"></div><div class="collectionHeader js-collectionHeaderContainer u-relative collectionHeader--layoutLarge collectionHeader--alignmentLeft collectionHeader--withoutLogo collectionHeader--withBackground collectionHeader--colorBehaviorSubtle collectionHeader--withNavigation collectionHeader--editorLayoutTitle is-modeView"><div class="collectionHeader-aspectRatioTable"><div class="collectionHeader-aspectRatioContent u-backgroundSizeCover js-collectionHeaderBackground" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/2400/1*SUNVx-fZ3AwO13vvCEPqsQ.jpeg&quot;); background-position: 50% 50% !important;"><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-imageSpectrum"><div class="collectionHeader-heroInner"><div class="collectionHeader-logo js-collectionHeaderLogo" style=""><a class="link u-baseColor--link" href="https://medium.com/coursera-engineering" title="Go to Coursera Engineering" aria-label="Go to Coursera Engineering"><div class="u-relative u-marginAuto"><div style="padding-bottom: 75%"></div><img class="collectionHeader-logoImage js-collectionHeaderLogoImage" /></div></a></div><div class="collectionHeader-nameAndDescription"><a class="link link--noUnderline u-baseColor--link" href="https://medium.com/coursera-engineering" title="Go to Coursera Engineering" aria-label="Go to Coursera Engineering"><h1 class="collectionHeader-name js-collectionName u-foreground u-baseColor--textDark u-paddingBottom4 u-lineHeightTightest u-contentSansBold u-fontSize40 u-xs-fontSize32">Coursera Engineering</h1></a><h2 class="collectionHeader-description js-collectionDescription u-foreground u-baseColor--textNormal u-contentSansRegular u-fontSize24 u-xs-fontSize18">We&#39;re changing the way the world learns!</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"><div class="buttonSet u-flex1 u-noWrap u-overflowX u-paddingBottom100 u-xs-marginRight15"><li class="collectionHeader-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://medium.com/coursera-engineering/frontend/home">Frontend</a></li><li class="collectionHeader-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://medium.com/coursera-engineering/backend/home">Backend</a></li><li class="collectionHeader-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://medium.com/coursera-engineering/mobile-development/home">Mobile</a></li><li class="collectionHeader-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://medium.com/coursera-engineering/data/home">Data</a></li><li class="collectionHeader-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://medium.com/coursera-engineering/engineering-life-coursera/home">Life At Coursera</a></li><span class="u-borderLeft1 u-paddingLeft22 u-xs-paddingLeft12 u-baseColor--borderLight"></span><li class="collectionHeader-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0 is-external"><a class="link link--darkenOnHover u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://blog.coursera.org/" rel="nofollow noopener" target="_blank">Coursera Blog</a></li></div><div class="buttonSet u-textAlignRight u-marginLeft18 u-flex0 u-noWrap"><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="532b19e4043c" /></label><a class="button button--chromeless is-touchIconBlackPulse u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--chromeless u-verticalAlignMiddle" href="https://twitter.com/CourseraEng" title="Visit “Coursera Engineering” on X" aria-label="Visit “Coursera Engineering” on X" rel="me" target="_blank"><span class="button-defaultState"><span class="svgIcon svgIcon--twitter svgIcon--25px"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M14.215 11.3l5.764-6.7h-1.366l-5.005 5.818L9.611 4.6H5l6.045 8.798L5 20.424h1.366l5.286-6.144 4.221 6.144h4.61L14.216 11.3zm-1.871 2.175l-.612-.876-4.874-6.97h2.098l3.933 5.625.613.876 5.112 7.312h-2.098l-4.172-5.966z" fill="#242424"/></svg></span></span></a><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/coursera-engineering" data-action-source="pub_header----532b19e4043c----------------------follow_pub" data-collection-id="532b19e4043c"><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"><section class="u-marginTop30 u-xs-margin0 u-marginBottom15 u-maxWidth1032 u-sm-paddingLeft20 u-sm-paddingRight20 u-borderBox u-marginAuto"><header class="heading heading--borderedBottom u-fontSize18 u-contentSansThin" ><div class="u-clearfix"><div class="heading-content u-floatLeft"><span class="heading-title heading-title--dark heading-title--lineHeightTight u-fontSize18 u-contentSansThin">Latest</span></div></div></header><div class="row u-marginTop30 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight15 u-size8of12" data-source="collection_home---4------0-----------------------" data-post-id="9cd6e8ac8b5c" data-index="0"><div class="u-lineHeightBase postItem u-marginRight3"><a href="https://medium.com/coursera-engineering/two-easy-ways-to-determine-right-size-for-aws-rds-instance-through-request-mirroring-load-test-9cd6e8ac8b5c?source=collection_home---4------0-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/two-easy-ways-to-determine-right-size-for-aws-rds-instance-through-request-mirroring-load-test-9cd6e8ac8b5c?source=collection_home---4------0-----------------------" class="u-block u-xs-height170 u-height350 u-width100pct u-floatLeft u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/2000/1*V5jIIMbkBZtKUDdI_URQwg.png&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Right-Sizing AWS RDS? Request Mirroring Load Test Come To Rescue</span></a></div></div><div class="col u-xs-marginBottom10 u-paddingLeft9 u-paddingRight12 u-paddingTop0 u-sm-paddingTop20 u-paddingBottom25 u-size4of12 u-xs-size12of12 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/two-easy-ways-to-determine-right-size-for-aws-rds-instance-through-request-mirroring-load-test-9cd6e8ac8b5c?source=collection_home---4------0-----------------------" data-action-source="collection_home---4------0-----------------------" data-post-id="9cd6e8ac8b5c"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp4 u-fontSize30 u-size12of12 u-xs-size12of12 u-xs-fontSize24">Right-Sizing AWS RDS? Request Mirroring Load Test Come To Rescue</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">We all know feel the pain when trying to choose the right instance size for AWS RDS (Amazon Relational Database Service) instance. There…</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@mengying-li" data-action="show-user-card" data-action-value="dbd909ab7ead" data-action-type="hover" data-user-id="dbd909ab7ead" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*OSkgz1_TZgSIGVJwXI7dQg.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Mengying Li"></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://medium.com/@mengying-li" data-action="show-user-card" data-action-value="dbd909ab7ead" data-action-type="hover" data-user-id="dbd909ab7ead" dir="auto">Mengying Li</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2023-01-03T02:41:16.343Z">Jan 2, 2023</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="11 min read"></span></div></div></div></div></div></div><div class="row u-marginTop15 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------1-----------------------" data-post-id="f5525394da63" data-index="1"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/optimizing-low-code-in-retool-to-empower-services-colleagues-f5525394da63?source=collection_home---4------1-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/optimizing-low-code-in-retool-to-empower-services-colleagues-f5525394da63?source=collection_home---4------1-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*gnLpyEcJMsbf7Ct7Ci8VTQ.png&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Optimizing Low Code in Retool to Empower Services Colleagues</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/optimizing-low-code-in-retool-to-empower-services-colleagues-f5525394da63?source=collection_home---4------1-----------------------" data-action-source="collection_home---4------1-----------------------" data-post-id="f5525394da63"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Optimizing Low Code in Retool to Empower Services Colleagues</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">By Charlotte Evans, Platform Services Degree Specialist</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@CourseraEng" data-action="show-user-card" data-action-value="99c0fb464c1f" data-action-type="hover" data-user-id="99c0fb464c1f" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*j2vLJO9qZg435iRYfd2Mfg.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Coursera"></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://medium.com/@CourseraEng" data-action="show-user-card" data-action-value="99c0fb464c1f" data-action-type="hover" data-user-id="99c0fb464c1f" dir="auto">Coursera</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2021-09-15T17:58:38.823Z">Sep 15, 2021</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="6 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------2-----------------------" data-post-id="7541bf80eaca" data-index="2"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/empowering-teammates-and-thriving-remotely-7541bf80eaca?source=collection_home---4------2-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/empowering-teammates-and-thriving-remotely-7541bf80eaca?source=collection_home---4------2-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*gnBEMStC0Hn1AUxCUZuOuw.jpeg&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Empowering Teammates and Thriving Remotely</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/empowering-teammates-and-thriving-remotely-7541bf80eaca?source=collection_home---4------2-----------------------" data-action-source="collection_home---4------2-----------------------" data-post-id="7541bf80eaca"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Empowering Teammates and Thriving Remotely</div></h3></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@habtegebrielc" data-action="show-user-card" data-action-value="5f3bbeee7670" data-action-type="hover" data-user-id="5f3bbeee7670" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*YsS3lrpbHsR3hOWF" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Caleb Habtegebriel"></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://medium.com/@habtegebrielc" data-action="show-user-card" data-action-value="5f3bbeee7670" data-action-type="hover" data-user-id="5f3bbeee7670" dir="auto">Caleb Habtegebriel</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2021-04-22T20:45:22.693Z">Apr 22, 2021</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="4 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------3-----------------------" data-post-id="3382f0711c24" data-index="3"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/creating-an-engineering-vision-3382f0711c24?source=collection_home---4------3-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/creating-an-engineering-vision-3382f0711c24?source=collection_home---4------3-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*Fgdi_CkCVWnfZGeGFkLUnQ.png&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Creating an Engineering Vision</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/creating-an-engineering-vision-3382f0711c24?source=collection_home---4------3-----------------------" data-action-source="collection_home---4------3-----------------------" data-post-id="3382f0711c24"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Creating an Engineering Vision</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">In this blog post, we share how we drafted a three-year engineering vision, one-year engineering OKRs and the process we used to get there.</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@mustafasf" data-action="show-user-card" data-action-value="36e5b8f4c18f" data-action-type="hover" data-user-id="36e5b8f4c18f" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*VTtfLrnf0qDSogwg.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Mustafa Furniturewala"></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://medium.com/@mustafasf" data-action="show-user-card" data-action-value="36e5b8f4c18f" data-action-type="hover" data-user-id="36e5b8f4c18f" dir="auto">Mustafa Furniturewala</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2021-01-12T18:26:37.350Z">Jan 12, 2021</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="6 min read"></span></div></div></div></div></div></div></div><div class="row u-marginTop15 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------4-----------------------" data-post-id="df576af72502" data-index="4"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/remote-internship-survival-guide-df576af72502?source=collection_home---4------4-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/remote-internship-survival-guide-df576af72502?source=collection_home---4------4-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*c5QwAdHUsd7_Egmr2yQogw.png&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Remote Internship Survival Guide</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/remote-internship-survival-guide-df576af72502?source=collection_home---4------4-----------------------" data-action-source="collection_home---4------4-----------------------" data-post-id="df576af72502"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Remote Internship Survival Guide</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">When I started my internship as a software engineer at Coursera amidst the pandemic this fall, I was excited to finally have a chance to…</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@nvarela" data-action="show-user-card" data-action-value="2dafa94ed5f7" data-action-type="hover" data-user-id="2dafa94ed5f7" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*j4uNthGh6uEYe-Xj" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Nichalus Varela"></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://medium.com/@nvarela" data-action="show-user-card" data-action-value="2dafa94ed5f7" data-action-type="hover" data-user-id="2dafa94ed5f7" dir="auto">Nichalus Varela</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2020-12-17T20:55:46.798Z">Dec 17, 2020</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="4 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------5-----------------------" data-post-id="493905a95364" data-index="5"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/growing-courseras-first-team-outside-silicon-valley-493905a95364?source=collection_home---4------5-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/growing-courseras-first-team-outside-silicon-valley-493905a95364?source=collection_home---4------5-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/0*NxLCnXWAEA1-sONe&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Growing Coursera’s first team outside Silicon Valley</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/growing-courseras-first-team-outside-silicon-valley-493905a95364?source=collection_home---4------5-----------------------" data-action-source="collection_home---4------5-----------------------" data-post-id="493905a95364"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Growing Coursera’s first team outside Silicon Valley</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">First steps towards a distributed team</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@mustafasf" data-action="show-user-card" data-action-value="36e5b8f4c18f" data-action-type="hover" data-user-id="36e5b8f4c18f" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*VTtfLrnf0qDSogwg.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Mustafa Furniturewala"></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://medium.com/@mustafasf" data-action="show-user-card" data-action-value="36e5b8f4c18f" data-action-type="hover" data-user-id="36e5b8f4c18f" dir="auto">Mustafa Furniturewala</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2020-06-17T15:39:15.658Z">Jun 17, 2020</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="5 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------6-----------------------" data-post-id="3296af2805db" data-index="6"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/get-to-know-coursera-engineer-bryan-rivera-3296af2805db?source=collection_home---4------6-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/get-to-know-coursera-engineer-bryan-rivera-3296af2805db?source=collection_home---4------6-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*xe25U1ZB_mXO5r2xKxzlcw.jpeg&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Get to know Coursera Engineer Bryan Rivera</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/get-to-know-coursera-engineer-bryan-rivera-3296af2805db?source=collection_home---4------6-----------------------" data-action-source="collection_home---4------6-----------------------" data-post-id="3296af2805db"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Get to know Coursera Engineer Bryan Rivera</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Meet Bryan R., who cares about creating products that serve underrepresented communities. Bryan started as an intern at Coursera during a…</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@bry3133" data-action="show-user-card" data-action-value="15fc9548e39d" data-action-type="hover" data-user-id="15fc9548e39d" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*4BrT4eRwOyBEhv3Mzln2fw@2x.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Bryan Rivera"></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://medium.com/@bry3133" data-action="show-user-card" data-action-value="15fc9548e39d" data-action-type="hover" data-user-id="15fc9548e39d" dir="auto">Bryan Rivera</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2020-04-30T21:30:59.712Z">Apr 30, 2020</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="4 min read"></span></div></div></div></div></div></div></div></section></div><div class="streamItem streamItem--section js-streamItem"><section class="u-marginTop30 u-xs-margin0 u-marginBottom15 u-maxWidth1032 u-sm-paddingLeft20 u-sm-paddingRight20 u-borderBox u-marginAuto"><div class="row u-marginTop30 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------0-----------------------" data-post-id="dd82bb25a0f1" data-index="0"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/regression-discontinuity-understanding-the-benefit-of-subtitles-on-coursera-dd82bb25a0f1?source=collection_home---4------0-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/regression-discontinuity-understanding-the-benefit-of-subtitles-on-coursera-dd82bb25a0f1?source=collection_home---4------0-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/0*QVmNYqRKOPijOsQd&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Regression Discontinuity: Understanding the Benefit of Subtitles on Coursera</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/regression-discontinuity-understanding-the-benefit-of-subtitles-on-coursera-dd82bb25a0f1?source=collection_home---4------0-----------------------" data-action-source="collection_home---4------0-----------------------" data-post-id="dd82bb25a0f1"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Regression Discontinuity: Understanding the Benefit of Subtitles on Coursera</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">This is Part III of our Causal Impact @ Coursera series. (Part II is here)</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@bvinod" data-action="show-user-card" data-action-value="8c25ad9d3047" data-action-type="hover" data-user-id="8c25ad9d3047" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*fUbiCeoMhiareWB2t8aXPQ.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Vinod Bakthavachalam"></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://medium.com/@bvinod" data-action="show-user-card" data-action-value="8c25ad9d3047" data-action-type="hover" data-user-id="8c25ad9d3047" dir="auto">Vinod Bakthavachalam</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2020-04-09T18:01:01.078Z">Apr 9, 2020</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="3 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------1-----------------------" data-post-id="491b6a7e0708" data-index="1"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/improving-site-performance-with-tree-shaking-491b6a7e0708?source=collection_home---4------1-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/improving-site-performance-with-tree-shaking-491b6a7e0708?source=collection_home---4------1-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*eOLNrh1SKrY_fScgjGKnHA.jpeg&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Improving Site Performance With Tree Shaking</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/improving-site-performance-with-tree-shaking-491b6a7e0708?source=collection_home---4------1-----------------------" data-action-source="collection_home---4------1-----------------------" data-post-id="491b6a7e0708"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Improving Site Performance With Tree Shaking</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Introduction to Tree Shaking</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@davidkle1" data-action="show-user-card" data-action-value="db2f2af1172b" data-action-type="hover" data-user-id="db2f2af1172b" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/2*DPmMXHbpEzqceGw2Pbc-LA.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of David Le"></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://medium.com/@davidkle1" data-action="show-user-card" data-action-value="db2f2af1172b" data-action-type="hover" data-user-id="db2f2af1172b" dir="auto">David Le</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2020-01-10T01:11:41.823Z">Jan 9, 2020</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="6 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------2-----------------------" data-post-id="878d40c45e77" data-index="2"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/life-coursera-why-i-chose-coursera-as-my-first-engineering-job-out-of-college-878d40c45e77?source=collection_home---4------2-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/life-coursera-why-i-chose-coursera-as-my-first-engineering-job-out-of-college-878d40c45e77?source=collection_home---4------2-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*L3vpZnvH_hQX49PWJ-mlnw.jpeg&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">[Life@Coursera]: Why I chose Coursera as my first engineering job out of college</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/life-coursera-why-i-chose-coursera-as-my-first-engineering-job-out-of-college-878d40c45e77?source=collection_home---4------2-----------------------" data-action-source="collection_home---4------2-----------------------" data-post-id="878d40c45e77"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">[Life@Coursera]: Why I chose Coursera as my first engineering job out of college</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">How do you even begin to decide where you should work after graduation? Where, as in location? Company? Team?</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@cathchi" data-action="show-user-card" data-action-value="5bb4dcd49b0f" data-action-type="hover" data-user-id="5bb4dcd49b0f" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*aE2SZ1-oQvXZEnfz" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Cathy Chi"></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://medium.com/@cathchi" data-action="show-user-card" data-action-value="5bb4dcd49b0f" data-action-type="hover" data-user-id="5bb4dcd49b0f" dir="auto">Cathy Chi</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2019-11-22T14:01:01.721Z">Nov 22, 2019</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="3 min read"></span></div></div></div></div></div></div></div><div class="row u-marginTop30 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------3-----------------------" data-post-id="62155768d595" data-index="3"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/engineering-onboarding-bootcamp-coursera-62155768d595?source=collection_home---4------3-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/engineering-onboarding-bootcamp-coursera-62155768d595?source=collection_home---4------3-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*VLBI5f7GssRqX-rqXVhHLg.jpeg&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Engineering Onboarding Bootcamp@Coursera</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/engineering-onboarding-bootcamp-coursera-62155768d595?source=collection_home---4------3-----------------------" data-action-source="collection_home---4------3-----------------------" data-post-id="62155768d595"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Engineering Onboarding Bootcamp@Coursera</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Building and launching Coursera’s first engineering onboarding bootcamp</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@richa123" data-action="show-user-card" data-action-value="afbf744275c8" data-action-type="hover" data-user-id="afbf744275c8" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*6Db1xfnc79cwgPjm.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of richa123"></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://medium.com/@richa123" data-action="show-user-card" data-action-value="afbf744275c8" data-action-type="hover" data-user-id="afbf744275c8" dir="auto">richa123</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2019-11-04T16:31:01.974Z">Nov 4, 2019</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="5 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------4-----------------------" data-post-id="621215e9e3f1" data-index="4"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/instrumental-variables-randomized-encouragement-trials-driving-engagement-of-learners-621215e9e3f1?source=collection_home---4------4-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/instrumental-variables-randomized-encouragement-trials-driving-engagement-of-learners-621215e9e3f1?source=collection_home---4------4-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/0*0uwrcBNjldyexHSC&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Instrumental Variables &amp; Randomized Encouragement Trials: Driving Engagement of Learners</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/instrumental-variables-randomized-encouragement-trials-driving-engagement-of-learners-621215e9e3f1?source=collection_home---4------4-----------------------" data-action-source="collection_home---4------4-----------------------" data-post-id="621215e9e3f1"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Instrumental Variables &amp; Randomized Encouragement Trials: Driving Engagement of Learners</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">This is Part II of our Causal Impact @ Coursera series. (Part I is here)</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@bvinod" data-action="show-user-card" data-action-value="8c25ad9d3047" data-action-type="hover" data-user-id="8c25ad9d3047" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*fUbiCeoMhiareWB2t8aXPQ.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Vinod Bakthavachalam"></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://medium.com/@bvinod" data-action="show-user-card" data-action-value="8c25ad9d3047" data-action-type="hover" data-user-id="8c25ad9d3047" dir="auto">Vinod Bakthavachalam</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2019-10-18T16:46:02.722Z">Oct 18, 2019</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="4 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------5-----------------------" data-post-id="2f6070083bda" data-index="5"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/query2vec-2f6070083bda?source=collection_home---4------5-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/query2vec-2f6070083bda?source=collection_home---4------5-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*ZDjKiqrnmLj29xO6f5mqLQ.png&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Order from Chaos: Understanding Search Queries through Vectors</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/query2vec-2f6070083bda?source=collection_home---4------5-----------------------" data-action-source="collection_home---4------5-----------------------" data-post-id="2f6070083bda"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Order from Chaos: Understanding Search Queries through Vectors</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">The Query2Vec pipeline and a foray into word embeddings</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@myracheng" data-action="show-user-card" data-action-value="e8d286bb099f" data-action-type="hover" data-user-id="e8d286bb099f" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/2*UGwK6uew5IgCWB7TrX_hIw.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Myra Cheng"></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://medium.com/@myracheng" data-action="show-user-card" data-action-value="e8d286bb099f" data-action-type="hover" data-user-id="e8d286bb099f" dir="auto">Myra Cheng</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2019-09-13T17:13:29.296Z">Sep 13, 2019</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="6 min read"></span></div></div></div></div></div></div></div><div class="row u-marginTop30 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------6-----------------------" data-post-id="4c587a4ad9a8" data-index="6"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/evolving-the-graph-4c587a4ad9a8?source=collection_home---4------6-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/evolving-the-graph-4c587a4ad9a8?source=collection_home---4------6-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/0*y5d4rT_fu3VF3bNs&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Evolving the Graph</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/evolving-the-graph-4c587a4ad9a8?source=collection_home---4------6-----------------------" data-action-source="collection_home---4------6-----------------------" data-post-id="4c587a4ad9a8"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Evolving the Graph</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">We’ve been using GraphQL at Coursera for over three years, and we’ve learned a lot of lessons along the way. Learn what stuck &amp; what…</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@jnwng" data-action="show-user-card" data-action-value="d987eade03ed" data-action-type="hover" data-user-id="d987eade03ed" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*zrMbbNRq80W_fOfnB_BzXQ.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of jon wong"></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://medium.com/@jnwng" data-action="show-user-card" data-action-value="d987eade03ed" data-action-type="hover" data-user-id="d987eade03ed" dir="auto">jon wong</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2019-08-28T01:28:37.849Z">Aug 27, 2019</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="9 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------7-----------------------" data-post-id="5f1bac9cd176" data-index="7"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/improving-end-to-end-testing-at-coursera-using-puppeteer-and-jest-5f1bac9cd176?source=collection_home---4------7-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/improving-end-to-end-testing-at-coursera-using-puppeteer-and-jest-5f1bac9cd176?source=collection_home---4------7-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/0*ZqPC8l4_Atux4uba&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Improving End-to-End Testing at Coursera using Puppeteer and Jest</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/improving-end-to-end-testing-at-coursera-using-puppeteer-and-jest-5f1bac9cd176?source=collection_home---4------7-----------------------" data-action-source="collection_home---4------7-----------------------" data-post-id="5f1bac9cd176"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Improving End-to-End Testing at Coursera using Puppeteer and Jest</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">This post describes our approach to upgrading our end-to-end testing system.</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@billykirk" data-action="show-user-card" data-action-value="6595f3dc1125" data-action-type="hover" data-user-id="6595f3dc1125" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/2*mjkbhjTgvHEylH9c1vEEag.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Billy Kirk"></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://medium.com/@billykirk" data-action="show-user-card" data-action-value="6595f3dc1125" data-action-type="hover" data-user-id="6595f3dc1125" dir="auto">Billy Kirk</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2019-06-26T00:27:41.527Z">Jun 25, 2019</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="6 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------8-----------------------" data-post-id="84cf9b38cd52" data-index="8"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/an-engineers-perspective-on-engineering-and-data-science-collaboration-for-data-products-84cf9b38cd52?source=collection_home---4------8-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/an-engineers-perspective-on-engineering-and-data-science-collaboration-for-data-products-84cf9b38cd52?source=collection_home---4------8-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/0*rvxR1udpDV7YaJfG&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">An engineer’s perspective on engineering and data science collaboration for data products</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/an-engineers-perspective-on-engineering-and-data-science-collaboration-for-data-products-84cf9b38cd52?source=collection_home---4------8-----------------------" data-action-source="collection_home---4------8-----------------------" data-post-id="84cf9b38cd52"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">An engineer’s perspective on engineering and data science collaboration for data products</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Three themes that have worked well for us at Coursera for data product development— from the perspective of an engineer.</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@cliu_88389" data-action="show-user-card" data-action-value="70814e310ce3" data-action-type="hover" data-user-id="70814e310ce3" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*ECSDCjFKbFRqqOIr." class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Chris Liu"></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://medium.com/@cliu_88389" data-action="show-user-card" data-action-value="70814e310ce3" data-action-type="hover" data-user-id="70814e310ce3" dir="auto">Chris Liu</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2019-05-20T10:01:00.868Z">May 20, 2019</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="7 min read"></span></div></div></div></div></div></div></div><div class="row u-marginTop30 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------9-----------------------" data-post-id="87eecb39d292" data-index="9"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/two-summers-at-coursera-87eecb39d292?source=collection_home---4------9-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/two-summers-at-coursera-87eecb39d292?source=collection_home---4------9-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*6LFZrH91W6cP2TmLWFFWJA.jpeg&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Two Summers at Coursera</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/two-summers-at-coursera-87eecb39d292?source=collection_home---4------9-----------------------" data-action-source="collection_home---4------9-----------------------" data-post-id="87eecb39d292"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Two Summers at Coursera</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">This post was written by Alex Ozdemir in the fall of 2018.</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@CourseraEng" data-action="show-user-card" data-action-value="99c0fb464c1f" data-action-type="hover" data-user-id="99c0fb464c1f" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*j2vLJO9qZg435iRYfd2Mfg.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Coursera"></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://medium.com/@CourseraEng" data-action="show-user-card" data-action-value="99c0fb464c1f" data-action-type="hover" data-user-id="99c0fb464c1f" dir="auto">Coursera</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2019-05-15T00:27:26.407Z">May 14, 2019</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="9 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------10-----------------------" data-post-id="6f6dd3bc5d5f" data-index="10"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/improving-the-learner-experience-with-real-time-subscription-renewals-6f6dd3bc5d5f?source=collection_home---4------10-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/improving-the-learner-experience-with-real-time-subscription-renewals-6f6dd3bc5d5f?source=collection_home---4------10-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/0*E9qEPNMkZ-VUOEqV&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Improving The Learner Experience With Real-Time Subscription Renewals</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/improving-the-learner-experience-with-real-time-subscription-renewals-6f6dd3bc5d5f?source=collection_home---4------10-----------------------" data-action-source="collection_home---4------10-----------------------" data-post-id="6f6dd3bc5d5f"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Improving The Learner Experience With Real-Time Subscription Renewals</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Dalton is a software engineering intern on Coursera’s Growth Monetization team. He is from Toronto and studies Software Engineering at the…</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@daltyboy11" data-action="show-user-card" data-action-value="3bebd5c70600" data-action-type="hover" data-user-id="3bebd5c70600" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/2*sFxbQxfsIMo-yxA1gG62ww.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Dalton Sweeney"></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://medium.com/@daltyboy11" data-action="show-user-card" data-action-value="3bebd5c70600" data-action-type="hover" data-user-id="3bebd5c70600" dir="auto">Dalton Sweeney</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2019-04-26T18:42:10.553Z">Apr 26, 2019</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="6 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------11-----------------------" data-post-id="57b01b7c5c72" data-index="11"><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-marginBottom60"><a class="" href="https://medium.com/coursera-engineering/how-online-education-is-increasing-gender-diversity-in-stem-57b01b7c5c72?source=collection_home---4------11-----------------------" data-action-source="collection_home---4------11-----------------------" data-post-id="57b01b7c5c72"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">How Online Education Is Increasing Gender Diversity in STEM</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">By Emily Glassberg Sands, Head of Data Science at Coursera in collaboration with Alan Hickey and Vinod Bakthavachalam, Senior Data…</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@bvinod" data-action="show-user-card" data-action-value="8c25ad9d3047" data-action-type="hover" data-user-id="8c25ad9d3047" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*fUbiCeoMhiareWB2t8aXPQ.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Vinod Bakthavachalam"></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://medium.com/@bvinod" data-action="show-user-card" data-action-value="8c25ad9d3047" data-action-type="hover" data-user-id="8c25ad9d3047" dir="auto">Vinod Bakthavachalam</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2019-03-08T19:12:08.841Z">Mar 8, 2019</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="3 min read"></span></div></div></div></div></div></div></div><div class="row u-marginTop30 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------12-----------------------" data-post-id="31f956bd592a" data-index="12"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention-31f956bd592a?source=collection_home---4------12-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention-31f956bd592a?source=collection_home---4------12-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/0*P6TaXFB0-TivYLSe&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Controlled Regression: Quantifying the Impact of Course Quality on Learner Retention</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention-31f956bd592a?source=collection_home---4------12-----------------------" data-action-source="collection_home---4------12-----------------------" data-post-id="31f956bd592a"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Controlled Regression: Quantifying the Impact of Course Quality on Learner Retention</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">This is Part I of our Causal Impact @ Coursera series.</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@bvinod" data-action="show-user-card" data-action-value="8c25ad9d3047" data-action-type="hover" data-user-id="8c25ad9d3047" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*fUbiCeoMhiareWB2t8aXPQ.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Vinod Bakthavachalam"></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://medium.com/@bvinod" data-action="show-user-card" data-action-value="8c25ad9d3047" data-action-type="hover" data-user-id="8c25ad9d3047" dir="auto">Vinod Bakthavachalam</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2018-11-08T17:01:03.207Z">Nov 8, 2018</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="5 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------13-----------------------" data-post-id="cdfeb817faf8" data-index="13"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/webpack-3-to-4-facing-the-known-unknowns-and-unknown-unknowns-cdfeb817faf8?source=collection_home---4------13-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/webpack-3-to-4-facing-the-known-unknowns-and-unknown-unknowns-cdfeb817faf8?source=collection_home---4------13-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/0*Inb_k0uJHCmGBr2_&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Webpack 3 to 4: Facing the known unknowns and unknown unknowns</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/webpack-3-to-4-facing-the-known-unknowns-and-unknown-unknowns-cdfeb817faf8?source=collection_home---4------13-----------------------" data-action-source="collection_home---4------13-----------------------" data-post-id="cdfeb817faf8"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Webpack 3 to 4: Facing the known unknowns and unknown unknowns</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">This post will sketch out what a Webpack 3 to 4 upgrade looks like in a large modern web application.</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@cliu_88389" data-action="show-user-card" data-action-value="70814e310ce3" data-action-type="hover" data-user-id="70814e310ce3" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*ECSDCjFKbFRqqOIr." class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Chris Liu"></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://medium.com/@cliu_88389" data-action="show-user-card" data-action-value="70814e310ce3" data-action-type="hover" data-user-id="70814e310ce3" dir="auto">Chris Liu</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2018-10-11T12:01:02.474Z">Oct 11, 2018</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="7 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------14-----------------------" data-post-id="6658617cc330" data-index="14"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/the-evolution-of-coursera-search-enabling-product-innovation-through-technical-innovation-6658617cc330?source=collection_home---4------14-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/the-evolution-of-coursera-search-enabling-product-innovation-through-technical-innovation-6658617cc330?source=collection_home---4------14-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/0*rVGn3KQ4LwgrEnTV&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">The Evolution of Coursera Search: Enabling Product Innovation Through Technical Innovation</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/the-evolution-of-coursera-search-enabling-product-innovation-through-technical-innovation-6658617cc330?source=collection_home---4------14-----------------------" data-action-source="collection_home---4------14-----------------------" data-post-id="6658617cc330"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">The Evolution of Coursera Search: Enabling Product Innovation Through Technical Innovation</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">At Coursera, millions of learners use search to discover courses. For learners with a specific intent, we need relevant results. For…</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@cliu_88389" data-action="show-user-card" data-action-value="70814e310ce3" data-action-type="hover" data-user-id="70814e310ce3" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*ECSDCjFKbFRqqOIr." class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Chris Liu"></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://medium.com/@cliu_88389" data-action="show-user-card" data-action-value="70814e310ce3" data-action-type="hover" data-user-id="70814e310ce3" dir="auto">Chris Liu</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2018-09-26T16:29:02.201Z">Sep 26, 2018</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="4 min read"></span></div></div></div></div></div></div></div><div class="row u-marginTop30 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------15-----------------------" data-post-id="5d45e6b073ba" data-index="15"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/keeping-students-on-track-5d45e6b073ba?source=collection_home---4------15-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/keeping-students-on-track-5d45e6b073ba?source=collection_home---4------15-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/0*ceSey_FGXxtyla9A&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Keeping students on-track</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/keeping-students-on-track-5d45e6b073ba?source=collection_home---4------15-----------------------" data-action-source="collection_home---4------15-----------------------" data-post-id="5d45e6b073ba"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Keeping students on-track</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">How our algorithms identify at-risk students, powering automated and human interventions</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@alanhickey0502" data-action="show-user-card" data-action-value="283802d43c" data-action-type="hover" data-user-id="283802d43c" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*LoU5BlI2E6Az369C_w8Zrg.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Alan Hickey"></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://medium.com/@alanhickey0502" data-action="show-user-card" data-action-value="283802d43c" data-action-type="hover" data-user-id="283802d43c" dir="auto">Alan Hickey</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2018-09-18T00:10:47.684Z">Sep 17, 2018</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="4 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------16-----------------------" data-post-id="89de0104bcbd" data-index="16"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/data-driven-content-categorization-89de0104bcbd?source=collection_home---4------16-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/data-driven-content-categorization-89de0104bcbd?source=collection_home---4------16-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*A-lEgYtSuSKQZ21ves4JOw.png&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Data Driven Content Categorization</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/data-driven-content-categorization-89de0104bcbd?source=collection_home---4------16-----------------------" data-action-source="collection_home---4------16-----------------------" data-post-id="89de0104bcbd"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Data Driven Content Categorization</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">How Coursera generated course categories from thousands of courses using a data driven clustering approach.</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@cliu_88389" data-action="show-user-card" data-action-value="70814e310ce3" data-action-type="hover" data-user-id="70814e310ce3" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*ECSDCjFKbFRqqOIr." class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Chris Liu"></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://medium.com/@cliu_88389" data-action="show-user-card" data-action-value="70814e310ce3" data-action-type="hover" data-user-id="70814e310ce3" dir="auto">Chris Liu</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2018-09-12T04:13:40.251Z">Sep 11, 2018</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="5 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------17-----------------------" data-post-id="a5134b8d0e1f" data-index="17"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/the-power-of-goals-a5134b8d0e1f?source=collection_home---4------17-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/the-power-of-goals-a5134b8d0e1f?source=collection_home---4------17-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*8Hdxovr0jOi8mtNBbEOa3g.gif&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">The Power of Goals</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/the-power-of-goals-a5134b8d0e1f?source=collection_home---4------17-----------------------" data-action-source="collection_home---4------17-----------------------" data-post-id="a5134b8d0e1f"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">The Power of Goals</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">How setting — and being reminded of — goals are moving the needle for learners</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@msorba" data-action="show-user-card" data-action-value="f36ac0ad7592" data-action-type="hover" data-user-id="f36ac0ad7592" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*_MTxJH9F2109-aNvPbuP5A.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Marianne Sorba"></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://medium.com/@msorba" data-action="show-user-card" data-action-value="f36ac0ad7592" data-action-type="hover" data-user-id="f36ac0ad7592" dir="auto">Marianne Sorba</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2018-08-14T21:42:57.854Z">Aug 14, 2018</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="3 min read"></span></div></div></div></div></div></div></div><div class="row u-marginTop30 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------18-----------------------" data-post-id="aab76c7ce8dc" data-index="18"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/using-deep-learning-to-intervene-where-it-counts-aab76c7ce8dc?source=collection_home---4------18-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/using-deep-learning-to-intervene-where-it-counts-aab76c7ce8dc?source=collection_home---4------18-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/0*IH4WzXmYffVg-t2t&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Deep learning to intervene where it counts</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/using-deep-learning-to-intervene-where-it-counts-aab76c7ce8dc?source=collection_home---4------18-----------------------" data-action-source="collection_home---4------18-----------------------" data-post-id="aab76c7ce8dc"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Deep learning to intervene where it counts</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">How we built a feedback loop to optimize learning nudges</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@msorba" data-action="show-user-card" data-action-value="f36ac0ad7592" data-action-type="hover" data-user-id="f36ac0ad7592" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*_MTxJH9F2109-aNvPbuP5A.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Marianne Sorba"></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://medium.com/@msorba" data-action="show-user-card" data-action-value="f36ac0ad7592" data-action-type="hover" data-user-id="f36ac0ad7592" dir="auto">Marianne Sorba</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2018-08-14T21:22:52.599Z">Aug 14, 2018</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="5 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------19-----------------------" data-post-id="70a7e06e667f" data-index="19"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/how-our-skills-benchmarking-technology-is-creating-value-for-companies-70a7e06e667f?source=collection_home---4------19-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/how-our-skills-benchmarking-technology-is-creating-value-for-companies-70a7e06e667f?source=collection_home---4------19-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/0*ExWIwBEdLYntqd0V.png&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Skills benchmarking</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/how-our-skills-benchmarking-technology-is-creating-value-for-companies-70a7e06e667f?source=collection_home---4------19-----------------------" data-action-source="collection_home---4------19-----------------------" data-post-id="70a7e06e667f"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Skills benchmarking</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">How ML-powered skills insights are guiding talent strategy and development</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@bvinod" data-action="show-user-card" data-action-value="8c25ad9d3047" data-action-type="hover" data-user-id="8c25ad9d3047" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*fUbiCeoMhiareWB2t8aXPQ.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Vinod Bakthavachalam"></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://medium.com/@bvinod" data-action="show-user-card" data-action-value="8c25ad9d3047" data-action-type="hover" data-user-id="8c25ad9d3047" dir="auto">Vinod Bakthavachalam</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2018-08-07T16:36:25.738Z">Aug 7, 2018</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="4 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------20-----------------------" data-post-id="987e9adb7fee" data-index="20"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/measuring-outcomes-of-high-schoolers-taking-cs-courses-987e9adb7fee?source=collection_home---4------20-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/measuring-outcomes-of-high-schoolers-taking-cs-courses-987e9adb7fee?source=collection_home---4------20-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/0*XmJjJY2bk5dK6pHD&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Measuring outcomes of high schoolers taking Computer Science courses</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/measuring-outcomes-of-high-schoolers-taking-cs-courses-987e9adb7fee?source=collection_home---4------20-----------------------" data-action-source="collection_home---4------20-----------------------" data-post-id="987e9adb7fee"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Measuring outcomes of high schoolers taking Computer Science courses</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">A case study on using Coursera in the classroom</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@bvinod" data-action="show-user-card" data-action-value="8c25ad9d3047" data-action-type="hover" data-user-id="8c25ad9d3047" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*fUbiCeoMhiareWB2t8aXPQ.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Vinod Bakthavachalam"></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://medium.com/@bvinod" data-action="show-user-card" data-action-value="8c25ad9d3047" data-action-type="hover" data-user-id="8c25ad9d3047" dir="auto">Vinod Bakthavachalam</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2018-07-25T15:13:55.668Z">Jul 25, 2018</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="3 min read"></span></div></div></div></div></div></div></div><div class="row u-marginTop30 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------21-----------------------" data-post-id="d34e5f37303" data-index="21"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/building-data-services-to-bring-education-to-millions-part-iii-d34e5f37303?source=collection_home---4------21-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/building-data-services-to-bring-education-to-millions-part-iii-d34e5f37303?source=collection_home---4------21-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/0*RczCL-xS55Watg4k&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Building data services to bring education to millions, Part III</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/building-data-services-to-bring-education-to-millions-part-iii-d34e5f37303?source=collection_home---4------21-----------------------" data-action-source="collection_home---4------21-----------------------" data-post-id="d34e5f37303"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Building data services to bring education to millions, Part III</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Piloting Self-Serve Analytics as a Service</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@ronyinusc" data-action="show-user-card" data-action-value="1fc56da4b674" data-action-type="hover" data-user-id="1fc56da4b674" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*18_2uiCFrWGBc6g0qbXuww.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Ronak Shah"></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://medium.com/@ronyinusc" data-action="show-user-card" data-action-value="1fc56da4b674" data-action-type="hover" data-user-id="1fc56da4b674" dir="auto">Ronak Shah</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2018-07-18T16:21:56.549Z">Jul 18, 2018</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="3 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------22-----------------------" data-post-id="996237bc1759" data-index="22"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/using-flow-generics-at-coursera-996237bc1759?source=collection_home---4------22-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/using-flow-generics-at-coursera-996237bc1759?source=collection_home---4------22-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*qe5vpF1NKVhSwqIglVkIaQ.png&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Using Flow Generics at Coursera</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/using-flow-generics-at-coursera-996237bc1759?source=collection_home---4------22-----------------------" data-action-source="collection_home---4------22-----------------------" data-post-id="996237bc1759"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Using Flow Generics at Coursera</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">In popular programming languages like Java and C#, generics serve as one of the tools for creating reusable components. By using generics…</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@dangquang2011" data-action="show-user-card" data-action-value="715b99bc6b5c" data-action-type="hover" data-user-id="715b99bc6b5c" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*l1AbFKTHlpaIh417." class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Quang Tran"></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://medium.com/@dangquang2011" data-action="show-user-card" data-action-value="715b99bc6b5c" data-action-type="hover" data-user-id="715b99bc6b5c" dir="auto">Quang Tran</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2018-07-17T18:57:38.340Z">Jul 17, 2018</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="4 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------23-----------------------" data-post-id="b10418a05214" data-index="23"><div class="u-lineHeightBase postItem"><a href="https://medium.com/coursera-engineering/courseras-skills-graph-helps-learners-find-the-right-content-to-reach-their-goals-b10418a05214?source=collection_home---4------23-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/courseras-skills-graph-helps-learners-find-the-right-content-to-reach-their-goals-b10418a05214?source=collection_home---4------23-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/0*N53u-A_ib2ccSE6u&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">How our Skills Graph is helping learners find the right content to reach their goals</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/coursera-engineering/courseras-skills-graph-helps-learners-find-the-right-content-to-reach-their-goals-b10418a05214?source=collection_home---4------23-----------------------" data-action-source="collection_home---4------23-----------------------" data-post-id="b10418a05214"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">How our Skills Graph is helping learners find the right content to reach their goals</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">At Coursera, we use data to power our product and better serve our learners. One example is our Skills Graph —a series of algorithms…</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@emilyglassbergsands" data-action="show-user-card" data-action-value="9999dd095c18" data-action-type="hover" data-user-id="9999dd095c18" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*UKxyBUaf5YQvLy7pb2T1dg.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Emily Glassberg Sands"></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://medium.com/@emilyglassbergsands" data-action="show-user-card" data-action-value="9999dd095c18" data-action-type="hover" data-user-id="9999dd095c18" dir="auto">Emily Glassberg Sands</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2018-07-10T14:04:49.374Z">Jul 10, 2018</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="4 min read"></span></div></div></div></div></div></div></div></section></div></div><style class="js-collectionStyle"> .u-accentColor--borderLight {border-color: #6388BF !important;} .u-accentColor--borderNormal {border-color: #6388BF !important;} .u-accentColor--borderDark {border-color: #5775A1 !important;} .u-accentColor--iconLight .svgIcon,.u-accentColor--iconLight.svgIcon {fill: #6388BF !important;} .u-accentColor--iconNormal .svgIcon,.u-accentColor--iconNormal.svgIcon {fill: #6388BF !important;} .u-accentColor--iconDark .svgIcon,.u-accentColor--iconDark.svgIcon {fill: #5775A1 !important;} .u-accentColor--textNormal {color: #5775A1 !important;} .u-accentColor--hoverTextNormal:hover {color: #5775A1 !important;} .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: #516B91 !important;} .u-accentColor--textDark {color: #516B91 !important;} .u-accentColor--backgroundLight {background-color: #6388BF !important;} .u-accentColor--backgroundNormal {background-color: #6388BF !important;} .u-accentColor--backgroundDark {background-color: #5775A1 !important;} .u-accentColor--buttonDark {border-color: #5775A1 !important; color: #516B91 !important;} .u-accentColor--buttonDark:hover {border-color: #516B91 !important;} .u-accentColor--buttonDark .icon:before,.u-accentColor--buttonDark .svgIcon{color: #5775A1 !important; fill: #5775A1 !important;} .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: #6388BF !important; color: #5775A1 !important;} .u-accentColor--buttonNormal:hover {border-color: #5775A1 !important;} .u-accentColor--buttonNormal .icon:before,.u-accentColor--buttonNormal .svgIcon{color: #6388BF !important; fill: #6388BF !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: #5775A1 !important; border-color: #5775A1 !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: #6388BF !important; border-color: #6388BF !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: #5775A1 !important;}.u-tintBgColor {background-color: rgba(130, 168, 225, 1) !important;}.u-tintBgColor .u-fadeLeft:before {background-image: linear-gradient(to right, rgba(130, 168, 225, 1) 0%, rgba(130, 168, 225, 0) 100%) !important;}.u-tintBgColor .u-fadeRight:after {background-image: linear-gradient(to right, rgba(130, 168, 225, 0) 0%, rgba(130, 168, 225, 1) 100%) !important;} .u-tintSpectrum .u-baseColor--borderLight {border-color: #C0D6F7 !important;} .u-tintSpectrum .u-baseColor--borderNormal {border-color: #D8E7FF !important;} .u-tintSpectrum .u-baseColor--borderDark {border-color: #EFF7FF !important;} .u-tintSpectrum .u-baseColor--iconLight .svgIcon,.u-tintSpectrum .u-baseColor--iconLight.svgIcon {fill: #C0D6F7 !important;} .u-tintSpectrum .u-baseColor--iconNormal .svgIcon,.u-tintSpectrum .u-baseColor--iconNormal.svgIcon {fill: #D8E7FF !important;} .u-tintSpectrum .u-baseColor--iconDark .svgIcon,.u-tintSpectrum .u-baseColor--iconDark.svgIcon {fill: #EFF7FF !important;} .u-tintSpectrum .u-baseColor--textNormal {color: #D8E7FF !important;} .u-tintSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: #FAFFFF !important;} .u-tintSpectrum .u-baseColor--textDark {color: #FAFFFF !important;} .u-tintSpectrum .u-baseColor--textDarker {color: #FAFFFF !important;} .u-tintSpectrum .u-baseColor--backgroundLight {background-color: #C0D6F7 !important;} .u-tintSpectrum .u-baseColor--backgroundNormal {background-color: #D8E7FF !important;} .u-tintSpectrum .u-baseColor--backgroundDark {background-color: #EFF7FF !important;} .u-tintSpectrum .u-baseColor--buttonLight {border-color: #C0D6F7 !important; color: #C0D6F7 !important;} .u-tintSpectrum .u-baseColor--buttonLight:hover {border-color: #C0D6F7 !important;} .u-tintSpectrum .u-baseColor--buttonLight .icon:before,.u-tintSpectrum .u-baseColor--buttonLight .svgIcon {color: #C0D6F7 !important; fill: #C0D6F7 !important;} .u-tintSpectrum .u-baseColor--buttonDark {border-color: #EFF7FF !important; color: #FAFFFF !important;} .u-tintSpectrum .u-baseColor--buttonDark:hover {border-color: #FAFFFF !important;} .u-tintSpectrum .u-baseColor--buttonDark .icon:before,.u-tintSpectrum .u-baseColor--buttonDark .svgIcon {color: #EFF7FF !important; fill: #EFF7FF !important;} .u-tintSpectrum .u-baseColor--buttonNormal {border-color: #D8E7FF !important; color: #D8E7FF !important;} .u-tintSpectrum .u-baseColor--buttonNormal:hover {border-color: #EFF7FF !important;} .u-tintSpectrum .u-baseColor--buttonNormal .icon:before,.u-tintSpectrum .u-baseColor--buttonNormal .svgIcon {color: #D8E7FF !important; fill: #D8E7FF !important;} .u-tintSpectrum .u-baseColor--buttonDark.button--filled,.u-tintSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: #EFF7FF !important; border-color: #EFF7FF !important; color: rgba(130, 168, 225, 1) !important; fill: rgba(130, 168, 225, 1) !important;} .u-tintSpectrum .u-baseColor--buttonNormal.button--filled,.u-tintSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: #D8E7FF !important; border-color: #D8E7FF !important; color: rgba(130, 168, 225, 1) !important; fill: rgba(130, 168, 225, 1) !important;} .u-tintSpectrum .u-baseColor--link {color: #D8E7FF !important;} .u-tintSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: #FAFFFF !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: #FAFFFF !important;} .u-tintSpectrum .u-baseColor--link.link--dark {color: #FAFFFF !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: #FAFFFF !important;} .u-tintSpectrum .u-baseColor--link.link--darker {color: #FAFFFF !important;} .u-tintSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: #C0D6F7;} .u-tintSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: #C0D6F7;} .u-tintSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: #C0D6F7;} .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: #FAFFFF !important; fill: #FAFFFF !important;} .u-tintSpectrum .ui-body,.u-tintSpectrum .ui-caps {color: #FAFFFF !important; fill: #FAFFFF !important;} .u-tintSpectrum .ui-summary,.u-tintSpectrum .ui-caption {color: #C0D6F7 !important; fill: #C0D6F7 !important;} .u-tintSpectrum .u-accentColor--borderLight {border-color: #C0D6F7 !important;} .u-tintSpectrum .u-accentColor--borderNormal {border-color: #D8E7FF !important;} .u-tintSpectrum .u-accentColor--borderDark {border-color: #EFF7FF !important;} .u-tintSpectrum .u-accentColor--iconLight .svgIcon,.u-tintSpectrum .u-accentColor--iconLight.svgIcon {fill: #C0D6F7 !important;} .u-tintSpectrum .u-accentColor--iconNormal .svgIcon,.u-tintSpectrum .u-accentColor--iconNormal.svgIcon {fill: #D8E7FF !important;} .u-tintSpectrum .u-accentColor--iconDark .svgIcon,.u-tintSpectrum .u-accentColor--iconDark.svgIcon {fill: #EFF7FF !important;} .u-tintSpectrum .u-accentColor--textNormal {color: #D8E7FF !important;} .u-tintSpectrum .u-accentColor--hoverTextNormal:hover {color: #D8E7FF !important;} .u-tintSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: #FAFFFF !important;} .u-tintSpectrum .u-accentColor--textDark {color: #FAFFFF !important;} .u-tintSpectrum .u-accentColor--backgroundLight {background-color: #C0D6F7 !important;} .u-tintSpectrum .u-accentColor--backgroundNormal {background-color: #D8E7FF !important;} .u-tintSpectrum .u-accentColor--backgroundDark {background-color: #EFF7FF !important;} .u-tintSpectrum .u-accentColor--buttonDark {border-color: #EFF7FF !important; color: #FAFFFF !important;} .u-tintSpectrum .u-accentColor--buttonDark:hover {border-color: #FAFFFF !important;} .u-tintSpectrum .u-accentColor--buttonDark .icon:before,.u-tintSpectrum .u-accentColor--buttonDark .svgIcon{color: #EFF7FF !important; fill: #EFF7FF !important;} .u-tintSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: #D8E7FF !important; color: #D8E7FF !important;} .u-tintSpectrum .u-accentColor--buttonNormal:hover {border-color: #EFF7FF !important;} .u-tintSpectrum .u-accentColor--buttonNormal .icon:before,.u-tintSpectrum .u-accentColor--buttonNormal .svgIcon{color: #D8E7FF !important; fill: #D8E7FF !important;} .u-tintSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-tintSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(130, 168, 225, 1) !important; fill: rgba(130, 168, 225, 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: #EFF7FF !important; border-color: #EFF7FF !important; color: rgba(130, 168, 225, 1) !important; fill: rgba(130, 168, 225, 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: #D8E7FF !important; border-color: #D8E7FF !important; color: rgba(130, 168, 225, 1) !important; fill: rgba(130, 168, 225, 1) !important;} .u-tintSpectrum .postArticle.is-withAccentColors .markup--user,.u-tintSpectrum .postArticle.is-withAccentColors .markup--query {color: #D8E7FF !important;} .u-accentColor--highlightFaint {background-color: rgba(232, 242, 255, 1) !important;} .u-accentColor--highlightStrong.is-active .svgIcon {fill: rgba(198, 227, 255, 1) !important;} .postArticle.is-withAccentColors .markup--quote.is-other {background-color: rgba(232, 242, 255, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-other {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(232, 242, 255, 1), rgba(232, 242, 255, 1));} .postArticle.is-withAccentColors .markup--quote.is-me {background-color: rgba(214, 234, 255, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-me {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(214, 234, 255, 1), rgba(214, 234, 255, 1));} .postArticle.is-withAccentColors .markup--quote.is-targeted {background-color: rgba(198, 227, 255, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-targeted {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(198, 227, 255, 1), rgba(198, 227, 255, 1));} .postArticle.is-withAccentColors .markup--quote.is-selected {background-color: rgba(198, 227, 255, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-selected {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(198, 227, 255, 1), rgba(198, 227, 255, 1));} .postArticle.is-withAccentColors .markup--highlight {background-color: rgba(198, 227, 255, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--highlight {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(198, 227, 255, 1), rgba(198, 227, 255, 1));}</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 .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 .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-hide"><div class="container u-maxWidth1040"><div class="u-marginTop10 u-paddingTop10 u-paddingBottom30 u-borderTopLighter"><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://medium.com/coursera-engineering/about" title="About Coursera Engineering" aria-label="About Coursera Engineering">About Coursera Engineering</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="https://medium.com/coursera-engineering/latest" title="Latest Stories for Coursera Engineering" aria-label="Latest Stories for Coursera Engineering">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://medium.com/coursera-engineering/archive" title="Archive for Coursera Engineering" aria-label="Archive for Coursera Engineering">Archive</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="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://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://policy.medium.com/medium-privacy-policy-f03bf92035c9">Privacy</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="https://medium.com/business">Teams</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://d1fcbxp97j4nb2.cloudfront.net","baseUrl":"https://medium.com","buildLabel":"20241126-1740-root","currentUser":{"userId":"lo_e6894cf51aa0","isVerified":false,"subscriberEmail":"","hasPastMemberships":false,"isEnrolledInHightower":false,"isEligibleForHightower":true,"hightowerLastLockedAt":0,"isWriterProgramEnrolled":true,"isWriterProgramInvited":false,"isWriterProgramOptedOut":false,"writerProgramVersion":0,"writerProgramEnrolledAt":0,"friendLinkOnboarding":0,"hasAdditionalUnlocks":false,"hasApiAccess":false,"writerProgramDistributionSettingOptedIn":false,"isSuspended":false,"collectionOnboardingSeen":0,"atsQualifiedAt":0},"currentUserHasUnverifiedEmail":false,"isAuthenticated":false,"isCurrentUserVerified":false,"miroUrl":"https://cdn-images-1.medium.com","moduleUrls":{"base":"https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.95z8xpkUEidhPbIWsh2BVw.12.js","common-async":"https://cdn-static-1.medium.com/_/fp/gen-js/main-common-async.bundle.zqOu8dxaQRtqDyChHdOWlQ.12.js","hightower":"https://cdn-static-1.medium.com/_/fp/gen-js/main-hightower.bundle.y0UkxCxPBUbLlduk5XbwLQ.12.js","home-screens":"https://cdn-static-1.medium.com/_/fp/gen-js/main-home-screens.bundle.eZhPgaD8AglnbC5Rzxqvhg.12.js","misc-screens":"https://cdn-static-1.medium.com/_/fp/gen-js/main-misc-screens.bundle.XeRjm4FlHTBOsUvoOQ6Ppg.12.js","notes":"https://cdn-static-1.medium.com/_/fp/gen-js/main-notes.bundle.r9MSvtAmj0CMkyIC0CCCbA.12.js","payments":"https://cdn-static-1.medium.com/_/fp/gen-js/main-payments.bundle.AiXyuYj3AvxRA1-7HEyP9Q.12.js","posters":"https://cdn-static-1.medium.com/_/fp/gen-js/main-posters.bundle.fsLyLvZO4VZXL_zb4RXgeg.12.js","power-readers":"https://cdn-static-1.medium.com/_/fp/gen-js/main-power-readers.bundle.6Dyc-nVN2MDV_AM9XDAZug.12.js","pubs":"https://cdn-static-1.medium.com/_/fp/gen-js/main-pubs.bundle.rUyrVjlTpUj61voxnZosQw.12.js","stats":"https://cdn-static-1.medium.com/_/fp/gen-js/main-stats.bundle.2I2tXSo7-rbez_WYXfga0Q.12.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":"//policy.medium.com/medium-terms-of-service-9db0094a1e0f","textshotHost":"textshot.textshot-production.svc.cluster.local","transactionId":"1732709004083:97259a42526e","useragent":{"browser":"ie","family":"ie","os":"windows","version":7,"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_editor_new_publishing_flow":true,"android_enable_friend_links_creation":true,"android_enable_friend_links_postpage_banners":true,"android_enable_image_sharer":true,"android_enable_lists_v2":true,"android_enable_syntax_highlight":true,"android_enable_topic_portals":true,"android_rating_prompt_stories_read_threshold":2,"android_two_hour_refresh":true,"available_annual_plan":"2c754bcc2995","available_annual_premium_plan":"4a442ace1476","available_monthly_plan":"60e220181034","available_monthly_premium_plan":"12a660186432","browsable_stream_config_bucket":"curated-topics","can_receive_tips_v0":true,"can_send_tips_v0":true,"coronavirus_topic_recirc":true,"disable_partner_program_enrollment":true,"enable_abandoned_cart_promotion_email":true,"enable_android_dynamic_aspirational_paywall":true,"enable_android_dynamic_programming_paywall":true,"enable_android_miro_v2":true,"enable_android_offline_reading":true,"enable_android_verified_author":true,"enable_app_flirty_thirty":true,"enable_apple_sign_in":true,"enable_apple_webhook":true,"enable_aurora_pub_follower_page":true,"enable_author_cards":true,"enable_author_cards_byline":true,"enable_auto_follow_on_subscribe":true,"enable_automod":true,"enable_bayesian_average_pub_search":true,"enable_bg_post_post":true,"enable_billing_frequency_on_step2":"control","enable_boost_nia_v01":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_cache_less_following_feed":true,"enable_configure_pronouns":true,"enable_conversion_model_v2":"group_2","enable_conversion_ranker_v2":"control","enable_creator_welcome_email":true,"enable_deprecate_legacy_providers_v3":true,"enable_diversification_rex":true,"enable_entities_to_follow_v2":true,"enable_eventstats_event_processing":true,"enable_explicit_signals":true,"enable_explicit_signals_updated_post_previews":true,"enable_footer_app_buttons":true,"enable_google_one_tap":true,"enable_google_webhook":true,"enable_group_gifting":true,"enable_iceland_forced_android":true,"enable_import":true,"enable_intrinsic_automatic_actions":true,"enable_ios_autorefresh":true,"enable_ios_dynamic_paywall_aspiriational":true,"enable_ios_dynamic_paywall_programming":true,"enable_ios_easy_resubscribe":true,"enable_ios_offline_reading":true,"enable_legacy_feed_in_iceland":true,"enable_lite_archive_page":true,"enable_lite_continue_this_thread":true,"enable_lite_homepage":true,"enable_lite_response_markup":true,"enable_lite_server_upstream_deadlines":true,"enable_lo_homepage":"control","enable_maim_the_meter":true,"enable_marketing_emails":true,"enable_mastodon_avatar_upload":true,"enable_mastodon_for_members":true,"enable_mastodon_for_members_username_selection":true,"enable_medium2_kbfd":true,"enable_members_only_audio":true,"enable_ml_rank_rex_anno":true,"enable_moc_load_processor_all_recs_surfaces":true,"enable_moc_load_processor_c":true,"enable_moc_load_processor_first_story":true,"enable_new_manage_membership_flow":true,"enable_new_stripe_customers":true,"enable_newsletter_lo_flow_custom_domains":true,"enable_pill_based_home_feed":true,"enable_post_bottom_responses":true,"enable_post_bottom_responses_input":true,"enable_pp_country_expansion":true,"enable_pp_v4":true,"enable_pre_pp_v4":true,"enable_premium_tier":true,"enable_premium_tier_badge":true,"enable_publication_hierarchy_web":true,"enable_ranker_v10":"control","enable_recaptcha_enterprise":true,"enable_recirc_model":true,"enable_recommended_publishers_query":true,"enable_rex_aggregator_v2":true,"enable_rex_new_push_notification_endpoint":true,"enable_rex_reading_history":true,"enable_rito_upstream_deadlines":true,"enable_seamless_social_sharing":true,"enable_see_pronouns":true,"enable_sharer_create_post_share_key":true,"enable_sharer_validate_post_share_key":true,"enable_simplified_digest_v2_b":true,"enable_speechify_ios":true,"enable_speechify_widget":true,"enable_sprig":true,"enable_starspace":true,"enable_susi_redesign_android":true,"enable_susi_redesign_ios":true,"enable_switch_plan_premium_tier":true,"enable_tag_recs":true,"enable_tick_landing_page":true,"enable_tipping_v0_android":true,"enable_tipping_v0_ios":true,"enable_tribute_landing_page":true,"enable_update_explore_wtf":true,"enable_update_topic_portals_wtf":true,"enable_updated_pub_recs_ui":true,"enable_verifications_service":true,"glyph_font_set":"m2-unbound-source-serif-pro","goliath_externalsearch_enable_comment_deindexation":true,"ios_display_paywall_after_onboarding":true,"ios_enable_friend_links_creation":true,"ios_enable_friend_links_postpage_banners":true,"ios_enable_home_post_menu":true,"ios_enable_lock_responses":true,"ios_enable_verified_book_author":true,"ios_iceland_nux":true,"ios_in_app_free_trial":true,"ios_remove_twitter_onboarding_step":true,"ios_social_share_sheet":true,"limit_post_referrers":true,"limit_user_follows":true,"mobile_custom_app_icon":true,"num_post_bottom_responses_to_show":"3","onboarding_tags_from_top_views":true,"reader_fair_distribution_non_qp":true,"redefined_top_posts":true,"reengagement_notification_duration":3,"rex_generator_max_candidates":1000,"signin_services":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple","signup_services":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple","skip_fs_cache_user_vals":true},"xsrfToken":"","iosAppId":"828256236","supportEmail":"yourfriends@medium.com","fp":{"/icons/monogram-mask.svg":"https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.12.svg","/icons/favicon-medium-editor.ico":"https://cdn-static-1.medium.com/_/fp/icons/favicon-medium-editor.PiakrZWB7Yb80quUVQWM6g.12.ico"},"authBaseUrl":"https://medium.com","imageUploadSizeMb":25,"isAuthDomainRequest":true,"algoliaApiEndpoint":"https://MQ57UUUQZ2-dsn.algolia.net","algoliaAppId":"MQ57UUUQZ2","algoliaSearchOnlyApiKey":"394474ced050e3911ae2249ecc774921","iosAppStoreUrl":"https://itunes.apple.com/app/medium-everyones-stories/id828256236?pt=698524&mt=8","iosAppLinkBaseUrl":"medium:","algoliaIndexPrefix":"medium_","androidPlayStoreUrl":"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://accounts.google.com/o/oauth2/auth","androidScheme":"medium","layoutData":{"useDynamicScripts":false,"googleAnalyticsTrackingCode":"G-7JY7T788PK","jsShivUrl":"https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.12.js","useDynamicCss":false,"faviconUrl":"https://miro.medium.com/v2/5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19","faviconImageId":"5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19","fontSets":[{"id":8,"url":"https://glyph.medium.com/css/e/sr/latin/e/ssr/latin/e/ssb/latin/m2-unbound-source-serif-pro.css"},{"id":11,"url":"https://glyph.medium.com/css/m2-unbound-source-serif-pro.css"},{"id":9,"url":"https://glyph.medium.com/css/mkt.css"}],"glyphUrl":"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","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":{"videoUrl":"https://cdn-videos-1.medium.com","audioUrl":"https://cdn-audio-1.medium.com"},"referrerType":5,"partnerProgramEmail":"partnerprogram@medium.com","recaptchaKey":"6Lfc37IUAAAAAKGGtC6rLS13R1Hrw_BqADfS1LRk","countryCode":"SG","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://www.cdc.gov/coronavirus/2019-nCoV","type":"link","start":66,"end":73},{"text":".","href":"","type":"text","start":0,"end":0}],"braintree":{"merchantId":"m56f8fqpf7ngnrd4"},"diagnostics":{},"domain":"medium.com"} // ]]></script><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.95z8xpkUEidhPbIWsh2BVw.12.js" async></script><script>// <![CDATA[ window["obvInit"]({"references":{"Collection":{"532b19e4043c":{"id":"532b19e4043c","name":"Coursera Engineering","slug":"coursera-engineering","tags":["COURSERA","ENGINEERING"],"creatorId":"d987eade03ed","description":"We're changing the way the world learns! Posts from Coursera engineers and data scientists.","shortDescription":"We're changing the way the world learns!","image":{"imageId":"1*j2vLJO9qZg435iRYfd2Mfg.png","filter":"","backgroundSize":"","originalWidth":400,"originalHeight":400,"strategy":"resample","height":0,"width":0},"metadata":{"followerCount":3780,"activeAt":1679508955293},"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":"1*zXjOKA4JKHH04Ipi2NI0jA.png","filter":"","backgroundSize":"","originalWidth":1156,"originalHeight":164,"strategy":"resample","height":0,"width":0},"twitterUsername":"CourseraEng","publicEmail":"medium@coursera.org","sections":[{"type":2,"collectionHeaderMetadata":{"title":"Coursera Engineering","description":"We're changing the way the world learns!","backgroundImage":{"id":"1*SUNVx-fZ3AwO13vvCEPqsQ.jpeg","originalWidth":1770,"originalHeight":890},"logoImage":{},"alignment":2,"layout":6}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":7,"postIds":[],"sectionHeader":"Latest"}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":24,"postIds":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":24,"postIds":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":9,"postIds":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":9,"postIds":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":9,"postIds":[]}}],"tintColor":"#FF82A8E1","lightText":false,"favicon":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"colorPalette":{"defaultBackgroundSpectrum":{"colorPoints":[{"color":"#FF6388BF","point":0},{"color":"#FF5D7EB0","point":0.1},{"color":"#FF5775A1","point":0.2},{"color":"#FF516B91","point":0.3},{"color":"#FF4A6182","point":0.4},{"color":"#FF435673","point":0.5},{"color":"#FF3C4B63","point":0.6},{"color":"#FF334054","point":0.7},{"color":"#FF2A3444","point":0.8},{"color":"#FF202833","point":0.9},{"color":"#FF151B23","point":1}],"backgroundColor":"#FFFFFFFF"},"tintBackgroundSpectrum":{"colorPoints":[{"color":"#FF82A8E1","point":0},{"color":"#FF8FB1E6","point":0.1},{"color":"#FF9CBBEA","point":0.2},{"color":"#FFA8C4EF","point":0.3},{"color":"#FFB4CDF3","point":0.4},{"color":"#FFC0D6F7","point":0.5},{"color":"#FFCCDEFB","point":0.6},{"color":"#FFD8E7FF","point":0.7},{"color":"#FFE3EFFF","point":0.8},{"color":"#FFEFF7FF","point":0.9},{"color":"#FFFAFFFF","point":1}],"backgroundColor":"#FF82A8E1"},"highlightSpectrum":{"colorPoints":[{"color":"#FFECF3FF","point":0},{"color":"#FFE8F2FF","point":0.1},{"color":"#FFE5F0FF","point":0.2},{"color":"#FFE1EFFF","point":0.3},{"color":"#FFDDEDFF","point":0.4},{"color":"#FFD9EBFF","point":0.5},{"color":"#FFD6EAFF","point":0.6},{"color":"#FFD2E8FF","point":0.7},{"color":"#FFCEE6FF","point":0.8},{"color":"#FFCAE5FF","point":0.9},{"color":"#FFC6E3FF","point":1}],"backgroundColor":"#FFFFFFFF"},"darkBackgroundSpectrum":{"colorPoints":[{"color":"#FF7BA0D9","point":0},{"color":"#FF87A9DD","point":0.1},{"color":"#FF92B1E0","point":0.2},{"color":"#FF9EB9E4","point":0.3},{"color":"#FFA9C1E7","point":0.4},{"color":"#FFB4C9EA","point":0.5},{"color":"#FFBFD1EE","point":0.6},{"color":"#FFCAD9F1","point":0.7},{"color":"#FFD5E0F4","point":0.8},{"color":"#FFDFE8F7","point":0.9},{"color":"#FFE9EFFB","point":1}],"backgroundColor":"#FF000000"}},"navItems":[{"type":4,"title":"Frontend","url":"https://medium.com/coursera-engineering/frontend/home","topicId":"ecccd47bf364","source":"topicId"},{"type":4,"title":"Backend","url":"https://medium.com/coursera-engineering/backend/home","topicId":"4ade75150ff3","source":"topicId"},{"type":4,"title":"Mobile","url":"https://medium.com/coursera-engineering/mobile-development/home","topicId":"a467595a7ee1","source":"topicId"},{"type":4,"title":"Data","url":"https://medium.com/coursera-engineering/data/home","topicId":"ea551161649","source":"topicId"},{"type":4,"title":"Life At Coursera","url":"https://medium.com/coursera-engineering/engineering-life-coursera/home","topicId":"97a320fc1b11","source":"topicId"},{"type":3,"title":"Coursera Blog","url":"https://blog.coursera.org/"}],"colorBehavior":1,"ampLogo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"header":{"title":"Coursera Engineering","description":"We're changing the way the world learns!","backgroundImage":{"id":"1*SUNVx-fZ3AwO13vvCEPqsQ.jpeg","originalWidth":1770,"originalHeight":890},"logoImage":{},"alignment":2,"layout":6},"subscriberCount":3780,"tagline":"We're changing the way the world learns!","isOptedIntoAurora":false,"isCurationAllowedByDefault":false,"polarisCoverImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"ptsQualifiedAt":1616092813501,"type":"Collection"}},"User":{"dbd909ab7ead":{"userId":"dbd909ab7ead","name":"Mengying Li","username":"mengying-li","createdAt":1606202789043,"imageId":"1*OSkgz1_TZgSIGVJwXI7dQg.jpeg","backgroundImageId":"","bio":"Software Engineer working on Kubernetes and Istio. Contributor or open source project Admiral (Istio)","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedAndroidApp":1677558568833,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"subdomainCreatedAt":1607406627281,"hasCompletedProfile":true,"userDismissableFlags":[29,12,8,7,5,21,19,2,1,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"99c0fb464c1f":{"userId":"99c0fb464c1f","name":"Coursera","username":"CourseraEng","createdAt":1524681478781,"imageId":"1*j2vLJO9qZg435iRYfd2Mfg.png","backgroundImageId":"","bio":"Providing universal access to the world’s best education. | www.coursera.org","twitterScreenName":"","allowNotes":0,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[2,1,29],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"5f3bbeee7670":{"userId":"5f3bbeee7670","name":"Caleb Habtegebriel","username":"habtegebrielc","createdAt":1578017371765,"imageId":"0*YsS3lrpbHsR3hOWF","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1619146549081,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"subdomainCreatedAt":1619124331739,"hasCompletedProfile":true,"userDismissableFlags":[8,12,3,2,1],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"36e5b8f4c18f":{"userId":"36e5b8f4c18f","name":"Mustafa Furniturewala","username":"mustafasf","createdAt":1396209985101,"imageId":"0*VTtfLrnf0qDSogwg.jpeg","backgroundImageId":"","bio":"VP Of Engineering @coursera. Previously @twitter, @evernote, @Klout and @Citrix.","twitterScreenName":"mustafasf","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"Mustafa Furniturewala","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[12,2,29],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"2dafa94ed5f7":{"userId":"2dafa94ed5f7","name":"Nichalus Varela","username":"nvarela","createdAt":1608229658346,"imageId":"0*j4uNthGh6uEYe-Xj","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"15fc9548e39d":{"userId":"15fc9548e39d","name":"Bryan Rivera","username":"bry3133","createdAt":1502042811027,"imageId":"1*4BrT4eRwOyBEhv3Mzln2fw@2x.jpeg","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"Bryan Rivera","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[2,5],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"8c25ad9d3047":{"userId":"8c25ad9d3047","name":"Vinod Bakthavachalam","username":"bvinod","createdAt":1491400647363,"imageId":"1*fUbiCeoMhiareWB2t8aXPQ.png","backgroundImageId":"","bio":"I am interested in politics, economics, & policy. I work as a data scientist and am passionate about using technology to solve structural economic problems.","twitterScreenName":"vinod__b","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"subdomainCreatedAt":1604374263521,"hasCompletedProfile":false,"isCreatorPartnerProgramEnrolled":true,"userDismissableFlags":[29,12,8,5,21,2,1],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"db2f2af1172b":{"userId":"db2f2af1172b","name":"David Le","username":"davidkle1","createdAt":1367325251823,"imageId":"2*DPmMXHbpEzqceGw2Pbc-LA.jpeg","backgroundImageId":"","bio":"Senior Frontend Engineer @ Coursera","twitterScreenName":"dthedavid","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,2,5],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"5bb4dcd49b0f":{"userId":"5bb4dcd49b0f","name":"Cathy Chi","username":"cathchi","createdAt":1574136036509,"imageId":"0*aE2SZ1-oQvXZEnfz","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"afbf744275c8":{"userId":"afbf744275c8","name":"richa123","username":"richa123","createdAt":1395552602101,"imageId":"0*6Db1xfnc79cwgPjm.png","backgroundImageId":"","bio":"Engineering Manager@Coursera","twitterScreenName":"richa123","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"e8d286bb099f":{"userId":"e8d286bb099f","name":"Myra Cheng","username":"myracheng","createdAt":1482102806612,"imageId":"2*UGwK6uew5IgCWB7TrX_hIw.jpeg","backgroundImageId":"","bio":"loves surprises","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"Myra Cheng","optInToIceland":true,"subdomainCreatedAt":1611808822299,"hasCompletedProfile":false,"userDismissableFlags":[8,2,1],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"d987eade03ed":{"userId":"d987eade03ed","name":"jon wong","username":"jnwng","createdAt":1344985927005,"imageId":"1*zrMbbNRq80W_fOfnB_BzXQ.jpeg","backgroundImageId":"","bio":"exploring.","twitterScreenName":"jnwng","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"Jon Wong","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[29,12,8,5,21,3,2,18,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"6595f3dc1125":{"userId":"6595f3dc1125","name":"Billy Kirk","username":"billykirk","createdAt":1500929581321,"imageId":"2*mjkbhjTgvHEylH9c1vEEag.jpeg","backgroundImageId":"","bio":"Product Engineer @Coursera, @UVA ‘13","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"Billy Kirk","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[12,2,18],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"70814e310ce3":{"userId":"70814e310ce3","name":"Chris Liu","username":"cliu_88389","createdAt":1507829865412,"imageId":"0*ECSDCjFKbFRqqOIr.","backgroundImageId":"","bio":"Passionate about education and solving hard problems in a collaborative fashion.","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"3bebd5c70600":{"userId":"3bebd5c70600","name":"Dalton Sweeney","username":"daltyboy11","createdAt":1555450114551,"imageId":"2*sFxbQxfsIMo-yxA1gG62ww.jpeg","backgroundImageId":"","bio":"Aspiring Software Engineer","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"283802d43c":{"userId":"283802d43c","name":"Alan Hickey","username":"alanhickey0502","createdAt":1527697408415,"imageId":"1*LoU5BlI2E6Az369C_w8Zrg.png","backgroundImageId":"","bio":"Data Scientist at Coursera, Learning Analytics","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"f36ac0ad7592":{"userId":"f36ac0ad7592","name":"Marianne Sorba","username":"msorba","createdAt":1527110701811,"imageId":"1*_MTxJH9F2109-aNvPbuP5A.png","backgroundImageId":"","bio":"Data Science Intern @ Coursera, M.S in Data Science at Columbia University","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"1fc56da4b674":{"userId":"1fc56da4b674","name":"Ronak Shah","username":"ronyinusc","createdAt":1523469427666,"imageId":"1*18_2uiCFrWGBc6g0qbXuww.png","backgroundImageId":"","bio":"Head of Data @ Apna; Data Director @ Coursera; Data Products @ Glassdoor, Amazon","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":false,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[47,29,2,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"715b99bc6b5c":{"userId":"715b99bc6b5c","name":"Quang Tran","username":"dangquang2011","createdAt":1482443750538,"imageId":"0*l1AbFKTHlpaIh417.","backgroundImageId":"","bio":"Software Engineer at Airbnb. ex Coursera","twitterScreenName":"","allowNotes":1,"mediumMemberAt":1714509190000,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":false,"facebookDisplayName":"Quang Tran","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,29,12,2],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-gb","type":"User"},"9999dd095c18":{"userId":"9999dd095c18","name":"Emily Glassberg Sands","username":"emilyglassbergsands","createdAt":1445179010282,"imageId":"1*UKxyBUaf5YQvLy7pb2T1dg.jpeg","backgroundImageId":"","bio":"Head of Data Science @Coursera, Harvard Econ PhD","twitterScreenName":"emilygsands","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"Emily Glassberg Sands","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[2],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"}},"Post":{"9cd6e8ac8b5c":{"id":"9cd6e8ac8b5c","versionId":"e4991645d83","creatorId":"dbd909ab7ead","homeCollectionId":"532b19e4043c","title":"Right-Sizing AWS RDS? Request Mirroring Load Test Come To Rescue","detectedLanguage":"en","latestVersion":"e4991645d83","latestPublishedVersion":"e4991645d83","hasUnpublishedEdits":false,"latestRev":927,"createdAt":1672368210325,"updatedAt":1721692939524,"acceptedAt":0,"firstPublishedAt":1672713676343,"latestPublishedAt":1679508955193,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"We all know feel the pain when trying to choose the right instance size for AWS RDS (Amazon Relational Database Service) instance. There…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*V5jIIMbkBZtKUDdI_URQwg.png","filter":"","backgroundSize":"","originalWidth":1200,"originalHeight":474,"strategy":"resample","height":0,"width":0},"wordCount":2558,"imageCount":5,"readingTime":10.486163522012578,"subtitle":"We all know feel the pain when trying to choose the right instance size for AWS RDS (Amazon Relational Database Service) instance. There…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":17,"isBookmarked":false,"tags":[],"socialRecommendsCount":0,"responsesCreatedCount":9,"links":{"entries":[{"url":"https://aws.amazon.com/blogs/database/analyzing-amazon-rds-database-workload-with-performance-insights/","alts":[],"httpStatus":200},{"url":"https://aws.amazon.com/rds/instance-types/","alts":[],"httpStatus":200},{"url":"https://stackoverflow.com/questions/66926328/do-aws-rds-cluster-instances-need-to-be-the-same-size","alts":[],"httpStatus":200},{"url":"https://www.envoyproxy.io/","alts":[],"httpStatus":200},{"url":"https://thorben-janssen.com/dual-writes/","alts":[],"httpStatus":200},{"url":"https://www.linkedin.com/in/mengying-li-madeline/","alts":[],"httpStatus":999},{"url":"https://docs.aws.amazon.com/whitepapers/latest/amazon-aurora-mysql-db-admin-handbook/load-balancing-with-the-reader-endpoint.html","alts":[],"httpStatus":200},{"url":"https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html","alts":[],"httpStatus":200},{"url":"https://proxysql.com/","alts":[],"httpStatus":200},{"url":"http://envoyproxy.io/docs/envoy/latest/start/sandboxes/route-mirror.html?highlight=request%20mirroring","alts":[],"httpStatus":200},{"url":"https://github.com/sysown/proxysql/issues/3389","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1679508956027},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":371,"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":"two-easy-ways-to-determine-right-size-for-aws-rds-instance-through-request-mirroring-load-test","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"two-easy-ways-to-determine-right-size-for-aws-rds-instance-through-request-mirroring-load-test-9cd6e8ac8b5c","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*V5jIIMbkBZtKUDdI_URQwg.png","originalWidth":1200,"originalHeight":474,"isFeatured":true}},{"name":"b800","type":3,"text":"Right-Sizing AWS RDS? Request Mirroring Load Test Come To Rescue","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"We all know feel the pain when trying to choose the right instance size for AWS RDS (Amazon Relational Database Service) instance. There…"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","isNewsletter":false,"newsletterId":"a6cb1960a1f1","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":"b800","type":3,"text":"Right-Sizing AWS RDS? Request Mirroring Load Test Come To Rescue","markups":[]},{"name":"dbd4","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*V5jIIMbkBZtKUDdI_URQwg.png","originalWidth":1200,"originalHeight":474,"isFeatured":true}},{"name":"7084","type":1,"text":"We all know feel the pain when trying to choose the right instance size for AWS RDS (Amazon Relational Database Service) instance. There are so many instance types optimized to fit different use case. And within each type, there are wide variety of sizes to choose from like large, xlarge…","markups":[{"type":3,"start":149,"end":163,"href":"https://aws.amazon.com/rds/instance-types/","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"b869","startIndex":0}]},"isFullContent":false,"subtitle":"We all know feel the pain when trying to choose the right instance size for AWS RDS (Amazon Relational Database Service) instance. There…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"f5525394da63":{"id":"f5525394da63","versionId":"1169fcd4dbdb","creatorId":"99c0fb464c1f","homeCollectionId":"532b19e4043c","title":"Optimizing Low Code in Retool to Empower Services Colleagues","detectedLanguage":"en","latestVersion":"1169fcd4dbdb","latestPublishedVersion":"1169fcd4dbdb","hasUnpublishedEdits":false,"latestRev":252,"createdAt":1631657979912,"updatedAt":1641381085067,"acceptedAt":0,"firstPublishedAt":1631728718823,"latestPublishedAt":1631728718823,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"By Charlotte Evans, Platform Services Degree Specialist","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":false,"previewImage":{"imageId":"1*gnLpyEcJMsbf7Ct7Ci8VTQ.png","filter":"","backgroundSize":"","originalWidth":1380,"originalHeight":688,"strategy":"resample","height":0,"width":0},"wordCount":1323,"imageCount":4,"readingTime":5.692452830188679,"subtitle":"By Charlotte Evans, Platform Services Degree Specialist","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":15,"isBookmarked":false,"tags":[{"slug":"internal-tools","name":"Internal Tools","postCount":157,"metadata":{"postCount":157,"coverImage":{"id":"1*lv_BRuj--i_wfN2xTAvgBg.png","originalWidth":1600,"originalHeight":722,"isFeatured":true}},"type":"Tag"},{"slug":"low-code","name":"Low Code","postCount":6584,"metadata":{"postCount":6584,"coverImage":{"id":"1*kJmYZZa4q0vslKSizfJfpA.png","originalWidth":1800,"originalHeight":722,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":6,"links":{"entries":[{"url":"https://docs.retool.com/docs/scripting-retool","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1631728719369},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":136,"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":"optimizing-low-code-in-retool-to-empower-services-colleagues","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"optimizing-low-code-in-retool-to-empower-services-colleagues-f5525394da63","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*gnLpyEcJMsbf7Ct7Ci8VTQ.png","originalWidth":1380,"originalHeight":688,"isFeatured":true}},{"name":"2d2a","type":3,"text":"Optimizing Low Code in Retool to Empower Services Colleagues","markups":[{"type":1,"start":0,"end":60}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"By Charlotte Evans, Platform Services Degree Specialist"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","isNewsletter":false,"newsletterId":"f194693a0bbb","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":"2d2a","type":3,"text":"Optimizing Low Code in Retool to Empower Services Colleagues","markups":[{"type":1,"start":0,"end":60}]},{"name":"1dbf","type":1,"text":"By Charlotte Evans, Platform Services Degree Specialist","markups":[{"type":2,"start":0,"end":55}]},{"name":"133f","type":1,"text":"One day when my older brother was in elementary school and reading aloud from the sofa, I became infuriated that he was making sense out of what appeared to be squiggles on the page. Hands on hips, I marched over to my mother…","markups":[]}],"sections":[{"name":"a646","startIndex":0}]},"isFullContent":false,"subtitle":"By Charlotte Evans, Platform Services Degree Specialist"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"7541bf80eaca":{"id":"7541bf80eaca","versionId":"27bd9aac726f","creatorId":"5f3bbeee7670","homeCollectionId":"532b19e4043c","title":"Empowering Teammates and Thriving Remotely","detectedLanguage":"en","latestVersion":"27bd9aac726f","latestPublishedVersion":"27bd9aac726f","hasUnpublishedEdits":false,"latestRev":75,"createdAt":1619118329273,"updatedAt":1641515990130,"acceptedAt":0,"firstPublishedAt":1619124322693,"latestPublishedAt":1619124591351,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*gnBEMStC0Hn1AUxCUZuOuw.jpeg","filter":"","backgroundSize":"","originalWidth":2615,"originalHeight":1981,"strategy":"resample","height":0,"width":0},"wordCount":759,"imageCount":1,"readingTime":3.0641509433962266,"subtitle":"","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":15,"isBookmarked":false,"tags":[],"socialRecommendsCount":0,"responsesCreatedCount":6,"links":{"entries":[],"version":"0.3","generatedAt":1619124591526},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":149,"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"}]},"coverless":true,"slug":"empowering-teammates-and-thriving-remotely","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"empowering-teammates-and-thriving-remotely-7541bf80eaca","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*gnBEMStC0Hn1AUxCUZuOuw.jpeg","originalWidth":2615,"originalHeight":1981,"isFeatured":true}},{"name":"e7da","type":3,"text":"Empowering Teammates and Thriving Remotely","markups":[],"alignment":1},{"name":"e36a","type":3,"text":"Humble beginnings","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":""},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":"e7da","type":3,"text":"Empowering Teammates and Thriving Remotely","markups":[]},{"name":"e36a","type":3,"text":"Humble beginnings","markups":[]},{"name":"de9e","type":1,"text":"This past winter, I interned as a Software Engineer at Coursera on the Growth Acquisition Team. When joining my team in January, I had a slight fear I would have a hard time fitting into my team because of the remote working environment and previous experiences with remote academic projects…","markups":[]}],"sections":[{"name":"b451","startIndex":0}]},"isFullContent":false,"subtitle":""},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"3382f0711c24":{"id":"3382f0711c24","versionId":"21d1ebd9fc27","creatorId":"36e5b8f4c18f","homeCollectionId":"532b19e4043c","title":"Creating an Engineering Vision","detectedLanguage":"en","latestVersion":"21d1ebd9fc27","latestPublishedVersion":"21d1ebd9fc27","hasUnpublishedEdits":false,"latestRev":122,"createdAt":1610406214160,"updatedAt":1640572996315,"acceptedAt":0,"firstPublishedAt":1610475997350,"latestPublishedAt":1610476238756,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"In this blog post, we share how we drafted a three-year engineering vision, one-year engineering OKRs and the process we used to get there.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*Fgdi_CkCVWnfZGeGFkLUnQ.png","filter":"","backgroundSize":"","originalWidth":592,"originalHeight":526,"strategy":"resample","height":0,"width":0},"wordCount":1373,"imageCount":1,"readingTime":5.381132075471698,"subtitle":"In this blog post, we share how we drafted a three-year engineering vision, one-year engineering OKRs and the process we used to get there.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":97,"isBookmarked":false,"tags":[{"slug":"leadership","name":"Leadership","postCount":293849,"metadata":{"postCount":293849,"coverImage":{"id":"1*x3eOBvKInrpkalYofhODIQ.jpeg"}},"type":"Tag"},{"slug":"vision","name":"Vision","postCount":13686,"metadata":{"postCount":13686,"coverImage":{"id":"1*c7Yl6Q__hfjAnYn-DaCtXA.jpeg","originalWidth":816,"originalHeight":1456,"isFeatured":true}},"type":"Tag"},{"slug":"engineering","name":"Engineering","postCount":56462,"metadata":{"postCount":56462,"coverImage":{"id":"1*Ztjsdd4j4skhPERiV-NB8w.jpeg","originalWidth":1000,"originalHeight":532,"isFeatured":true}},"type":"Tag"},{"slug":"management","name":"Management","postCount":94190,"metadata":{"postCount":94190,"coverImage":{"id":"1*iA2gos6-vtBzDWtSNX16PQ.jpeg","originalWidth":2250,"originalHeight":1617,"isFeatured":true,"alt":"Staying or gowing away"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":7,"links":{"entries":[{"url":"https://www.linkedin.com/in/richardcywong/","alts":[],"httpStatus":999},{"url":"https://www.whatmatters.com/faqs/okr-meaning-definition-example/","alts":[{"type":1,"url":"https://cdn.ampproject.org/c/s/www.whatmatters.com/amp/faqs/okr-meaning-definition-example/"}],"httpStatus":200},{"url":"https://www.linkedin.com/in/phil-cayting-2349824/","alts":[],"httpStatus":999},{"url":"https://www.linkedin.com/in/raghavpasari/","alts":[],"httpStatus":999}],"version":"0.3","generatedAt":1610476238885},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":531,"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":"creating-an-engineering-vision","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"creating-an-engineering-vision-3382f0711c24","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*Fgdi_CkCVWnfZGeGFkLUnQ.png","originalWidth":592,"originalHeight":526,"isFeatured":true,"alt":"Visual description of eng vision process"}},{"name":"previewTitle","type":3,"text":"Creating an Engineering Vision","alignment":1},{"name":"previewSubtitle","type":13,"text":"In this blog post, we share how we drafted a three-year engineering…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"In this blog post, we share how we drafted a three-year engineering vision, one-year engineering OKRs and the process we used to get there."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":"cac4","type":3,"text":"Creating an Engineering Vision","markups":[]},{"name":"776b","type":3,"text":"Background","markups":[]},{"name":"bd29","type":1,"text":"As a company scales to more people and more technology, it becomes important to have an engineering vision and a strategy to get there. In our experience, as you get to a size of greater than ~40 folks in an engineering organization, it becomes critical to have an engineering vision…","markups":[{"type":2,"start":245,"end":253}]}],"sections":[{"name":"a9a7","startIndex":0}]},"isFullContent":false,"subtitle":"In this blog post, we share how we drafted a three-year engineering vision, one-year engineering OKRs and the process we used to get there."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"df576af72502":{"id":"df576af72502","versionId":"d2564e272e41","creatorId":"2dafa94ed5f7","homeCollectionId":"532b19e4043c","title":"Remote Internship Survival Guide","detectedLanguage":"en","latestVersion":"d2564e272e41","latestPublishedVersion":"d2564e272e41","hasUnpublishedEdits":false,"latestRev":41,"createdAt":1608229816731,"updatedAt":1640339798048,"acceptedAt":0,"firstPublishedAt":1608238546798,"latestPublishedAt":1608238546798,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"When I started my internship as a software engineer at Coursera amidst the pandemic this fall, I was excited to finally have a chance to…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*c5QwAdHUsd7_Egmr2yQogw.png","filter":"","backgroundSize":"","originalWidth":3584,"originalHeight":2240,"strategy":"resample","height":0,"width":0},"wordCount":763,"imageCount":1,"readingTime":3.079245283018868,"subtitle":"When I started my internship as a software engineer at Coursera amidst the pandemic this fall, I was excited to finally have a chance to…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":23,"isBookmarked":false,"tags":[{"slug":"remote-working","name":"Remote Working","postCount":46198,"metadata":{"postCount":46198,"coverImage":{"id":"1*q4OjFQZ_CZAqqwErhwjr2w.jpeg","originalWidth":981,"originalHeight":939}},"type":"Tag"},{"slug":"engineering","name":"Engineering","postCount":56462,"metadata":{"postCount":56462,"coverImage":{"id":"1*Ztjsdd4j4skhPERiV-NB8w.jpeg","originalWidth":1000,"originalHeight":532,"isFeatured":true}},"type":"Tag"},{"slug":"internships","name":"Internships","postCount":28847,"metadata":{"postCount":28847,"coverImage":{"id":"1*09kmycAJy-90yPqoUq1_KQ.jpeg","originalWidth":720,"originalHeight":736}},"type":"Tag"},{"slug":"work-life-balance","name":"Work Life Balance","postCount":57298,"metadata":{"postCount":57298,"coverImage":{"id":"1*j14zbTD8GgMFuPPydvgoeA.jpeg","originalWidth":1120,"originalHeight":1120,"isFeatured":true}},"type":"Tag"},{"slug":"work-from-home","name":"Work From Home","postCount":40734,"metadata":{"postCount":40734,"coverImage":{"id":"0*CSTTlbe8s-dCQCQB","originalWidth":6480,"originalHeight":4320,"isFeatured":true,"alt":"Woman sitting on the floor relaxed, typing on her computer and learning how to write an ebook and make money.","unsplashPhotoId":"Nv-vx3kUR2A"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":4,"links":{"entries":[],"version":"0.3","generatedAt":1608238546959},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":399,"sectionCount":2,"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"}]},"coverless":true,"slug":"remote-internship-survival-guide","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"remote-internship-survival-guide-df576af72502","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*c5QwAdHUsd7_Egmr2yQogw.png","originalWidth":3584,"originalHeight":2240,"isFeatured":true}},{"name":"8037","type":3,"text":"Remote Internship Survival Guide","markups":[],"alignment":1},{"name":"a272","type":1,"text":"When I started my internship as a software engineer at Coursera amidst the pandemic this fall, I was…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"When I started my internship as a software engineer at Coursera amidst the pandemic this fall, I was excited to finally have a chance to…"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":"8037","type":3,"text":"Remote Internship Survival Guide","markups":[]},{"name":"a272","type":1,"text":"When I started my internship as a software engineer at Coursera amidst the pandemic this fall, I was excited to finally have a chance to work from home. Getting an extra hour of sleep and skipping the brutal winter commute in Toronto were things I had only dreamed of in…","markups":[]}],"sections":[{"name":"5b2b","startIndex":0}]},"isFullContent":false,"subtitle":"When I started my internship as a software engineer at Coursera amidst the pandemic this fall, I was excited to finally have a chance to…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"493905a95364":{"id":"493905a95364","versionId":"58e90d4daa10","creatorId":"36e5b8f4c18f","homeCollectionId":"532b19e4043c","title":"Growing Coursera’s first team outside Silicon Valley","detectedLanguage":"en","latestVersion":"58e90d4daa10","latestPublishedVersion":"58e90d4daa10","hasUnpublishedEdits":false,"latestRev":308,"createdAt":1591714368654,"updatedAt":1639519550742,"acceptedAt":0,"firstPublishedAt":1592408355658,"latestPublishedAt":1592413163843,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"First steps towards a distributed team","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*NxLCnXWAEA1-sONe","filter":"","backgroundSize":"","originalWidth":1600,"originalHeight":1067,"strategy":"resample","height":0,"width":0},"wordCount":1010,"imageCount":1,"readingTime":4.011320754716981,"subtitle":"First steps towards a distributed team","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":57,"isBookmarked":false,"tags":[{"slug":"remote-working","name":"Remote Working","postCount":46198,"metadata":{"postCount":46198,"coverImage":{"id":"1*q4OjFQZ_CZAqqwErhwjr2w.jpeg","originalWidth":981,"originalHeight":939}},"type":"Tag"},{"slug":"distributed-teams","name":"Distributed Teams","postCount":1177,"metadata":{"postCount":1177,"coverImage":{"id":"1*BGwiziSYu4x_BQGHPmoDZg.jpeg","originalWidth":6912,"originalHeight":3456,"isFeatured":true}},"type":"Tag"},{"slug":"coursera","name":"Coursera","postCount":3081,"metadata":{"postCount":3081,"coverImage":{"id":"1*dEhjkUvgQyoNaErpvwTO-Q.png","originalWidth":1200,"originalHeight":600,"isFeatured":true}},"type":"Tag"},{"slug":"engineering-mangement","name":"Engineering Mangement","postCount":4888,"metadata":{"postCount":4888,"coverImage":{"id":"1*hrjJ3SqpTiGLQxHHzsaBUQ.jpeg","originalWidth":1800,"originalHeight":1169,"isFeatured":true}},"type":"Tag"},{"slug":"team-building","name":"Team Building","postCount":15840,"metadata":{"postCount":15840,"coverImage":{"id":"1*uH703ODbCxwPvgT-0UNVgQ.png","originalWidth":1333,"originalHeight":656,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":7,"links":{"entries":[{"url":"https://www.linkedin.com/in/raghavpasari/","alts":[],"httpStatus":999},{"url":"https://www.linkedin.com/in/richardcywong/","alts":[],"httpStatus":999},{"url":"https://gsuite.google.com/products/jamboard/","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/campus/","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/coronavirus-response","alts":[],"httpStatus":200},{"url":"https://about.coursera.org/careers/","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1592413164256},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":1290,"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"}]},"coverless":true,"slug":"growing-courseras-first-team-outside-silicon-valley","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"growing-courseras-first-team-outside-silicon-valley-493905a95364","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*NxLCnXWAEA1-sONe","originalWidth":1600,"originalHeight":1067,"isFeatured":true}},{"name":"6216","type":3,"text":"Growing Coursera’s first team outside Silicon Valley","markups":[{"type":1,"start":0,"end":52}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"First steps towards a distributed team"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":"6216","type":3,"text":"Growing Coursera’s first team outside Silicon Valley","markups":[{"type":1,"start":0,"end":52}]},{"name":"e48f","type":1,"text":"First steps towards a distributed team","markups":[{"type":1,"start":0,"end":38}]},{"name":"5bf1","type":1,"text":"As Coursera was growing its business, we wanted to grow our engineering team outside Silicon Valley. Great talent can be found all around the world, and we wanted to be more flexible in our hiring so we could bring more talented people into our…","markups":[]}],"sections":[{"name":"1e91","startIndex":0}]},"isFullContent":false,"subtitle":"First steps towards a distributed team"},"cardType":0,"isDistributionAlertDismissed":true,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"3296af2805db":{"id":"3296af2805db","versionId":"8b25fb505b8","creatorId":"15fc9548e39d","homeCollectionId":"532b19e4043c","title":"Get to know Coursera Engineer Bryan Rivera","detectedLanguage":"en","latestVersion":"8b25fb505b8","latestPublishedVersion":"8b25fb505b8","hasUnpublishedEdits":false,"latestRev":151,"createdAt":1588277365861,"updatedAt":1639472437645,"acceptedAt":0,"firstPublishedAt":1588282259712,"latestPublishedAt":1588285008109,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Meet Bryan R., who cares about creating products that serve underrepresented communities. Bryan started as an intern at Coursera during a…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*xe25U1ZB_mXO5r2xKxzlcw.jpeg","filter":"","backgroundSize":"","originalWidth":4032,"originalHeight":3024,"strategy":"resample","height":0,"width":0},"wordCount":838,"imageCount":1,"readingTime":3.3622641509433966,"subtitle":"Meet Bryan R., who cares about creating products that serve underrepresented communities. Bryan started as an intern at Coursera during a…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":14,"isBookmarked":false,"tags":[{"slug":"education","name":"Education","postCount":591673,"metadata":{"postCount":591673,"coverImage":{"id":"1*dVmAyTviHMkGJq46uvrLcg.jpeg"}},"type":"Tag"},{"slug":"coursera","name":"Coursera","postCount":3081,"metadata":{"postCount":3081,"coverImage":{"id":"1*dEhjkUvgQyoNaErpvwTO-Q.png","originalWidth":1200,"originalHeight":600,"isFeatured":true}},"type":"Tag"},{"slug":"engineering","name":"Engineering","postCount":56462,"metadata":{"postCount":56462,"coverImage":{"id":"1*Ztjsdd4j4skhPERiV-NB8w.jpeg","originalWidth":1000,"originalHeight":532,"isFeatured":true}},"type":"Tag"},{"slug":"careers","name":"Careers","postCount":135810,"metadata":{"postCount":135810,"coverImage":{"id":"1*et0BZhe6IgxafOBJRr-aeA@2x.jpeg","originalWidth":2687,"originalHeight":4032,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":5,"links":{"entries":[{"url":"https://blog.coursera.org/new-lgbtq-courses-free-high-quality-resources-for-allyship-and-awareness/","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/learn/family-planning","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1588285008976},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":219,"sectionCount":2,"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"}]},"coverless":true,"slug":"get-to-know-coursera-engineer-bryan-rivera","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"get-to-know-coursera-engineer-bryan-rivera-3296af2805db","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*xe25U1ZB_mXO5r2xKxzlcw.jpeg","originalWidth":4032,"originalHeight":3024,"isFeatured":true}},{"name":"previewTitle","type":3,"text":"Get to know Coursera Engineer Bryan Rivera","alignment":1},{"name":"previewSubtitle","type":13,"text":"Meet Bryan R., who cares about creating products that serve…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Meet Bryan R., who cares about creating products that serve underrepresented communities. Bryan started as an intern at Coursera during a…"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":1588280445742,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"3f05","type":3,"text":"Get to know Coursera Engineer Bryan Rivera","markups":[]},{"name":"6676","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*xe25U1ZB_mXO5r2xKxzlcw.jpeg","originalWidth":4032,"originalHeight":3024,"isFeatured":true}},{"name":"d04c","type":1,"text":"To introduce, I started as an intern at Coursera during a summer break from the University of Florida, and now I am a software engineer on the Growth team. One of my biggest passions is creating products that serve underrepresented communities.","markups":[{"type":2,"start":0,"end":244}]},{"name":"4d8d","type":13,"text":"Tell me about your role at Coursera. What do you do?","markups":[{"type":1,"start":0,"end":52}]},{"name":"e97c","type":1,"text":"Currently, I am a Front-End Software Engineer working to…","markups":[]}],"sections":[{"name":"2a5e","startIndex":0},{"name":"b94e","startIndex":3}]},"isFullContent":false,"subtitle":"Meet Bryan R., who cares about creating products that serve underrepresented communities. Bryan started as an intern at Coursera during a…"},"cardType":0,"isDistributionAlertDismissed":true,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"dd82bb25a0f1":{"id":"dd82bb25a0f1","versionId":"5ade7c76a82d","creatorId":"8c25ad9d3047","homeCollectionId":"532b19e4043c","title":"Regression Discontinuity: Understanding the Benefit of Subtitles on Coursera","detectedLanguage":"en","latestVersion":"5ade7c76a82d","latestPublishedVersion":"5ade7c76a82d","hasUnpublishedEdits":false,"latestRev":101,"createdAt":1586368051531,"updatedAt":1706653415834,"acceptedAt":0,"firstPublishedAt":1586455261078,"latestPublishedAt":1602629924723,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"This is Part III of our Causal Impact @ Coursera series. (Part II is here)","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*QVmNYqRKOPijOsQd","filter":"","backgroundSize":"","originalWidth":626,"originalHeight":444,"strategy":"resample","height":0,"width":0},"wordCount":632,"imageCount":1,"readingTime":2.5849056603773586,"subtitle":"This is Part III of our Causal Impact @ Coursera series. (Part II is here)","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":10,"isBookmarked":false,"tags":[{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"statistics","name":"Statistics","postCount":33662,"metadata":{"postCount":33662,"coverImage":{"id":"1*o1TEM-f7h6kCYOTGOfw0GQ.jpeg","originalWidth":2048,"originalHeight":1536,"isFeatured":true,"alt":"A small child and their distorted reflection in a funfair house of mirrors"}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":354197,"metadata":{"postCount":354197,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"data","name":"Data","postCount":130309,"metadata":{"postCount":130309,"coverImage":{"id":"1*PsM-xK3N1J3GKAZDAAM1UQ.png","originalWidth":2048,"originalHeight":1152,"isFeatured":true}},"type":"Tag"},{"slug":"education","name":"Education","postCount":591673,"metadata":{"postCount":591673,"coverImage":{"id":"1*dVmAyTviHMkGJq46uvrLcg.jpeg"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":14,"links":{"entries":[{"url":"https://about.coursera.org/careers/careers/opportunities/data-science/","alts":[],"httpStatus":404},{"url":"https://medium.com/coursera-engineering/instrumental-variables-randomized-encouragement-trials-driving-engagement-of-learners-621215e9e3f1","alts":[{"type":3,"url":"medium://p/621215e9e3f1"},{"type":2,"url":"medium://p/621215e9e3f1"}],"httpStatus":200},{"url":"https://coursera.community/gtc-news-announcements-17/join-the-coursera-global-translator-community-45","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1602629925576},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":95,"sectionCount":2,"readingList":0,"topics":[{"topicId":"a205669c739e","slug":"education","createdAt":1493934008418,"deletedAt":0,"image":{"id":"1*T4rtHBuFYlSoP4OuU9W0yQ@2x.jpeg","originalWidth":5536,"originalHeight":3691},"name":"Education","description":"Live it, learn it.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"News and Articles About Education — 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":"regression-discontinuity-understanding-the-benefit-of-subtitles-on-coursera","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"regression-discontinuity-understanding-the-benefit-of-subtitles-on-coursera-dd82bb25a0f1","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*QVmNYqRKOPijOsQd","originalWidth":626,"originalHeight":444,"isFeatured":true}},{"name":"729a","type":3,"text":"Regression Discontinuity: Understanding the Benefit of Subtitles on Coursera","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"This is Part III of our Causal Impact @ Coursera series. (Part II is here)"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":"729a","type":3,"text":"Regression Discontinuity: Understanding the Benefit of Subtitles on Coursera","markups":[]},{"name":"46a4","type":1,"text":"This is Part III of our Causal Impact @ Coursera series. (Part II is here)","markups":[{"type":3,"start":69,"end":73,"href":"https://medium.com/coursera-engineering/instrumental-variables-randomized-encouragement-trials-driving-engagement-of-learners-621215e9e3f1","title":"","rel":"","anchorType":0},{"type":2,"start":0,"end":74}]},{"name":"b6b2","type":1,"text":"At Coursera we use data to power strategic decision making, leveraging a variety of causal inference techniques to inform our product and business roadmaps. In this causal inference series, we will show how we utilize…","markups":[]}],"sections":[{"name":"6533","startIndex":0}]},"isFullContent":false,"subtitle":"This is Part III of our Causal Impact @ Coursera series. (Part II is here)"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"491b6a7e0708":{"id":"491b6a7e0708","versionId":"299b3ed8a6c7","creatorId":"db2f2af1172b","homeCollectionId":"532b19e4043c","title":"Improving Site Performance With Tree Shaking","detectedLanguage":"en","latestVersion":"299b3ed8a6c7","latestPublishedVersion":"299b3ed8a6c7","hasUnpublishedEdits":false,"latestRev":254,"createdAt":1578586129309,"updatedAt":1639368999801,"acceptedAt":0,"firstPublishedAt":1578618701823,"latestPublishedAt":1581114723675,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Introduction to Tree Shaking","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*eOLNrh1SKrY_fScgjGKnHA.jpeg","filter":"","backgroundSize":"","originalWidth":3264,"originalHeight":2448,"strategy":"resample","height":0,"width":0},"wordCount":1350,"imageCount":2,"readingTime":5.477672955974843,"subtitle":"Introduction to Tree Shaking","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":56,"isBookmarked":false,"tags":[{"slug":"javascript","name":"JavaScript","postCount":285856,"metadata":{"postCount":285856,"coverImage":{"id":"0*BTaIEoMZlgOipidp","originalWidth":6016,"originalHeight":4016,"isFeatured":true,"unsplashPhotoId":"qDY9ahp0Mto"}},"type":"Tag"},{"slug":"webpack","name":"Webpack","postCount":4887,"metadata":{"postCount":4887,"coverImage":{"id":"0*irhh04O_ilbFHtDI","originalWidth":4515,"originalHeight":3010,"unsplashPhotoId":"UYsBCu9RP3Y"}},"type":"Tag"},{"slug":"performance","name":"Performance","postCount":29126,"metadata":{"postCount":29126,"coverImage":{"id":"1*KNsJIR3pEoni-r-QimaAjQ.jpeg","originalWidth":976,"originalHeight":549}},"type":"Tag"},{"slug":"coursera","name":"Coursera","postCount":3081,"metadata":{"postCount":3081,"coverImage":{"id":"1*dEhjkUvgQyoNaErpvwTO-Q.png","originalWidth":1200,"originalHeight":600,"isFeatured":true}},"type":"Tag"},{"slug":"frontend","name":"Frontend","postCount":17774,"metadata":{"postCount":17774,"coverImage":{"id":"1*iQlVLknVYtd9DrHJhYnAJQ.png","originalWidth":877,"originalHeight":479,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":3,"links":{"entries":[{"url":"https://webpack.js.org/guides/tree-shaking/","alts":[],"httpStatus":200},{"url":"https://about.coursera.org/careers","alts":[],"httpStatus":200},{"url":"https://www.npmjs.com/package/babel-plugin-lodash","alts":[],"httpStatus":200},{"url":"https://github.com/5to6/5to6-codemod","alts":[],"httpStatus":200},{"url":"https://github.com/webpack-contrib/bundle-loader","alts":[],"httpStatus":200},{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import","alts":[],"httpStatus":200},{"url":"https://medium.com/coursera-engineering/webpack-3-to-4-facing-the-known-unknowns-and-unknown-unknowns-cdfeb817faf8","alts":[{"type":2,"url":"medium://p/cdfeb817faf8"},{"type":3,"url":"medium://p/cdfeb817faf8"}],"httpStatus":200}],"version":"0.3","generatedAt":1581114724772},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":1547,"sectionCount":1,"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"}]},"coverless":true,"slug":"improving-site-performance-with-tree-shaking","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"improving-site-performance-with-tree-shaking-491b6a7e0708","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*eOLNrh1SKrY_fScgjGKnHA.jpeg","originalWidth":3264,"originalHeight":2448,"isFeatured":true}},{"name":"previewTitle","type":3,"text":"Improving Site Performance With Tree Shaking","alignment":1},{"name":"previewSubtitle","type":13,"text":"Introduction to Tree Shaking","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Introduction to Tree Shaking"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":"6945","type":3,"text":"Improving Site Performance With Webpack Tree Shaking","markups":[]},{"name":"e7a0","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*eOLNrh1SKrY_fScgjGKnHA.jpeg","originalWidth":3264,"originalHeight":2448,"isFeatured":true}},{"name":"9112","type":3,"text":"Introduction to Tree Shaking","markups":[]},{"name":"5654","type":1,"text":"At Coursera, we’re constantly modernizing our code base. Whether it’s the programming language or third-party dependencies, our tools do the most for us when we keep them up to date, helping improve developer productivity and application performance. In this blog post, we’ll discuss our approach to improving site performance with…","markups":[{"type":3,"start":171,"end":181,"href":"https://medium.com/coursera-engineering/webpack-3-to-4-facing-the-known-unknowns-and-unknown-unknowns-cdfeb817faf8","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"5fa4","startIndex":0}]},"isFullContent":false,"subtitle":"Introduction to Tree Shaking"},"cardType":0,"isDistributionAlertDismissed":true,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"878d40c45e77":{"id":"878d40c45e77","versionId":"72e820a8fe3d","creatorId":"5bb4dcd49b0f","homeCollectionId":"532b19e4043c","title":"[Life@Coursera]: Why I chose Coursera as my first engineering job out of college","detectedLanguage":"en","latestVersion":"72e820a8fe3d","latestPublishedVersion":"72e820a8fe3d","hasUnpublishedEdits":false,"latestRev":60,"createdAt":1574277207650,"updatedAt":1639329869952,"acceptedAt":0,"firstPublishedAt":1574431261721,"latestPublishedAt":1574431261721,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"How do you even begin to decide where you should work after graduation? Where, as in location? Company? Team?","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*L3vpZnvH_hQX49PWJ-mlnw.jpeg","filter":"","backgroundSize":"","originalWidth":5223,"originalHeight":3482,"strategy":"resample","height":0,"width":0},"wordCount":598,"imageCount":1,"readingTime":2.456603773584906,"subtitle":"How do you even begin to decide where you should work after graduation? Where, as in location? Company? Team?","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":44,"isBookmarked":false,"tags":[{"slug":"startup","name":"Startup","postCount":644859,"metadata":{"postCount":644859,"coverImage":{"id":"1*22RsJ-7NHWOqbpqOFCv8Vw.jpeg"}},"type":"Tag"},{"slug":"education","name":"Education","postCount":591673,"metadata":{"postCount":591673,"coverImage":{"id":"1*dVmAyTviHMkGJq46uvrLcg.jpeg"}},"type":"Tag"},{"slug":"coursera","name":"Coursera","postCount":3081,"metadata":{"postCount":3081,"coverImage":{"id":"1*dEhjkUvgQyoNaErpvwTO-Q.png","originalWidth":1200,"originalHeight":600,"isFeatured":true}},"type":"Tag"},{"slug":"engineering","name":"Engineering","postCount":56462,"metadata":{"postCount":56462,"coverImage":{"id":"1*Ztjsdd4j4skhPERiV-NB8w.jpeg","originalWidth":1000,"originalHeight":532,"isFeatured":true}},"type":"Tag"},{"slug":"careers","name":"Careers","postCount":135810,"metadata":{"postCount":135810,"coverImage":{"id":"1*et0BZhe6IgxafOBJRr-aeA@2x.jpeg","originalWidth":2687,"originalHeight":4032,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":3,"links":{"entries":[{"url":"https://about.coursera.org/careers/opportunities","alts":[],"httpStatus":404}],"version":"0.3","generatedAt":1574431262165},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":686,"sectionCount":2,"readingList":0,"topics":[]},"coverless":true,"slug":"life-coursera-why-i-chose-coursera-as-my-first-engineering-job-out-of-college","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"life-coursera-why-i-chose-coursera-as-my-first-engineering-job-out-of-college-878d40c45e77","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*L3vpZnvH_hQX49PWJ-mlnw.jpeg","originalWidth":5223,"originalHeight":3482,"isFeatured":true}},{"name":"764d","type":3,"text":"[Life@Coursera] Why I chose Coursera as my first engineering job out of college","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"How do you even begin to decide where you should work after graduation? Where, as in location? Company? Team?"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":"764d","type":3,"text":"[Life@Coursera] Why I chose Coursera as my first engineering job out of college","markups":[]},{"name":"6ac8","type":1,"text":"About the author: Cathy joined Coursera in August as a new grad engineer on the Growth Discovery Team. She is a mission-driven engineer who likes to “do good,” an avid cyclist who loves funky socks, and a major foodie who… loves food.","markups":[{"type":2,"start":0,"end":234}]},{"name":"1866","type":1,"text":"How do you even begin to decide where…","markups":[]}],"sections":[{"name":"a475","startIndex":0},{"name":"a50b","startIndex":2}]},"isFullContent":false,"subtitle":"How do you even begin to decide where you should work after graduation? Where, as in location? Company? Team?"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"62155768d595":{"id":"62155768d595","versionId":"7c5191618e3d","creatorId":"afbf744275c8","homeCollectionId":"532b19e4043c","title":"Engineering Onboarding Bootcamp@Coursera","detectedLanguage":"en","latestVersion":"7c5191618e3d","latestPublishedVersion":"7c5191618e3d","hasUnpublishedEdits":false,"latestRev":480,"createdAt":1569615976584,"updatedAt":1639319149895,"acceptedAt":0,"firstPublishedAt":1572885061974,"latestPublishedAt":1573494870524,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Building and launching Coursera’s first engineering onboarding bootcamp","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*VLBI5f7GssRqX-rqXVhHLg.jpeg","filter":"","backgroundSize":"","originalWidth":1920,"originalHeight":1280,"strategy":"resample","height":0,"width":0},"wordCount":1237,"imageCount":1,"readingTime":4.867924528301887,"subtitle":"Building and launching Coursera’s first engineering onboarding bootcamp","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":10,"isBookmarked":false,"tags":[{"slug":"startup","name":"Startup","postCount":644859,"metadata":{"postCount":644859,"coverImage":{"id":"1*22RsJ-7NHWOqbpqOFCv8Vw.jpeg"}},"type":"Tag"},{"slug":"engineering","name":"Engineering","postCount":56462,"metadata":{"postCount":56462,"coverImage":{"id":"1*Ztjsdd4j4skhPERiV-NB8w.jpeg","originalWidth":1000,"originalHeight":532,"isFeatured":true}},"type":"Tag"},{"slug":"onboarding-process","name":"Onboarding Process","postCount":750,"metadata":{"postCount":750,"coverImage":{"id":"1*ZR9imv5oq5WyJVe7IyId0Q.png","originalWidth":2048,"originalHeight":1104,"isFeatured":true}},"type":"Tag"},{"slug":"onboarding","name":"Onboarding","postCount":5918,"metadata":{"postCount":5918,"coverImage":{"id":"0*Lnof1Gc38JYxweWW","originalWidth":5024,"originalHeight":3349,"isFeatured":true,"unsplashPhotoId":"3XisDwg6jAE"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://about.coursera.org/careers/opportunities","alts":[],"httpStatus":404},{"url":"https://blog.coursera.org/coursera-expands-internationally-with-new-engineering-office-in-toronto/","alts":[],"httpStatus":200},{"url":"https://strategyn.com/customer-centered-innovation-map/?network=g&matchtype=e&keyword=jobs%20to%20be%20done%20framework&creative=268266038569&device=c&devicemodel=&placement=&position=1t1&campaignid=1394486382&adgroupid=57939303507&loc_physical_ms=9031922&loc_interest_ms=&gclid=EAIaIQobChMItISanvTp5AIVDMpkCh2TBwjWEAAYASAAEgKwx_D_BwE","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1573494871933},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":114,"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":"engineering-onboarding-bootcamp-coursera","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"engineering-onboarding-bootcamp-coursera-62155768d595","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*VLBI5f7GssRqX-rqXVhHLg.jpeg","originalWidth":1920,"originalHeight":1280}},{"name":"previewTitle","type":3,"text":"Engineering Onboarding Bootcamp@Coursera","alignment":1},{"name":"previewSubtitle","type":13,"text":"Building and launching Coursera’s first engineering…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Building and launching Coursera’s first engineering onboarding bootcamp"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":4,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":1569616224534,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"5b2b","type":3,"text":"Engineering Onboarding Bootcamp@Coursera","markups":[]},{"name":"ef1f","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*VLBI5f7GssRqX-rqXVhHLg.jpeg","originalWidth":1920,"originalHeight":1280}},{"name":"5748","type":1,"text":"In the 2018 Employee Pulse Survey (EPS) at Coursera, one big area of focus that emerged was “Engineers take a long time to ramp up with the tools and technologies that they need to be able to do their job.”","markups":[{"type":2,"start":93,"end":205}]},{"name":"14b8","type":1,"text":"Over the years, the Coursera engineering team had come to…","markups":[]}],"sections":[{"name":"12c0","startIndex":0}]},"isFullContent":false,"subtitle":"Building and launching Coursera’s first engineering onboarding bootcamp"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"621215e9e3f1":{"id":"621215e9e3f1","versionId":"fd9d03313580","creatorId":"8c25ad9d3047","homeCollectionId":"532b19e4043c","title":"Instrumental Variables & Randomized Encouragement Trials: Driving Engagement of Learners","detectedLanguage":"en","latestVersion":"fd9d03313580","latestPublishedVersion":"fd9d03313580","hasUnpublishedEdits":false,"latestRev":149,"createdAt":1562704332850,"updatedAt":1639296711818,"acceptedAt":0,"firstPublishedAt":1571417162722,"latestPublishedAt":1602629909791,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"This is Part II of our Causal Impact @ Coursera series. (Part I is here)","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*0uwrcBNjldyexHSC","filter":"","backgroundSize":"","originalWidth":790,"originalHeight":700,"strategy":"resample","height":0,"width":0},"wordCount":791,"imageCount":3,"readingTime":3.5349056603773583,"subtitle":"This is Part II of our Causal Impact @ Coursera series. (Part I is here)","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":13,"isBookmarked":false,"tags":[{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":354197,"metadata":{"postCount":354197,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"education","name":"Education","postCount":591673,"metadata":{"postCount":591673,"coverImage":{"id":"1*dVmAyTviHMkGJq46uvrLcg.jpeg"}},"type":"Tag"},{"slug":"statistics","name":"Statistics","postCount":33662,"metadata":{"postCount":33662,"coverImage":{"id":"1*o1TEM-f7h6kCYOTGOfw0GQ.jpeg","originalWidth":2048,"originalHeight":1536,"isFeatured":true,"alt":"A small child and their distorted reflection in a funfair house of mirrors"}},"type":"Tag"},{"slug":"online-education","name":"Online Education","postCount":6917,"metadata":{"postCount":6917,"coverImage":{"id":"1*m1vc2W6B-zXhrpvVnqr_hw.jpeg","originalWidth":800,"originalHeight":533}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":4,"links":{"entries":[{"url":"https://about.coursera.org/careers/opportunities","alts":[],"httpStatus":404},{"url":"https://medium.com/@alanhickey0502","alts":[{"type":2,"url":"medium://@alanhickey0502"},{"type":3,"url":"medium://@alanhickey0502"}],"httpStatus":200},{"url":"https://medium.com/coursera-engineering/controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention-31f956bd592a","alts":[{"type":3,"url":"medium://p/31f956bd592a"},{"type":2,"url":"medium://p/31f956bd592a"}],"httpStatus":200},{"url":"https://www.coursera.org/lecture/crash-course-in-causality/introduction-to-instrumental-variables-ueIMD","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1602629911233},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":123,"sectionCount":1,"readingList":0,"topics":[{"topicId":"a205669c739e","slug":"education","createdAt":1493934008418,"deletedAt":0,"image":{"id":"1*T4rtHBuFYlSoP4OuU9W0yQ@2x.jpeg","originalWidth":5536,"originalHeight":3691},"name":"Education","description":"Live it, learn it.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"News and Articles About Education — 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":"instrumental-variables-randomized-encouragement-trials-driving-engagement-of-learners","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"instrumental-variables-randomized-encouragement-trials-driving-engagement-of-learners-621215e9e3f1","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*0uwrcBNjldyexHSC","originalWidth":790,"originalHeight":700,"isFeatured":true}},{"name":"b982","type":3,"text":"Instrumental Variables & Randomized Encouragement Trials: Driving Engagement of Learners","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"This is Part II of our Causal Impact @ Coursera series. (Part I is here)"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":4,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":1571413655753,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"b982","type":3,"text":"Instrumental Variables & Randomized Encouragement Trials: Driving Engagement of Learners","markups":[]},{"name":"e718","type":1,"text":"This is Part II of our Causal Impact @ Coursera series. (Part I is here)","markups":[{"type":3,"start":67,"end":71,"href":"https://medium.com/coursera-engineering/controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention-31f956bd592a","title":"","rel":"","anchorType":0},{"type":2,"start":0,"end":72}]},{"name":"8691","type":1,"text":"Coauthored with Alan Hickey, Data Scientist at Coursera","markups":[{"type":3,"start":16,"end":27,"href":"https://medium.com/@alanhickey0502","title":"","rel":"noopener","anchorType":0},{"type":2,"start":0,"end":55}]},{"name":"643c","type":1,"text":"At Coursera we use data to power strategic decision making, leveraging a variety of causal inference techniques to inform our product and business roadmaps. In this causal…","markups":[]}],"sections":[{"name":"d29b","startIndex":0}]},"isFullContent":false,"subtitle":"This is Part II of our Causal Impact @ Coursera series. (Part I is here)"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"2f6070083bda":{"id":"2f6070083bda","versionId":"db5e45d795e0","creatorId":"e8d286bb099f","homeCollectionId":"532b19e4043c","title":"Order from Chaos: Understanding Search Queries through Vectors","detectedLanguage":"en","latestVersion":"db5e45d795e0","latestPublishedVersion":"db5e45d795e0","hasUnpublishedEdits":false,"latestRev":446,"createdAt":1568257527353,"updatedAt":1639245050796,"acceptedAt":0,"firstPublishedAt":1568394809296,"latestPublishedAt":1568394809296,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"The Query2Vec pipeline and a foray into word embeddings","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*ZDjKiqrnmLj29xO6f5mqLQ.png","filter":"","backgroundSize":"","originalWidth":2760,"originalHeight":882,"strategy":"resample","height":0,"width":0},"wordCount":1154,"imageCount":8,"readingTime":5.48805031446541,"subtitle":"The Query2Vec pipeline and a foray into word embeddings","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":65,"isBookmarked":false,"tags":[{"slug":"machine-learning","name":"Machine Learning","postCount":354197,"metadata":{"postCount":354197,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"word2vec","name":"Word2vec","postCount":794,"metadata":{"postCount":794,"coverImage":{"id":"1*omczhGtrK0s58vapUVuG1g.png","originalWidth":1390,"originalHeight":416,"isFeatured":true}},"type":"Tag"},{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"search","name":"Search","postCount":8673,"metadata":{"postCount":8673,"coverImage":{"id":"1*dtgu1vA6U5d94yGNdsY-mg.png","originalWidth":1654,"originalHeight":904,"isFeatured":true}},"type":"Tag"},{"slug":"data","name":"Data","postCount":130309,"metadata":{"postCount":130309,"coverImage":{"id":"1*PsM-xK3N1J3GKAZDAAM1UQ.png","originalWidth":2048,"originalHeight":1152,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":4,"links":{"entries":[{"url":"https://www.linkedin.com/in/jaya-chavern-4baa35125/","alts":[],"httpStatus":999},{"url":"https://www.linkedin.com/in/allierogers/","alts":[],"httpStatus":999},{"url":"https://about.coursera.org/careers/opportunities","alts":[],"httpStatus":404},{"url":"https://fasttext.cc/","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1702.08734","alts":[],"httpStatus":200},{"url":"https://medium.com/coursera-engineering/data-driven-content-categorization-89de0104bcbd","alts":[{"type":3,"url":"medium://p/89de0104bcbd"},{"type":2,"url":"medium://p/89de0104bcbd"}],"httpStatus":200},{"url":"https://papers.nips.cc/paper/5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1568395105357},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":512,"sectionCount":3,"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":"order-from-chaos-understanding-search-queries-through-vectors","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"query2vec-2f6070083bda","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*ZDjKiqrnmLj29xO6f5mqLQ.png","originalWidth":2760,"originalHeight":882,"isFeatured":true}},{"name":"e7d4","type":3,"text":"Order from Chaos: Understanding Search Queries through Vectors","markups":[],"alignment":1},{"name":"e2ca","type":13,"text":"The Query2Vec pipeline and a foray into…","markups":[{"type":2,"start":0,"end":39}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"The Query2Vec pipeline and a foray into word embeddings"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":1568261958223,"primaryTopicId":"ae5d4995e225","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"e7d4","type":3,"text":"Order from Chaos: Understanding Search Queries through Vectors","markups":[]},{"name":"e2ca","type":13,"text":"The Query2Vec pipeline and a foray into word embeddings","markups":[{"type":2,"start":0,"end":55}]},{"name":"99a9","type":1,"text":"How do learners browse around as a result of different searches? What topics are they looking for that we currently don’t provide? By examining search queries and their patterns, we can gauge learners’ interests and improve the site experience.","markups":[]},{"name":"9a6a","type":1,"text":"Sifting through queries to understand how our content is discovered, I…","markups":[]}],"sections":[{"name":"a465","startIndex":0}]},"isFullContent":false,"subtitle":"The Query2Vec pipeline and a foray into word embeddings"},"cardType":0,"isDistributionAlertDismissed":true,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"4c587a4ad9a8":{"id":"4c587a4ad9a8","versionId":"bc99088b21ab","creatorId":"d987eade03ed","homeCollectionId":"532b19e4043c","title":"Evolving the Graph","detectedLanguage":"en","latestVersion":"bc99088b21ab","latestPublishedVersion":"bc99088b21ab","hasUnpublishedEdits":false,"latestRev":1298,"createdAt":1561010488245,"updatedAt":1639225332687,"acceptedAt":0,"firstPublishedAt":1566955717849,"latestPublishedAt":1566966754943,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"We’ve been using GraphQL at Coursera for over three years, and we’ve learned a lot of lessons along the way. Learn what stuck & what…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*y5d4rT_fu3VF3bNs","filter":"","backgroundSize":"","originalWidth":2172,"originalHeight":1138,"strategy":"resample","height":0,"width":0},"wordCount":2118,"imageCount":4,"readingTime":8.692452830188678,"subtitle":"We’ve been using GraphQL at Coursera for over three years, and we’ve learned a lot of lessons along the way. Learn what stuck & what…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":17,"isBookmarked":false,"tags":[{"slug":"graphql","name":"GraphQL","postCount":10826,"metadata":{"postCount":10826,"coverImage":{"id":"1*6eiJ7I-LHclHcik265-rkQ.png","originalWidth":800,"originalHeight":400,"isFeatured":true}},"type":"Tag"},{"slug":"sangria","name":"Sangria","postCount":89,"metadata":{"postCount":89,"coverImage":{"id":"0*qVFR6K5i8OaSrJ1c","originalWidth":660,"originalHeight":1024,"isFeatured":true}},"type":"Tag"},{"slug":"javascript","name":"JavaScript","postCount":285856,"metadata":{"postCount":285856,"coverImage":{"id":"0*BTaIEoMZlgOipidp","originalWidth":6016,"originalHeight":4016,"isFeatured":true,"unsplashPhotoId":"qDY9ahp0Mto"}},"type":"Tag"},{"slug":"schema-first-design","name":"Schema First Design","postCount":0,"metadata":{"postCount":0,"coverImage":{"id":"0*y5d4rT_fu3VF3bNs","originalWidth":2172,"originalHeight":1138,"isFeatured":true}},"type":"Tag"},{"slug":"frontend","name":"Frontend","postCount":17774,"metadata":{"postCount":17774,"coverImage":{"id":"1*iQlVLknVYtd9DrHJhYnAJQ.png","originalWidth":877,"originalHeight":479,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://about.coursera.org/careers/opportunities/engineering","alts":[],"httpStatus":404},{"url":"https://reactjs.org/blog/2015/05/01/graphql-introduction.html","alts":[],"httpStatus":200},{"url":"https://speakerdeck.com/jnwng/evolving-the-graph","alts":[],"httpStatus":200},{"url":"https://github.com/sangria-graphql/sangria","alts":[],"httpStatus":200},{"url":"https://github.com/facebook/relay","alts":[],"httpStatus":200},{"url":"https://www.prisma.io/blog/the-problems-of-schema-first-graphql-development-x1mn4cb0tyl3","alts":[{"type":1,"url":"https://cdn.ampproject.org/c/s/www.prisma.io/blog/the-problems-of-schema-first-graphql-development-x1mn4cb0tyl3/amp/"}],"httpStatus":200},{"url":"https://medium.com/@bsaeta","alts":[{"type":2,"url":"medium://@bsaeta"},{"type":3,"url":"medium://@bsaeta"}],"httpStatus":200},{"url":"https://www.apollographql.com/docs/intro/platform/#gateway","alts":[],"httpStatus":200},{"url":"https://www.apollographql.com/docs/react/","alts":[],"httpStatus":200},{"url":"http://github.com/coursera/naptime","alts":[],"httpStatus":200},{"url":"https://youtu.be/JC-UJwBKc2Y?list=PLpi1lPB6opQzSSOQU8JQLExuP1JUXPtmA","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=JC-UJwBKc2Y&list=PLpi1lPB6opQzSSOQU8JQLExuP1JUXPtmA&feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=JC-UJwBKc2Y&list=PLpi1lPB6opQzSSOQU8JQLExuP1JUXPtmA&feature=applinks"}],"httpStatus":200},{"url":"https://medium.com/@gagoar","alts":[{"type":2,"url":"medium://@gagoar"},{"type":3,"url":"medium://@gagoar"}],"httpStatus":200},{"url":"https://blog.apollographql.com/courseras-journey-to-graphql-a5ad3b77f39a","alts":[{"type":3,"url":"medium://p/a5ad3b77f39a"},{"type":2,"url":"medium://p/a5ad3b77f39a"}],"httpStatus":200},{"url":"https://medium.com/@bryankane","alts":[{"type":2,"url":"medium://@bryankane"},{"type":3,"url":"medium://@bryankane"}],"httpStatus":200}],"version":"0.3","generatedAt":1566966756269},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":256,"sectionCount":3,"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":"evolving-the-graph","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"evolving-the-graph-4c587a4ad9a8","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*y5d4rT_fu3VF3bNs","originalWidth":2172,"originalHeight":1138,"isFeatured":true}},{"name":"previewTitle","type":3,"text":"Evolving the Graph","alignment":1},{"name":"previewSubtitle","type":13,"text":"We’ve been using GraphQL at Coursera for over three years, and we’ve learned a lot…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"We’ve been using GraphQL at Coursera for over three years, and we’ve learned a lot of lessons along the way. Learn what stuck & what…"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":"0d27","type":3,"text":"Evolving the Graph","markups":[]},{"name":"76da","type":1,"text":"This is a written version of a talk I gave recently at GraphQL Conf 2019. If you would prefer to view the video version, here it is:","markups":[]},{"name":"c38f","type":11,"text":"Evolving the Graph, GraphQL Conf 2019. Slides","markups":[{"type":3,"start":39,"end":45,"href":"https://speakerdeck.com/jnwng/evolving-the-graph","title":"","rel":"","anchorType":0}],"layout":1,"iframe":{"mediaResourceId":"5d2a7d7e94bceb5f119e4ba8600d4e0f","iframeWidth":854,"iframeHeight":480,"thumbnailUrl":"https://i.embed.ly/1/image?url=https%3A%2F%2Fi.ytimg.com%2Fvi%2FfmsDlaKTJZs%2Fhqdefault.jpg&key=a19fcc184b9711e1b4764040d3dc5c07"}},{"name":"f193","type":1,"text":"For those of you who prefer to read and want a little more background, here’s a…","markups":[]}],"sections":[{"name":"2ef9","startIndex":0}]},"isFullContent":false,"subtitle":"We’ve been using GraphQL at Coursera for over three years, and we’ve learned a lot of lessons along the way. Learn what stuck & what…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"5f1bac9cd176":{"id":"5f1bac9cd176","versionId":"21da4dcbcc36","creatorId":"6595f3dc1125","homeCollectionId":"532b19e4043c","title":"Improving End-to-End Testing at Coursera using Puppeteer and Jest","detectedLanguage":"en","latestVersion":"21da4dcbcc36","latestPublishedVersion":"21da4dcbcc36","hasUnpublishedEdits":false,"latestRev":1295,"createdAt":1560825460424,"updatedAt":1639147243436,"acceptedAt":0,"firstPublishedAt":1561508861527,"latestPublishedAt":1561508861527,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"This post describes our approach to upgrading our end-to-end testing system.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*ZqPC8l4_Atux4uba","filter":"","backgroundSize":"","originalWidth":1124,"originalHeight":1119,"strategy":"resample","height":0,"width":0},"wordCount":1360,"imageCount":3,"readingTime":5.682075471698113,"subtitle":"This post describes our approach to upgrading our end-to-end testing system.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":60,"isBookmarked":false,"tags":[{"slug":"puppeteer","name":"Puppeteer","postCount":996,"metadata":{"postCount":996,"coverImage":{"id":"1*6S2uNezt02sEFkoDB-qEqg.png","originalWidth":1175,"originalHeight":659,"isFeatured":true}},"type":"Tag"},{"slug":"testing","name":"Testing","postCount":42747,"metadata":{"postCount":42747,"coverImage":{"id":"1*JZHO5lsnXJ3BvUdHHbN8xA.png","originalWidth":8418,"originalHeight":2506,"isFeatured":true}},"type":"Tag"},{"slug":"jest","name":"Jest","postCount":3256,"metadata":{"postCount":3256,"coverImage":{"id":"1*xjBkv3GI0UClugzdEI6pUw.png","originalWidth":1746,"originalHeight":1017,"isFeatured":true}},"type":"Tag"},{"slug":"javascript","name":"JavaScript","postCount":285856,"metadata":{"postCount":285856,"coverImage":{"id":"0*BTaIEoMZlgOipidp","originalWidth":6016,"originalHeight":4016,"isFeatured":true,"unsplashPhotoId":"qDY9ahp0Mto"}},"type":"Tag"},{"slug":"frontend","name":"Frontend","postCount":17774,"metadata":{"postCount":17774,"coverImage":{"id":"1*iQlVLknVYtd9DrHJhYnAJQ.png","originalWidth":877,"originalHeight":479,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":6,"links":{"entries":[{"url":"https://jestjs.io/docs/en/getting-started","alts":[],"httpStatus":200},{"url":"https://pptr.dev/","alts":[],"httpStatus":200},{"url":"https://landing.google.com/sre/book/chapters/testing-reliability.html","alts":[],"httpStatus":200},{"url":"https://aws.amazon.com/lambda/","alts":[],"httpStatus":200},{"url":"https://www.linkedin.com/in/sumit-gogia-a6197aa9/","alts":[],"httpStatus":999},{"url":"https://www.linkedin.com/in/ahujaankit/","alts":[],"httpStatus":999},{"url":"https://www.linkedin.com/in/billy-kirk-4a6a7135/","alts":[],"httpStatus":999},{"url":"https://testing.googleblog.com/2016/05/flaky-tests-at-google-and-how-we.html","alts":[],"httpStatus":200},{"url":"https://blogs.dropbox.com/tech/2019/05/athena-our-automated-build-health-management-system/","alts":[{"type":1,"url":"https://cdn.ampproject.org/c/s/blogs.dropbox.com/tech/2019/05/athena-our-automated-build-health-management-system/amp/"}],"httpStatus":200},{"url":"https://meowni.ca/posts/2017-puppeteer-tests/","alts":[],"httpStatus":200},{"url":"https://www.seleniumhq.org/projects/webdriver/","alts":[],"httpStatus":200},{"url":"https://github.com/ChromeDevTools/timeline-viewer","alts":[],"httpStatus":200},{"url":"https://github.com/tj/commander.js/","alts":[],"httpStatus":200},{"url":"https://github.com/GoogleChrome/puppeteer","alts":[],"httpStatus":200},{"url":"https://www.phacility.com/phabricator/","alts":[],"httpStatus":200},{"url":"https://github.com/GoogleChrome/puppeteer#debugging-tips","alts":[],"httpStatus":200},{"url":"https://github.com/americanexpress/jest-image-snapshot","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/mastertrack","alts":[],"httpStatus":200},{"url":"https://github.com/facebook/jest","alts":[],"httpStatus":200},{"url":"https://developers.google.com/web/tools/chrome-devtools/evaluate-performance/reference","alts":[],"httpStatus":200},{"url":"https://blog.bitsrc.io/testing-your-react-app-with-puppeteer-and-jest-c72b3dfcde59","alts":[{"type":2,"url":"medium://p/c72b3dfcde59"},{"type":3,"url":"medium://p/c72b3dfcde59"}],"httpStatus":200},{"url":"https://about.coursera.org/careers/careers/opportunities/engineering/","alts":[],"httpStatus":200},{"url":"https://blog.logrocket.com/end-to-end-testing-react-apps-with-puppeteer-and-jest-ce2f414b4fd7","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/degrees","alts":[],"httpStatus":200},{"url":"https://saucelabs.com/","alts":[],"httpStatus":200},{"url":"https://github.com/GoogleChrome/puppeteer/issues/323","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1561508864852},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":770,"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":"improving-end-to-end-testing-at-coursera-using-puppeteer-and-jest","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"improving-end-to-end-testing-at-coursera-using-puppeteer-and-jest-5f1bac9cd176","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*ZqPC8l4_Atux4uba","originalWidth":1124,"originalHeight":1119,"isFeatured":true}},{"name":"f7cf","type":3,"text":"Improving End-to-End Testing at Coursera using Puppeteer and Jest","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"This post describes our approach to upgrading our end-to-end testing system."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":4,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":1561424288927,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"f7cf","type":3,"text":"Improving End-to-End Testing at Coursera using Puppeteer and Jest","markups":[]},{"name":"3c0b","type":1,"text":"By Ankit Ahuja, Billy Kirk, and Sumit Gogia.","markups":[{"type":3,"start":3,"end":14,"href":"https://www.linkedin.com/in/ahujaankit/","title":"","rel":"noopener","anchorType":0},{"type":3,"start":16,"end":26,"href":"https://www.linkedin.com/in/billy-kirk-4a6a7135/","title":"","rel":"noopener","anchorType":0},{"type":3,"start":32,"end":43,"href":"https://www.linkedin.com/in/sumit-gogia-a6197aa9/","title":"","rel":"noopener","anchorType":0},{"type":2,"start":0,"end":44}]},{"name":"ece8","type":1,"text":"Coursera is committed to delivering a high level of product quality for every learning experience. This includes individual courses, and courses included within Degree & MasterTrack™ programs.","markups":[{"type":3,"start":161,"end":167,"href":"https://www.coursera.org/degrees","title":"","rel":"","anchorType":0},{"type":3,"start":170,"end":182,"href":"https://www.coursera.org/mastertrack","title":"","rel":"","anchorType":0}]},{"name":"d56a","type":1,"text":"In the past, we’ve used Selenium and Sauce Labs for running end-to-end tests. Stability issues…","markups":[{"type":3,"start":24,"end":32,"href":"https://www.seleniumhq.org/projects/webdriver/","title":"","rel":"","anchorType":0},{"type":3,"start":37,"end":47,"href":"https://saucelabs.com/","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"1c2e","startIndex":0}]},"isFullContent":false,"subtitle":"This post describes our approach to upgrading our end-to-end testing system."},"cardType":0,"isDistributionAlertDismissed":true,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"84cf9b38cd52":{"id":"84cf9b38cd52","versionId":"82d5b0d3de7c","creatorId":"70814e310ce3","homeCollectionId":"532b19e4043c","title":"An engineer’s perspective on engineering and data science collaboration for data products","detectedLanguage":"en","latestVersion":"82d5b0d3de7c","latestPublishedVersion":"82d5b0d3de7c","hasUnpublishedEdits":false,"latestRev":187,"createdAt":1558217978551,"updatedAt":1639106012312,"acceptedAt":0,"firstPublishedAt":1558346460868,"latestPublishedAt":1558367052461,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Three themes that have worked well for us at Coursera for data product development— from the perspective of an engineer.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*rvxR1udpDV7YaJfG","filter":"","backgroundSize":"","originalWidth":1600,"originalHeight":653,"strategy":"resample","height":0,"width":0},"wordCount":1596,"imageCount":2,"readingTime":6.4059748427672965,"subtitle":"Three themes that have worked well for us at Coursera for data product development— from the perspective of an engineer.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":77,"isBookmarked":false,"tags":[{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"engineering","name":"Engineering","postCount":56462,"metadata":{"postCount":56462,"coverImage":{"id":"1*Ztjsdd4j4skhPERiV-NB8w.jpeg","originalWidth":1000,"originalHeight":532,"isFeatured":true}},"type":"Tag"},{"slug":"data","name":"Data","postCount":130309,"metadata":{"postCount":130309,"coverImage":{"id":"1*PsM-xK3N1J3GKAZDAAM1UQ.png","originalWidth":2048,"originalHeight":1152,"isFeatured":true}},"type":"Tag"},{"slug":"product-development","name":"Product Development","postCount":26836,"metadata":{"postCount":26836,"coverImage":{"id":"1*nBHTtiF40iOi4FckMkckXw.jpeg","originalWidth":1200,"originalHeight":549,"isFeatured":true,"alt":"A sketch in blue ink of a robotic finger touching a human finger"}},"type":"Tag"},{"slug":"collaboration","name":"Collaboration","postCount":30813,"metadata":{"postCount":30813,"coverImage":{"id":"0*k7-B2AZ3OS-nFKW9","originalWidth":6000,"originalHeight":4000,"isFeatured":true,"alt":"A group of people in discussion","unsplashPhotoId":"e6n7uoEnYbA"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":7,"links":{"entries":[{"url":"https://www.linkedin.com/in/vinod-bakthavachalam/","alts":[],"httpStatus":999},{"url":"https://www.linkedin.com/in/rmredd/","alts":[],"httpStatus":999},{"url":"https://www.linkedin.com/in/phil-cayting-2349824/","alts":[],"httpStatus":999},{"url":"https://www.linkedin.com/in/emkellerlogan/","alts":[],"httpStatus":999},{"url":"https://www.linkedin.com/in/egsands/","alts":[],"httpStatus":999},{"url":"https://en.wikipedia.org/wiki/Factorial_experiment","alts":[],"httpStatus":200},{"url":"https://en.wikipedia.org/wiki/Cold_start_(computing)","alts":[],"httpStatus":200},{"url":"https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it","alts":[],"httpStatus":200},{"url":"http://martin.zinkevich.org/rules_of_ml/rules_of_ml.pdf","alts":[],"httpStatus":200},{"url":"https://firstround.com/review/everything-we-wish-wed-known-about-building-data-products/","alts":[],"httpStatus":200},{"url":"https://medium.com/coursera-engineering/keeping-students-on-track-5d45e6b073ba","alts":[{"type":2,"url":"medium://p/5d45e6b073ba"},{"type":3,"url":"medium://p/5d45e6b073ba"}],"httpStatus":200},{"url":"https://multithreaded.stitchfix.com/blog/2016/03/16/engineers-shouldnt-write-etl/","alts":[],"httpStatus":200},{"url":"https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/32713.pdf","alts":[],"httpStatus":200},{"url":"https://medium.com/coursera-engineering/using-deep-learning-to-intervene-where-it-counts-aab76c7ce8dc","alts":[{"type":2,"url":"medium://p/aab76c7ce8dc"},{"type":3,"url":"medium://p/aab76c7ce8dc"}],"httpStatus":200},{"url":"https://medium.com/coursera-engineering/the-power-of-goals-a5134b8d0e1f","alts":[{"type":2,"url":"medium://p/a5134b8d0e1f"},{"type":3,"url":"medium://p/a5134b8d0e1f"}],"httpStatus":200},{"url":"https://medium.com/@zhaojunzhang/building-data-infrastructure-in-coursera-15441ebe18c2","alts":[{"type":2,"url":"medium://p/15441ebe18c2"},{"type":3,"url":"medium://p/15441ebe18c2"}],"httpStatus":200},{"url":"https://medium.com/coursera-engineering/how-our-skills-benchmarking-technology-is-creating-value-for-companies-70a7e06e667f","alts":[{"type":2,"url":"medium://p/70a7e06e667f"},{"type":3,"url":"medium://p/70a7e06e667f"}],"httpStatus":200},{"url":"https://medium.com/coursera-engineering/data-driven-content-categorization-89de0104bcbd","alts":[{"type":2,"url":"medium://p/89de0104bcbd"},{"type":3,"url":"medium://p/89de0104bcbd"}],"httpStatus":200},{"url":"https://medium.com/coursera-engineering/how-a-b-testing-powers-pedagogy-on-coursera-2cd10ed8365e","alts":[{"type":2,"url":"medium://p/2cd10ed8365e"},{"type":3,"url":"medium://p/2cd10ed8365e"}],"httpStatus":200},{"url":"https://medium.com/@chuongdo/analytics-at-coursera-three-years-later-638498709ac8","alts":[{"type":2,"url":"medium://p/638498709ac8"},{"type":3,"url":"medium://p/638498709ac8"}],"httpStatus":200},{"url":"https://www.sandimetz.com/blog/2016/1/20/the-wrong-abstraction","alts":[],"httpStatus":200},{"url":"https://medium.com/coursera-engineering/in-course-help-2a475bf3bc2c","alts":[{"type":2,"url":"medium://p/2a475bf3bc2c"},{"type":3,"url":"medium://p/2a475bf3bc2c"}],"httpStatus":200},{"url":"https://medium.com/coursera-engineering/building-data-services-to-bring-education-to-millions-part-iii-d34e5f37303","alts":[{"type":2,"url":"medium://p/d34e5f37303"},{"type":3,"url":"medium://p/d34e5f37303"}],"httpStatus":200},{"url":"https://medium.com/coursera-engineering/courseras-skills-graph-helps-learners-find-the-right-content-to-reach-their-goals-b10418a05214","alts":[{"type":2,"url":"medium://p/b10418a05214"},{"type":3,"url":"medium://p/b10418a05214"}],"httpStatus":200},{"url":"https://hbr.org/2018/10/how-to-build-great-data-products","alts":[],"httpStatus":200},{"url":"https://www.theanalysisfactor.com/the-difference-between-crossed-and-nested-factors/","alts":[],"httpStatus":200},{"url":"https://arxiv.org/pdf/1812.02257.pdf","alts":[],"httpStatus":200},{"url":"https://www.oreilly.com/ideas/what-are-machine-learning-engineers","alts":[],"httpStatus":200},{"url":"https://papers.nips.cc/paper/5656-hidden-technical-debt-in-machine-learning-systems.pdf","alts":[],"httpStatus":200},{"url":"https://ai.stanford.edu/~ronnyk/ExPThinkWeek2009Public.pdf","alts":[],"httpStatus":200},{"url":"https://bravenewgeek.com/shit-rolls-downhill/","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1558367054742},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":322,"sectionCount":5,"readingList":0,"topics":[{"topicId":"55f1c20aba7a","slug":"software-engineering","createdAt":1491949272237,"deletedAt":0,"image":{"id":"1*U8FboK4lz1wqwQC6IcqxKw@2x.jpeg","originalWidth":5507,"originalHeight":3098},"name":"Software Engineering","description":"Back-end to front-end.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Software Engineering News and Articles — Medium","type":"Topic"},{"topicId":"96f161863a28","slug":"product-management","createdAt":1545072594068,"deletedAt":0,"image":{"id":"1*FrDceIp-Kg1_gi8QKNYvYA@2x.jpeg","originalWidth":4000,"originalHeight":2666},"name":"Product Management","description":"Bridging the gaps.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Product Management: Articles and News — 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":"an-engineers-perspective-on-engineering-and-data-science-collaboration-for-data-products","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"an-engineers-perspective-on-engineering-and-data-science-collaboration-for-data-products-84cf9b38cd52","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*rvxR1udpDV7YaJfG","originalWidth":1600,"originalHeight":653,"isFeatured":true}},{"name":"cdc0","type":3,"text":"An engineer’s perspective on engineering and data science collaboration for data products","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Three themes that have worked well for us at Coursera for data product development— from the perspective of an engineer."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":"cdc0","type":3,"text":"An engineer’s perspective on engineering and data science collaboration for data products","markups":[]},{"name":"b6f2","type":1,"text":"Data products facilitate meeting an end goal through the use of data. At Coursera, we’ve built data products whose missions range from facilitating better content discovery to scaling learner interventions to benchmarking learners’ performance of various skills. Each data product is a collaboration among product leaders, business leaders, data scientists…","markups":[{"type":3,"start":135,"end":172,"href":"https://medium.com/coursera-engineering/courseras-skills-graph-helps-learners-find-the-right-content-to-reach-their-goals-b10418a05214","title":"","rel":"","anchorType":0},{"type":3,"start":176,"end":205,"href":"https://medium.com/coursera-engineering/keeping-students-on-track-5d45e6b073ba","title":"","rel":"","anchorType":0},{"type":3,"start":209,"end":261,"href":"https://medium.com/coursera-engineering/how-our-skills-benchmarking-technology-is-creating-value-for-companies-70a7e06e667f","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"e5dd","startIndex":0}]},"isFullContent":false,"subtitle":"Three themes that have worked well for us at Coursera for data product development— from the perspective of an engineer."},"cardType":0,"isDistributionAlertDismissed":true,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"87eecb39d292":{"id":"87eecb39d292","versionId":"72233bf36359","creatorId":"99c0fb464c1f","homeCollectionId":"532b19e4043c","title":"Two Summers at Coursera","detectedLanguage":"en","latestVersion":"72233bf36359","latestPublishedVersion":"72233bf36359","hasUnpublishedEdits":false,"latestRev":98,"createdAt":1557877914428,"updatedAt":1639096684523,"acceptedAt":0,"firstPublishedAt":1557880046407,"latestPublishedAt":1557880163508,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"This post was written by Alex Ozdemir in the fall of 2018.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":false,"previewImage":{"imageId":"1*6LFZrH91W6cP2TmLWFFWJA.jpeg","filter":"","backgroundSize":"","originalWidth":1200,"originalHeight":800,"strategy":"resample","height":0,"width":0},"wordCount":2178,"imageCount":1,"readingTime":8.418867924528302,"subtitle":"This post was written by Alex Ozdemir in the fall of 2018.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":13,"isBookmarked":false,"tags":[{"slug":"internships","name":"Internships","postCount":28847,"metadata":{"postCount":28847,"coverImage":{"id":"1*09kmycAJy-90yPqoUq1_KQ.jpeg","originalWidth":720,"originalHeight":736}},"type":"Tag"},{"slug":"company-culture","name":"Company Culture","postCount":16296,"metadata":{"postCount":16296,"coverImage":{"id":"1*ikqed6c6pRkBlc5glXcAGw@2x.jpeg","originalWidth":750,"originalHeight":828,"isFeatured":true}},"type":"Tag"},{"slug":"software-development","name":"Software Development","postCount":326803,"metadata":{"postCount":326803,"coverImage":{"id":"1*t5dwn8IabnCdEpoO-6Toog.png","originalWidth":1920,"originalHeight":1080,"isFeatured":true,"alt":"Kubernetes"}},"type":"Tag"},{"slug":"software-engineer-intern","name":"Software Engineer Intern","postCount":45,"metadata":{"postCount":45,"coverImage":{"id":"1*_Deo8pGRY2OQDK_wdJEgjQ.png","originalWidth":1084,"originalHeight":1088,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":3,"links":{"entries":[{"url":"https://github.com/coursera/courier/tree/master/idea-plugin","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/degrees/omie","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/degrees/mcit-penn","alts":[],"httpStatus":200},{"url":"https://coursera.org/","alts":[],"httpStatus":200},{"url":"https://www.linkedin.com/in/alex-ozdemir/","alts":[],"httpStatus":999},{"url":"https://github.com/coursera/courier","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/degrees/imba","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1557880163831},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":234,"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":"two-summers-at-coursera","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"two-summers-at-coursera-87eecb39d292","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*6LFZrH91W6cP2TmLWFFWJA.jpeg","originalWidth":1200,"originalHeight":800,"isFeatured":true}},{"name":"7951","type":3,"text":"Two Summers at Coursera","markups":[],"alignment":1},{"name":"d51b","type":1,"text":"This post was written by Alex Ozdemir in the fall of 2018.","markups":[{"type":3,"start":25,"end":37,"href":"https://www.linkedin.com/in/alex-ozdemir/","title":"","rel":"","anchorType":0},{"type":2,"start":0,"end":58}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"This post was written by Alex Ozdemir in the fall of 2018."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":"7951","type":3,"text":"Two Summers at Coursera","markups":[]},{"name":"d51b","type":1,"text":"This post was written by Alex Ozdemir in the fall of 2018.","markups":[{"type":3,"start":25,"end":37,"href":"https://www.linkedin.com/in/alex-ozdemir/","title":"","rel":"","anchorType":0},{"type":2,"start":0,"end":58}]},{"name":"2f8e","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*6LFZrH91W6cP2TmLWFFWJA.jpeg","originalWidth":1200,"originalHeight":800,"isFeatured":true}},{"name":"c653","type":1,"text":"I’ve been lucky enough to intern at Coursera not just once, but twice. While I had been an intern at other software engineering firms before, my experiences at Coursera gave me a fundamentally deeper understanding of software engineering…","markups":[]}],"sections":[{"name":"89e9","startIndex":0}]},"isFullContent":false,"subtitle":"This post was written by Alex Ozdemir in the fall of 2018."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"6f6dd3bc5d5f":{"id":"6f6dd3bc5d5f","versionId":"400bb18f6b75","creatorId":"3bebd5c70600","homeCollectionId":"532b19e4043c","title":"Improving The Learner Experience With Real-Time Subscription Renewals","detectedLanguage":"en","latestVersion":"400bb18f6b75","latestPublishedVersion":"400bb18f6b75","hasUnpublishedEdits":false,"latestRev":327,"createdAt":1556146123212,"updatedAt":1639053466533,"acceptedAt":0,"firstPublishedAt":1556304130553,"latestPublishedAt":1556304130553,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Dalton is a software engineering intern on Coursera’s Growth Monetization team. He is from Toronto and studies Software Engineering at the…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*E9qEPNMkZ-VUOEqV","filter":"","backgroundSize":"","originalWidth":392,"originalHeight":303,"strategy":"resample","height":0,"width":0},"wordCount":1432,"imageCount":3,"readingTime":5.95377358490566,"subtitle":"Dalton is a software engineering intern on Coursera’s Growth Monetization team. He is from Toronto and studies Software Engineering at the…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":32,"isBookmarked":false,"tags":[{"slug":"programming","name":"Programming","postCount":448088,"metadata":{"postCount":448088,"coverImage":{"id":"1*t5dwn8IabnCdEpoO-6Toog.png","originalWidth":1920,"originalHeight":1080,"isFeatured":true,"alt":"Kubernetes"}},"type":"Tag"},{"slug":"coursera","name":"Coursera","postCount":3081,"metadata":{"postCount":3081,"coverImage":{"id":"1*dEhjkUvgQyoNaErpvwTO-Q.png","originalWidth":1200,"originalHeight":600,"isFeatured":true}},"type":"Tag"},{"slug":"payment-systems","name":"Payment Systems","postCount":2019,"metadata":{"postCount":2019,"coverImage":{"id":"1*JedyOhrZK4IK_2aGMNKyIQ.jpeg","originalWidth":1400,"originalHeight":720,"isFeatured":true}},"type":"Tag"},{"slug":"software-engineering","name":"Software Engineering","postCount":115952,"metadata":{"postCount":115952,"coverImage":{"id":"1*t5dwn8IabnCdEpoO-6Toog.png","originalWidth":1920,"originalHeight":1080,"isFeatured":true,"alt":"Kubernetes"}},"type":"Tag"},{"slug":"stream-processing","name":"Stream Processing","postCount":694,"metadata":{"postCount":694,"coverImage":{"id":"1*LWl7U0Ql14nX2v8IXP863g.png","originalWidth":4018,"originalHeight":1573}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://deviq.com/hollywood-principle/","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1556304131241},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":613,"sectionCount":1,"readingList":0,"topics":[{"topicId":"55f1c20aba7a","slug":"software-engineering","createdAt":1491949272237,"deletedAt":0,"image":{"id":"1*U8FboK4lz1wqwQC6IcqxKw@2x.jpeg","originalWidth":5507,"originalHeight":3098},"name":"Software Engineering","description":"Back-end to front-end.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Software Engineering 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":"improving-the-learner-experience-with-real-time-subscription-renewals","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"improving-the-learner-experience-with-real-time-subscription-renewals-6f6dd3bc5d5f","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*E9qEPNMkZ-VUOEqV","originalWidth":392,"originalHeight":303,"isFeatured":true}},{"name":"1763","type":3,"text":"Improving The Learner Experience With Real-Time Subscription Renewals","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Dalton is a software engineering intern on Coursera’s Growth Monetization team. He is from Toronto and studies Software Engineering at the…"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":"55f1c20aba7a","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"1763","type":3,"text":"Improving The Learner Experience With Real-Time Subscription Renewals","markups":[]},{"name":"c201","type":1,"text":"Dalton is a software engineering intern on Coursera’s Growth Monetization team. He is from Toronto and studies Software Engineering at the University of Waterloo. He chose to do an internship at Coursera because he believes in their mission of creating a world in which anyone, anywhere, can transform their life…","markups":[]}],"sections":[{"name":"f24b","startIndex":0}]},"isFullContent":false,"subtitle":"Dalton is a software engineering intern on Coursera’s Growth Monetization team. He is from Toronto and studies Software Engineering at the…"},"cardType":0,"isDistributionAlertDismissed":true,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"57b01b7c5c72":{"id":"57b01b7c5c72","versionId":"cbe01d51645b","creatorId":"8c25ad9d3047","homeCollectionId":"532b19e4043c","title":"How Online Education Is Increasing Gender Diversity in STEM","detectedLanguage":"en","latestVersion":"cbe01d51645b","latestPublishedVersion":"cbe01d51645b","hasUnpublishedEdits":false,"latestRev":43,"createdAt":1552067518796,"updatedAt":1638990824157,"acceptedAt":0,"firstPublishedAt":1552072328841,"latestPublishedAt":1552072579337,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"By Emily Glassberg Sands, Head of Data Science at Coursera in collaboration with Alan Hickey and Vinod Bakthavachalam, Senior Data…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"wordCount":753,"imageCount":0,"readingTime":2.841509433962264,"subtitle":"By Emily Glassberg Sands, Head of Data Science at Coursera in collaboration with Alan Hickey and Vinod Bakthavachalam, Senior Data…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":9,"isBookmarked":false,"tags":[{"slug":"education","name":"Education","postCount":591673,"metadata":{"postCount":591673,"coverImage":{"id":"1*dVmAyTviHMkGJq46uvrLcg.jpeg"}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":354197,"metadata":{"postCount":354197,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"diversity","name":"Diversity","postCount":49396,"metadata":{"postCount":49396,"coverImage":{"id":"1*0pJVTsrDph2JWZOmhf4JlQ.jpeg"}},"type":"Tag"},{"slug":"women-in-tech","name":"Women In Tech","postCount":42188,"metadata":{"postCount":42188,"coverImage":{"id":"1*t7BrSZdwus1cQmb_E3cybw.jpeg"}},"type":"Tag"},{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://repository.isls.org/bitstream/1/863/1/509.pdf","alts":[],"httpStatus":200},{"url":"https://www.si.umich.edu/people/christopher-brooks","alts":[],"httpStatus":200},{"url":"https://digital.hbs.edu/data-and-analysis/using-technology-to-increase-equality-of-opportunity/","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/specializations/google-it-support","alts":[],"httpStatus":200},{"url":"https://blog.coursera.org/role-models-matter-female-instructors-can-help-close-gender-gap-stem/","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1552072580437},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":73,"sectionCount":1,"readingList":0,"topics":[]},"coverless":true,"slug":"how-online-education-is-increasing-gender-diversity-in-stem","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"how-online-education-is-increasing-gender-diversity-in-stem-57b01b7c5c72","previewContent":{"bodyModel":{"paragraphs":[{"name":"3704","type":3,"text":"How Online Education Is Increasing Gender Diversity in STEM","markups":[],"alignment":1},{"name":"494f","type":1,"text":"By Emily Glassberg Sands, Head of Data Science at Coursera in collaboration with Alan Hickey and Vinod Bakthavachalam, Senior Data Scientists at Coursera","markups":[{"type":2,"start":0,"end":153}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"By Emily Glassberg Sands, Head of Data Science at Coursera in collaboration with Alan Hickey and Vinod Bakthavachalam, Senior Data…"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":"3704","type":3,"text":"How Online Education Is Increasing Gender Diversity in STEM","markups":[]},{"name":"494f","type":1,"text":"By Emily Glassberg Sands, Head of Data Science at Coursera in collaboration with Alan Hickey and Vinod Bakthavachalam, Senior Data Scientists at Coursera","markups":[{"type":2,"start":0,"end":153}]},{"name":"52e6","type":1,"text":"At Coursera, we strive to unlock life-transforming learning and credentials for anyone, anywhere. Seventy-five percent of high-school-aged girls say they are interested in STEM (science, technology, engineering…","markups":[]}],"sections":[{"name":"d33c","startIndex":0}]},"isFullContent":false,"subtitle":"By Emily Glassberg Sands, Head of Data Science at Coursera in collaboration with Alan Hickey and Vinod Bakthavachalam, Senior Data…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"31f956bd592a":{"id":"31f956bd592a","versionId":"857cfa58fad6","creatorId":"8c25ad9d3047","homeCollectionId":"532b19e4043c","title":"Controlled Regression: Quantifying the Impact of Course Quality on Learner Retention","detectedLanguage":"en","latestVersion":"857cfa58fad6","latestPublishedVersion":"857cfa58fad6","hasUnpublishedEdits":false,"latestRev":62,"createdAt":1541618453267,"updatedAt":1541705288897,"acceptedAt":0,"firstPublishedAt":1541696463207,"latestPublishedAt":1541696463207,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"This is Part I of our Causal Impact @ Coursera series.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*P6TaXFB0-TivYLSe","filter":"","backgroundSize":"","originalWidth":1600,"originalHeight":864,"strategy":"resample","height":0,"width":0},"wordCount":1196,"imageCount":2,"readingTime":4.896540880503145,"subtitle":"This is Part I of our Causal Impact @ Coursera series.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":24,"isBookmarked":false,"tags":[{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"causal-inference","name":"Causal Inference","postCount":1196,"metadata":{"postCount":1196,"coverImage":{"id":"1*MWPpmRixIFwoHP9cFK6aLA.png","originalWidth":2705,"originalHeight":2732,"isFeatured":true}},"type":"Tag"},{"slug":"education","name":"Education","postCount":591673,"metadata":{"postCount":591673,"coverImage":{"id":"1*dVmAyTviHMkGJq46uvrLcg.jpeg"}},"type":"Tag"},{"slug":"online-learning","name":"Online Learning","postCount":10275,"metadata":{"postCount":10275,"coverImage":{"id":"0*erpDsFU5ANxHR7Hw","originalWidth":5472,"originalHeight":3648,"isFeatured":true,"unsplashPhotoId":"XkKCui44iM0"}},"type":"Tag"},{"slug":"statistics","name":"Statistics","postCount":33662,"metadata":{"postCount":33662,"coverImage":{"id":"1*o1TEM-f7h6kCYOTGOfw0GQ.jpeg","originalWidth":2048,"originalHeight":1536,"isFeatured":true,"alt":"A small child and their distorted reflection in a funfair house of mirrors"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":3,"links":{"entries":[{"url":"https://www.brown.edu/research/projects/oster/sites/brown.edu.research.projects.oster/files/uploads/selection.pdf","alts":[],"httpStatus":200},{"url":"https://about.coursera.org/careers/careers/opportunities/data-science/","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1541696465130},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":262,"sectionCount":2,"readingList":0,"topics":[]},"coverless":true,"slug":"controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention-31f956bd592a","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*P6TaXFB0-TivYLSe","originalWidth":1600,"originalHeight":864,"isFeatured":true}},{"name":"04e9","type":3,"text":"Controlled Regression: Quantifying the Impact of Course Quality on Learner Retention","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"This is Part I of our Causal Impact @ Coursera series."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":4,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"04e9","type":3,"text":"Controlled Regression: Quantifying the Impact of Course Quality on Learner Retention","markups":[]},{"name":"d2fd","type":13,"text":"This is Part I of our Causal Impact @ Coursera series.","markups":[{"type":2,"start":0,"end":54}]},{"name":"ca49","type":1,"text":"At Coursera we use data to power strategic decision making, leveraging a variety of causal inference techniques to inform our product and business roadmaps. In this causal inference series, we will show how we use a range of techniques to understand the stories in our data, including the following:","markups":[]},{"name":"d22e","type":1,"text":"(1)…","markups":[]}],"sections":[{"name":"914d","startIndex":0}]},"isFullContent":false,"subtitle":"This is Part I of our Causal Impact @ Coursera series."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"cdfeb817faf8":{"id":"cdfeb817faf8","versionId":"ba0da8cb63e4","creatorId":"70814e310ce3","homeCollectionId":"532b19e4043c","title":"Webpack 3 to 4: Facing the known unknowns and unknown unknowns","detectedLanguage":"en","latestVersion":"ba0da8cb63e4","latestPublishedVersion":"ba0da8cb63e4","hasUnpublishedEdits":false,"latestRev":1558,"createdAt":1539097164383,"updatedAt":1539272004535,"acceptedAt":0,"firstPublishedAt":1539259262474,"latestPublishedAt":1539259262474,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"This post will sketch out what a Webpack 3 to 4 upgrade looks like in a large modern web application.","postDisplay":{"coverless":true},"metaDescription":"This post will sketch out what a Webpack 3 to 4 upgrade looks like in a large modern web application. We hope this is either an entertaining recollection or helpful for your own future upgrades…"},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*Inb_k0uJHCmGBr2_","filter":"","backgroundSize":"","originalWidth":719,"originalHeight":533,"strategy":"resample","height":0,"width":0},"wordCount":1509,"imageCount":2,"readingTime":6.077672955974843,"subtitle":"This post will sketch out what a Webpack 3 to 4 upgrade looks like in a large modern web application.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":20,"isBookmarked":false,"tags":[{"slug":"webpack","name":"Webpack","postCount":4887,"metadata":{"postCount":4887,"coverImage":{"id":"0*irhh04O_ilbFHtDI","originalWidth":4515,"originalHeight":3010,"unsplashPhotoId":"UYsBCu9RP3Y"}},"type":"Tag"},{"slug":"coursera","name":"Coursera","postCount":3081,"metadata":{"postCount":3081,"coverImage":{"id":"1*dEhjkUvgQyoNaErpvwTO-Q.png","originalWidth":1200,"originalHeight":600,"isFeatured":true}},"type":"Tag"},{"slug":"frontend","name":"Frontend","postCount":17774,"metadata":{"postCount":17774,"coverImage":{"id":"1*iQlVLknVYtd9DrHJhYnAJQ.png","originalWidth":877,"originalHeight":479,"isFeatured":true}},"type":"Tag"},{"slug":"upgrade","name":"Upgrade","postCount":2638,"metadata":{"postCount":2638,"coverImage":{"id":"1*KFNoF465MdarVXxP3G514Q.jpeg","originalWidth":1080,"originalHeight":1090,"isFeatured":true}},"type":"Tag"},{"slug":"infrastructure","name":"Infrastructure","postCount":14746,"metadata":{"postCount":14746,"coverImage":{"id":"1*SGqDS2rAoWQ8nXFeAd_wmg.png","originalWidth":1600,"originalHeight":800,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":2,"links":{"entries":[{"url":"https://webpack.js.org/guides/code-splitting/","alts":[],"httpStatus":200},{"url":"https://webpack.js.org/migrate/4/","alts":[],"httpStatus":200},{"url":"https://webpack.js.org/plugins/split-chunks-plugin/","alts":[],"httpStatus":200},{"url":"https://webpack.js.org/plugins/split-chunks-plugin/#optimization-splitchunks","alts":[],"httpStatus":200},{"url":"https://webpack.js.org/plugins/commons-chunk-plugin/","alts":[],"httpStatus":200},{"url":"https://webpack.js.org/configuration/stats/","alts":[],"httpStatus":200},{"url":"https://www.npmjs.com/package/html-webpack-include-assets-plugin","alts":[],"httpStatus":200},{"url":"https://aws.amazon.com/ecs/","alts":[],"httpStatus":200},{"url":"https://github.com/webpack-contrib/bundle-loader","alts":[],"httpStatus":200},{"url":"https://github.com/webpack/webpack/releases/tag/v4.0.0","alts":[],"httpStatus":200},{"url":"https://github.com/webpack-contrib/json-loader","alts":[],"httpStatus":200},{"url":"https://github.com/webpack/tapable#hookhookmap-interface","alts":[],"httpStatus":200},{"url":"https://github.com/jantimon/html-webpack-plugin","alts":[],"httpStatus":200},{"url":"https://blog.johnnyreilly.com/2018/01/finding-webpack-4-use-map.html","alts":[],"httpStatus":200},{"url":"https://github.com/coursera/webpack-multi-output","alts":[],"httpStatus":200},{"url":"https://github.com/amireh/happypack","alts":[],"httpStatus":200},{"url":"https://github.com/webpack-contrib/webpack-bundle-analyzer","alts":[],"httpStatus":200},{"url":"https://github.com/webpack-contrib/mini-css-extract-plugin","alts":[],"httpStatus":200},{"url":"https://github.com/coursera/webpack-multi-output/blob/master/what.md#jsonp-script","alts":[],"httpStatus":200},{"url":"https://github.com/webpack-contrib/extract-text-webpack-plugin","alts":[],"httpStatus":200},{"url":"https://github.com/coursera/webpack-multi-output/commit/72135b54a863fc680ebfe5df40ee60afa7dcb40d#diff-a4f485aa834ca5b3c24819fceb39c56fR164","alts":[],"httpStatus":200},{"url":"https://infrequently.org/2017/10/can-you-afford-it-real-world-web-performance-budgets/","alts":[],"httpStatus":200},{"url":"https://github.com/webpack/webpack/pull/5926/files#diff-baf371f5446dc9bc4b41022587e05b48R342","alts":[],"httpStatus":200},{"url":"https://github.com/webpack/webpack-dev-middleware","alts":[],"httpStatus":200},{"url":"https://gist.github.com/sokra/1522d586b8e5c0f5072d7565c2bee693","alts":[],"httpStatus":200},{"url":"https://github.com/webpack-contrib/bundle-loader/issues/74","alts":[],"httpStatus":200},{"url":"https://medium.com/coursera-engineering/6-steps-to-i18n-success-for-your-web-app-b5702a221860","alts":[{"type":2,"url":"medium://p/b5702a221860"},{"type":3,"url":"medium://p/b5702a221860"}],"httpStatus":200},{"url":"https://github.com/webpack-contrib/mini-css-extract-plugin/issues/147","alts":[],"httpStatus":200},{"url":"https://medium.com/webpack/the-chunk-graph-algorithm-week-26-29-7c88aa5e4b4e","alts":[{"type":3,"url":"medium://p/7c88aa5e4b4e"},{"type":2,"url":"medium://p/7c88aa5e4b4e"}],"httpStatus":200},{"url":"https://medium.com/coursera-engineering/why-and-how-coursera-does-isomorphic-javascript-a-fast-and-snappy-quiz-a42acdd59ef8","alts":[{"type":2,"url":"medium://p/a42acdd59ef8"},{"type":3,"url":"medium://p/a42acdd59ef8"}],"httpStatus":200},{"url":"https://github.com/webpack/webpack/issues/7300#issuecomment-399225385","alts":[],"httpStatus":200},{"url":"https://github.com/webpack-contrib/extract-text-webpack-plugin/issues/745","alts":[],"httpStatus":200},{"url":"https://github.com/nodejs/node/issues/13465","alts":[],"httpStatus":200},{"url":"https://medium.com/webpack/webpack-4-migration-guide-for-plugins-loaders-20a79b927202","alts":[{"type":2,"url":"medium://p/20a79b927202"},{"type":3,"url":"medium://p/20a79b927202"}],"httpStatus":200},{"url":"https://github.com/webpack-contrib/extract-text-webpack-plugin/issues/701","alts":[],"httpStatus":200},{"url":"https://medium.com/webpack/webpack-4-mode-and-optimization-5423a6bc597a","alts":[{"type":3,"url":"medium://p/5423a6bc597a"},{"type":2,"url":"medium://p/5423a6bc597a"}],"httpStatus":200},{"url":"https://medium.com/coursera-engineering/breaking-up-our-javascript-monolith-with-rapidos-86d94e5e9040","alts":[{"type":2,"url":"medium://p/86d94e5e9040"},{"type":3,"url":"medium://p/86d94e5e9040"}],"httpStatus":200},{"url":"https://github.com/webpack-contrib/extract-text-webpack-plugin/issues/749","alts":[],"httpStatus":200},{"url":"https://medium.com/webpack/webpack-4-released-today-6cdb994702d4","alts":[{"type":2,"url":"medium://p/6cdb994702d4"},{"type":3,"url":"medium://p/6cdb994702d4"}],"httpStatus":200}],"version":"0.3","generatedAt":1539259264868},"isLockedPreviewOnly":false,"metaDescription":"This post will sketch out what a Webpack 3 to 4 upgrade looks like in a large modern web application. We hope this is either an entertaining recollection or helpful for your own future upgrades…","totalClapCount":271,"sectionCount":1,"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":"webpack-3-to-4-facing-the-known-unknowns-and-unknown-unknowns","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"webpack-3-to-4-facing-the-known-unknowns-and-unknown-unknowns-cdfeb817faf8","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*Inb_k0uJHCmGBr2_","originalWidth":719,"originalHeight":533,"isFeatured":true}},{"name":"25dc","type":3,"text":"Webpack 3 to 4: Facing the known unknowns and unknown unknowns","markups":[{"type":1,"start":0,"end":62}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"This post will sketch out what a Webpack 3 to 4 upgrade looks like in a large modern web application."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":4,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"25dc","type":3,"text":"Webpack 3 to 4: Facing the known unknowns and unknown unknowns","markups":[{"type":1,"start":0,"end":62}]},{"name":"7089","type":1,"text":"This post will sketch out what a Webpack 3 to 4 upgrade looks like in a large modern web application. We hope this is either an entertaining recollection or helpful for your own future upgrades.","markups":[]},{"name":"4948","type":3,"text":"Why upgrade?","markups":[]},{"name":"3f5f","type":1,"text":"Coursera has used Webpack in production for a few years now. Recently, we’ve been thinking…","markups":[{"type":3,"start":107,"end":121,"href":"https://webpack.js.org/guides/code-splitting/","title":"","rel":"","anchorType":0},{"type":3,"start":167,"end":185,"href":"https://infrequently.org/2017/10/can-you-afford-it-real-world-web-performance-budgets/","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"7876","startIndex":0}]},"isFullContent":false,"subtitle":"This post will sketch out what a Webpack 3 to 4 upgrade looks like in a large modern web application."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"6658617cc330":{"id":"6658617cc330","versionId":"bfe2933286f3","creatorId":"70814e310ce3","homeCollectionId":"532b19e4043c","title":"The Evolution of Coursera Search: Enabling Product Innovation Through Technical Innovation","detectedLanguage":"en","latestVersion":"bfe2933286f3","latestPublishedVersion":"bfe2933286f3","hasUnpublishedEdits":false,"latestRev":155,"createdAt":1537912147755,"updatedAt":1537988045365,"acceptedAt":0,"firstPublishedAt":1537979342201,"latestPublishedAt":1537979342201,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"At Coursera, millions of learners use search to discover courses. For learners with a specific intent, we need relevant results. For…","postDisplay":{"coverless":true},"metaDescription":"Millions of learners discover content through Coursera’s search. Find out how Coursera’s search has evolved to meet the needs of learners and enables technical innovation."},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*rVGn3KQ4LwgrEnTV","filter":"","backgroundSize":"","originalWidth":408,"originalHeight":271,"strategy":"resample","height":0,"width":0},"wordCount":760,"imageCount":4,"readingTime":3.5679245283018863,"subtitle":"At Coursera, millions of learners use search to discover courses. For learners with a specific intent, we need relevant results. For…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":47,"isBookmarked":false,"tags":[{"slug":"search","name":"Search","postCount":8673,"metadata":{"postCount":8673,"coverImage":{"id":"1*dtgu1vA6U5d94yGNdsY-mg.png","originalWidth":1654,"originalHeight":904,"isFeatured":true}},"type":"Tag"},{"slug":"coursera","name":"Coursera","postCount":3081,"metadata":{"postCount":3081,"coverImage":{"id":"1*dEhjkUvgQyoNaErpvwTO-Q.png","originalWidth":1200,"originalHeight":600,"isFeatured":true}},"type":"Tag"},{"slug":"online-education","name":"Online Education","postCount":6917,"metadata":{"postCount":6917,"coverImage":{"id":"1*m1vc2W6B-zXhrpvVnqr_hw.jpeg","originalWidth":800,"originalHeight":533}},"type":"Tag"},{"slug":"engineering","name":"Engineering","postCount":56462,"metadata":{"postCount":56462,"coverImage":{"id":"1*Ztjsdd4j4skhPERiV-NB8w.jpeg","originalWidth":1000,"originalHeight":532,"isFeatured":true}},"type":"Tag"},{"slug":"algolia","name":"Algolia","postCount":241,"metadata":{"postCount":241,"coverImage":{"id":"1*fb0koHA2w7vWNt-jvjevCQ.jpeg","originalWidth":1280,"originalHeight":853,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"http://algolia.com","alts":[],"httpStatus":200},{"url":"https://stackoverflow.com/questions/31922327/solr-extendedismax-parser-pf-and-qf-parameter-difference","alts":[],"httpStatus":200},{"url":"https://opensourceconnections.com/blog/2013/07/02/getting-dissed-by-dismax-why-your-incorrect-assumptions-about-dismax-are-hurting-search-relevancy/","alts":[],"httpStatus":200},{"url":"https://www.algolia.com/doc/guides/ranking/ranking-formula/#custom","alts":[],"httpStatus":200},{"url":"http://lucene.apache.org/solr/","alts":[],"httpStatus":200},{"url":"https://github.com/algolia/react-instantsearch","alts":[],"httpStatus":200},{"url":"https://medium.com/coursera-engineering/building-smarter-search-4b575edd7bef","alts":[{"type":2,"url":"medium://p/4b575edd7bef"},{"type":3,"url":"medium://p/4b575edd7bef"}],"httpStatus":200}],"version":"0.3","generatedAt":1537979343208},"isLockedPreviewOnly":false,"metaDescription":"Millions of learners discover content through Coursera’s search. Find out how Coursera’s search has evolved to meet the needs of learners and enables technical innovation.","totalClapCount":765,"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":"the-evolution-of-coursera-search-enabling-product-innovation-through-technical-innovation","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"the-evolution-of-coursera-search-enabling-product-innovation-through-technical-innovation-6658617cc330","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*rVGn3KQ4LwgrEnTV","originalWidth":408,"originalHeight":271,"isFeatured":true}},{"name":"27e1","type":3,"text":"The Evolution of Coursera Search: Enabling Product Innovation Through Technical Innovation","markups":[{"type":1,"start":0,"end":90}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"At Coursera, millions of learners use search to discover courses. For learners with a specific intent, we need relevant results. For…"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":4,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"27e1","type":3,"text":"The Evolution of Coursera Search: Enabling Product Innovation Through Technical Innovation","markups":[{"type":1,"start":0,"end":90}]},{"name":"e8cf","type":1,"text":"At Coursera, millions of learners use search to discover courses. For learners with a specific intent, we need relevant results. For learners with less concrete goals, we need to give a feeling of serendipity by injecting novelty and diversity into the results. In this blog post, we detail how our…","markups":[{"type":3,"start":329,"end":336,"href":"http://algolia.com","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"30a6","startIndex":0}]},"isFullContent":false,"subtitle":"At Coursera, millions of learners use search to discover courses. For learners with a specific intent, we need relevant results. For…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"5d45e6b073ba":{"id":"5d45e6b073ba","versionId":"1dfc3528653c","creatorId":"283802d43c","homeCollectionId":"532b19e4043c","title":"Keeping students on-track","detectedLanguage":"en","latestVersion":"1dfc3528653c","latestPublishedVersion":"1dfc3528653c","hasUnpublishedEdits":false,"latestRev":125,"createdAt":1537228062264,"updatedAt":1537275275588,"acceptedAt":0,"firstPublishedAt":1537229447684,"latestPublishedAt":1537275275588,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"How our algorithms identify at-risk students, powering automated and human interventions","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*ceSey_FGXxtyla9A","filter":"","backgroundSize":"","originalWidth":938,"originalHeight":390,"strategy":"resample","height":0,"width":0},"wordCount":916,"imageCount":1,"readingTime":3.656603773584906,"subtitle":"How our algorithms identify at-risk students, powering automated and human interventions","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":27,"isBookmarked":false,"tags":[{"slug":"education","name":"Education","postCount":591673,"metadata":{"postCount":591673,"coverImage":{"id":"1*dVmAyTviHMkGJq46uvrLcg.jpeg"}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":354197,"metadata":{"postCount":354197,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"artificial-intelligence","name":"Artificial Intelligence","postCount":458956,"metadata":{"postCount":458956,"coverImage":{"id":"1*gAn_BSffVBcwCIR6bDgK1g.jpeg"}},"type":"Tag"},{"slug":"technology","name":"Technology","postCount":2704379,"metadata":{"postCount":2704379,"coverImage":{"id":"1*yH2cmH1uhoFpR7HIseOAsw.jpeg"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":3,"links":{"entries":[{"url":"https://about.coursera.org/careers/careers/opportunities/data-science/","alts":[],"httpStatus":200},{"url":"https://blog.coursera.org/6-new-degrees-coming-to-coursera-in-computer-science-data-science-and-public-health/","alts":[],"httpStatus":200},{"url":"https://arxiv.org/pdf/1408.3382.pdf","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1537275277113},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":435,"sectionCount":2,"readingList":0,"topics":[{"topicId":"a205669c739e","slug":"education","createdAt":1493934008418,"deletedAt":0,"image":{"id":"1*T4rtHBuFYlSoP4OuU9W0yQ@2x.jpeg","originalWidth":5536,"originalHeight":3691},"name":"Education","description":"Live it, learn it.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"News and Articles About Education — Medium","type":"Topic"}]},"coverless":true,"slug":"keeping-students-on-track","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"keeping-students-on-track-5d45e6b073ba","previewContent":{"bodyModel":{"paragraphs":[{"name":"d325","type":3,"text":"Keeping students on-track","markups":[{"type":1,"start":0,"end":25}],"alignment":1},{"name":"0c00","type":13,"text":"How our algorithms identify at-risk students, powering automated and human interventions","markups":[],"alignment":1},{"name":"9700","type":1,"text":"Since the beginning of 2016, Coursera has been rapidly expanding into the online degree space to give working…","markups":[{"type":3,"start":47,"end":64,"href":"https://blog.coursera.org/6-new-degrees-coming-to-coursera-in-computer-science-data-science-and-public-health/","title":"","rel":"","anchorType":0}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"How our algorithms identify at-risk students, powering automated and human interventions"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":"d325","type":3,"text":"Keeping students on-track","markups":[{"type":1,"start":0,"end":25}]},{"name":"0c00","type":13,"text":"How our algorithms identify at-risk students, powering automated and human interventions","markups":[]},{"name":"9700","type":1,"text":"Since the beginning of 2016, Coursera has been rapidly expanding into the online degree space to give working professionals the opportunity to earn credentials from the world’s top universities. These programs allow a population of busy and geographically dispersed students to work toward valuable degrees with much greater flexibility at…","markups":[{"type":3,"start":47,"end":64,"href":"https://blog.coursera.org/6-new-degrees-coming-to-coursera-in-computer-science-data-science-and-public-health/","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"c81f","startIndex":0}]},"isFullContent":false,"subtitle":"How our algorithms identify at-risk students, powering automated and human interventions"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"89de0104bcbd":{"id":"89de0104bcbd","versionId":"235d9560959f","creatorId":"70814e310ce3","homeCollectionId":"532b19e4043c","title":"Data Driven Content Categorization","detectedLanguage":"en","latestVersion":"235d9560959f","latestPublishedVersion":"235d9560959f","hasUnpublishedEdits":false,"latestRev":288,"createdAt":1536352267861,"updatedAt":1548178039046,"acceptedAt":0,"firstPublishedAt":1536725620251,"latestPublishedAt":1548178039046,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"How Coursera generated course categories from thousands of courses using a data driven clustering approach.","postDisplay":{"coverless":true},"metaDescription":"Courses on Coursera have a scale and breadth of diversity makes them hard to categorize. This post explains how we took a data driven approach to create relevant and useful categories."},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*A-lEgYtSuSKQZ21ves4JOw.png","filter":"","backgroundSize":"","originalWidth":1092,"originalHeight":868,"strategy":"resample","height":0,"width":0},"wordCount":968,"imageCount":5,"readingTime":4.486163522012578,"subtitle":"How Coursera generated course categories from thousands of courses using a data driven clustering approach.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":101,"isBookmarked":false,"tags":[{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"education","name":"Education","postCount":591673,"metadata":{"postCount":591673,"coverImage":{"id":"1*dVmAyTviHMkGJq46uvrLcg.jpeg"}},"type":"Tag"},{"slug":"technology","name":"Technology","postCount":2704379,"metadata":{"postCount":2704379,"coverImage":{"id":"1*yH2cmH1uhoFpR7HIseOAsw.jpeg"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":5,"links":{"entries":[{"url":"https://lvdmaaten.github.io/tsne/","alts":[],"httpStatus":200},{"url":"https://www.linkedin.com/in/zhenghao-chen-44865036/","alts":[],"httpStatus":999},{"url":"https://www.linkedin.com/in/egsands/","alts":[],"httpStatus":999},{"url":"https://www.coursera.org/learn/complex-analysis","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/learn/horse-care","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/learn/photography","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/learn/systems-thinking","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/learn/general-relativity","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/learn/biocontainment","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/learn/ebola-essentials-for-health-professionals","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/learn/songwriting-lyrics","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/learn/muslim-world","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/learn/jazz-improvisation","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/learn/guitar","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/learn/galois","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/learn/genetics-evolution","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/learn/clinical-kidney-transplantation","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/learn/probabilistic-graphical-models","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1548178041840},"isLockedPreviewOnly":false,"metaDescription":"Courses on Coursera have a scale and breadth of diversity makes them hard to categorize. This post explains how we took a data driven approach to create relevant and useful categories.","totalClapCount":780,"sectionCount":1,"readingList":0,"topics":[{"topicId":"a205669c739e","slug":"education","createdAt":1493934008418,"deletedAt":0,"image":{"id":"1*T4rtHBuFYlSoP4OuU9W0yQ@2x.jpeg","originalWidth":5536,"originalHeight":3691},"name":"Education","description":"Live it, learn it.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"News and Articles About Education — 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":"data-driven-content-categorization","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"data-driven-content-categorization-89de0104bcbd","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*A-lEgYtSuSKQZ21ves4JOw.png","originalWidth":1092,"originalHeight":868,"isFeatured":true}},{"name":"previewTitle","type":3,"text":"Data Driven Content Categorization","alignment":1},{"name":"previewSubtitle","type":13,"text":"How Coursera generated course categories from thousands of courses…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"How Coursera generated course categories from thousands of courses using a data driven clustering approach."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":"fd1b","type":3,"text":"Categorizing learning content","markups":[]},{"name":"dddb","type":13,"text":"From hand-coded to an algorithmic approach","markups":[]},{"name":"1140","type":1,"text":"Courses on Coursera cover topics ranging from photography to probabilistic graphical models to constitutional struggles in the Muslim world. This diversity makes them hard to categorize. A couple of years ago we overhauled our course categories and implemented a new categorization system we call domains and subdomains. This post covers…","markups":[{"type":3,"start":45,"end":57,"href":"https://www.coursera.org/learn/photography","title":"","rel":"noopener","anchorType":0},{"type":3,"start":60,"end":91,"href":"https://www.coursera.org/learn/probabilistic-graphical-models","title":"","rel":"noopener","anchorType":0},{"type":3,"start":94,"end":139,"href":"https://www.coursera.org/learn/muslim-world","title":"","rel":"noopener","anchorType":0}]}],"sections":[{"name":"1821","startIndex":0}]},"isFullContent":false,"subtitle":"How Coursera generated course categories from thousands of courses using a data driven clustering approach."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"a5134b8d0e1f":{"id":"a5134b8d0e1f","versionId":"ce0b6b9cb7d5","creatorId":"f36ac0ad7592","homeCollectionId":"532b19e4043c","title":"The Power of Goals","detectedLanguage":"en","latestVersion":"ce0b6b9cb7d5","latestPublishedVersion":"ce0b6b9cb7d5","hasUnpublishedEdits":true,"latestRev":253,"createdAt":1534279477533,"updatedAt":1536725755558,"acceptedAt":0,"firstPublishedAt":1534282977854,"latestPublishedAt":1534344824215,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"How setting — and being reminded of — goals are moving the needle for learners","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*8Hdxovr0jOi8mtNBbEOa3g.gif","filter":"","backgroundSize":"","originalWidth":2380,"originalHeight":1180,"strategy":"resample","height":0,"width":0},"wordCount":567,"imageCount":2,"readingTime":2.5229559748427675,"subtitle":"How setting — and being reminded of — goals are moving the needle for learners","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":24,"isBookmarked":false,"tags":[{"slug":"education","name":"Education","postCount":591673,"metadata":{"postCount":591673,"coverImage":{"id":"1*dVmAyTviHMkGJq46uvrLcg.jpeg"}},"type":"Tag"},{"slug":"online-education","name":"Online Education","postCount":6917,"metadata":{"postCount":6917,"coverImage":{"id":"1*m1vc2W6B-zXhrpvVnqr_hw.jpeg","originalWidth":800,"originalHeight":533}},"type":"Tag"},{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://www.npr.org/sections/ed/2015/12/29/460143133/how-writing-down-specific-goals-can-empower-you","alts":[],"httpStatus":200},{"url":"https://about.coursera.org/careers/careers/opportunities/data-science/","alts":[],"httpStatus":200},{"url":"https://medium.com/@msorba/using-deep-learning-to-intervene-where-it-counts-aab76c7ce8dc","alts":[{"type":2,"url":"medium://p/aab76c7ce8dc"},{"type":3,"url":"medium://p/aab76c7ce8dc"}],"httpStatus":200}],"version":"0.3","generatedAt":1534344825228},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":545,"sectionCount":2,"readingList":0,"topics":[]},"coverless":true,"slug":"the-power-of-goals","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"the-power-of-goals-a5134b8d0e1f","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*8Hdxovr0jOi8mtNBbEOa3g.gif","originalWidth":2380,"originalHeight":1180,"isFeatured":true}},{"name":"08da","type":3,"text":"The Power of Goals","markups":[{"type":1,"start":0,"end":18}],"alignment":1},{"name":"cafe","type":13,"text":"How setting — and being reminded of — goals are moving the needle for learners","markups":[{"type":2,"start":0,"end":78}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"How setting — and being reminded of — goals are moving the needle for learners"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":"08da","type":3,"text":"The Power of Goals","markups":[{"type":1,"start":0,"end":18}]},{"name":"cafe","type":13,"text":"How setting — and being reminded of — goals are moving the needle for learners","markups":[{"type":2,"start":0,"end":78}]},{"name":"dc06","type":1,"text":"The very first moments of a course are a crucial point to engage learners for the long haul, and many learners need a nudge to get started — especially those who have yet to invest their time and resources in their learning journey.","markups":[]},{"name":"b036","type":1,"text":"The literature has consistently shown that having…","markups":[{"type":3,"start":43,"end":121,"href":"https://www.npr.org/sections/ed/2015/12/29/460143133/how-writing-down-specific-goals-can-empower-you","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"c62d","startIndex":0}]},"isFullContent":false,"subtitle":"How setting — and being reminded of — goals are moving the needle for learners"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"aab76c7ce8dc":{"id":"aab76c7ce8dc","versionId":"63e240cfc50e","creatorId":"f36ac0ad7592","homeCollectionId":"532b19e4043c","title":"Deep learning to intervene where it counts","detectedLanguage":"en","latestVersion":"63e240cfc50e","latestPublishedVersion":"63e240cfc50e","hasUnpublishedEdits":false,"latestRev":208,"createdAt":1534281111142,"updatedAt":1534345076144,"acceptedAt":0,"firstPublishedAt":1534281772599,"latestPublishedAt":1534345076144,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"How we built a feedback loop to optimize learning nudges","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*IH4WzXmYffVg-t2t","filter":"","backgroundSize":"","originalWidth":1114,"originalHeight":990,"strategy":"resample","height":0,"width":0},"wordCount":974,"imageCount":2,"readingTime":4.058805031446541,"subtitle":"How we built a feedback loop to optimize learning nudges","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":29,"isBookmarked":false,"tags":[{"slug":"machine-learning","name":"Machine Learning","postCount":354197,"metadata":{"postCount":354197,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"deep-learning","name":"Deep Learning","postCount":101344,"metadata":{"postCount":101344,"coverImage":{"id":"1*Soi19aBmSGjEvaSVD6qmbA.jpeg","originalWidth":736,"originalHeight":1129}},"type":"Tag"},{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"online-education","name":"Online Education","postCount":6917,"metadata":{"postCount":6917,"coverImage":{"id":"1*m1vc2W6B-zXhrpvVnqr_hw.jpeg","originalWidth":800,"originalHeight":533}},"type":"Tag"},{"slug":"education","name":"Education","postCount":591673,"metadata":{"postCount":591673,"coverImage":{"id":"1*dVmAyTviHMkGJq46uvrLcg.jpeg"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://about.coursera.org/careers/careers/opportunities/data-science/","alts":[],"httpStatus":200},{"url":"https://medium.com/coursera-engineering/in-course-help-2a475bf3bc2c","alts":[{"type":2,"url":"medium://p/2a475bf3bc2c"},{"type":3,"url":"medium://p/2a475bf3bc2c"}],"httpStatus":200}],"version":"0.3","generatedAt":1534345091950},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":523,"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"}]},"coverless":true,"slug":"using-deep-learning-to-intervene-where-it-counts","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"using-deep-learning-to-intervene-where-it-counts-aab76c7ce8dc","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*IH4WzXmYffVg-t2t","originalWidth":1114,"originalHeight":990,"isFeatured":true}},{"name":"bd4c","type":3,"text":"Deep learning to intervene where it counts","markups":[{"type":1,"start":0,"end":42}],"alignment":1},{"name":"52d1","type":13,"text":"How we built a feedback loop to optimize learning nudges","markups":[{"type":2,"start":0,"end":56}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"How we built a feedback loop to optimize learning nudges"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":"bd4c","type":3,"text":"Deep learning to intervene where it counts","markups":[{"type":1,"start":0,"end":42}]},{"name":"52d1","type":13,"text":"How we built a feedback loop to optimize learning nudges","markups":[{"type":2,"start":0,"end":56}]},{"name":"378b","type":1,"text":"Learning isn’t easy. To make it a little easier, we launched In-Course Help, delivering behavioral and pedagogical nudges as learners move through course material. In this post, we cover our process and learnings in implementing a machine learning feedback loop for personalizing and optimizing these nudges.","markups":[{"type":3,"start":61,"end":75,"href":"https://medium.com/coursera-engineering/in-course-help-2a475bf3bc2c","title":"","rel":"","anchorType":0}]},{"name":"3792","type":1,"text":"In the first implementation…","markups":[{"type":2,"start":258,"end":268}]}],"sections":[{"name":"8398","startIndex":0}]},"isFullContent":false,"subtitle":"How we built a feedback loop to optimize learning nudges"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"70a7e06e667f":{"id":"70a7e06e667f","versionId":"2accbce9d0d8","creatorId":"8c25ad9d3047","homeCollectionId":"532b19e4043c","title":"Skills benchmarking","detectedLanguage":"en","latestVersion":"2accbce9d0d8","latestPublishedVersion":"2accbce9d0d8","hasUnpublishedEdits":false,"latestRev":239,"createdAt":1533657119144,"updatedAt":1536725737356,"acceptedAt":0,"firstPublishedAt":1533659785738,"latestPublishedAt":1536725737356,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"How ML-powered skills insights are guiding talent strategy and development","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*ExWIwBEdLYntqd0V.png","filter":"","backgroundSize":"","originalWidth":1999,"originalHeight":1147,"strategy":"resample","height":0,"width":0},"wordCount":625,"imageCount":4,"readingTime":3.0584905660377357,"subtitle":"How ML-powered skills insights are guiding talent strategy and development","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":13,"isBookmarked":false,"tags":[{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":354197,"metadata":{"postCount":354197,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"artificial-intelligence","name":"Artificial Intelligence","postCount":458956,"metadata":{"postCount":458956,"coverImage":{"id":"1*gAn_BSffVBcwCIR6bDgK1g.jpeg"}},"type":"Tag"},{"slug":"learning-and-development","name":"Learning And Development","postCount":13190,"metadata":{"postCount":13190,"coverImage":{"id":"0*XsfkzIQgDAwRKlPb","originalWidth":6016,"originalHeight":4016,"isFeatured":true,"unsplashPhotoId":"1MHU3zpTvro"}},"type":"Tag"},{"slug":"skills","name":"Skills","postCount":24541,"metadata":{"postCount":24541,"coverImage":{"id":"1*S9guxkt7I-y-8lvZqCNg6g.jpeg","originalWidth":736,"originalHeight":981}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"http://www.coursera.org/business","alts":[],"httpStatus":200},{"url":"https://www.technologyreview.com/s/611790/coursera-ai-skills/","alts":[{"type":1,"url":"https://cdn.ampproject.org/c/s/www.technologyreview.com/s/611790/coursera-ai-skills/amp/"}],"httpStatus":200},{"url":"https://medium.com/coursera-engineering/courseras-skills-graph-helps-learners-find-the-right-content-to-reach-their-goals-b10418a05214","alts":[{"type":2,"url":"medium://p/b10418a05214"},{"type":3,"url":"medium://p/b10418a05214"}],"httpStatus":200},{"url":"https://www.businesswire.com/news/home/20180807005203/en","alts":[],"httpStatus":200},{"url":"https://about.coursera.org/careers/careers/opportunities/data-science/","alts":[],"httpStatus":200},{"url":"https://medium.com/@emilyglassbergsands","alts":[{"type":2,"url":"medium://@emilyglassbergsands"},{"type":3,"url":"medium://@emilyglassbergsands"}],"httpStatus":200}],"version":"0.3","generatedAt":1536725739034},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":185,"sectionCount":2,"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"}]},"coverless":true,"slug":"how-our-skills-benchmarking-technology-is-creating-value-for-companies","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"how-our-skills-benchmarking-technology-is-creating-value-for-companies-70a7e06e667f","previewContent":{"bodyModel":{"paragraphs":[{"name":"ba9d","type":3,"text":"Skills benchmarking","markups":[],"alignment":1},{"name":"a0fa","type":3,"text":"How ML-powered skills insights are guiding talent strategy and development","markups":[],"alignment":1},{"name":"025a","type":1,"text":"by Vinod Bakthavachalam and Emily Glassberg Sands","markups":[{"type":3,"start":28,"end":49,"href":"https://medium.com/@emilyglassbergsands","title":"","rel":"","anchorType":0},{"type":2,"start":3,"end":49}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"How ML-powered skills insights are guiding talent strategy and development"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":4,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"ba9d","type":3,"text":"Skills benchmarking","markups":[]},{"name":"a0fa","type":3,"text":"How ML-powered skills insights are guiding talent strategy and development","markups":[]},{"name":"025a","type":1,"text":"by Vinod Bakthavachalam and Emily Glassberg Sands","markups":[{"type":3,"start":28,"end":49,"href":"https://medium.com/@emilyglassbergsands","title":"","rel":"","anchorType":0},{"type":2,"start":3,"end":49}]},{"name":"2c6f","type":1,"text":"… and check out the MIT Technology Review article on this release! …","markups":[{"type":3,"start":20,"end":49,"href":"https://www.technologyreview.com/s/611790/coursera-ai-skills/","title":"","rel":"noopener","anchorType":0},{"type":2,"start":0,"end":68}]},{"name":"f8ce","type":1,"text":"With technology increasingly transforming the way we work, companies need deep talent intelligence to stay competitive. This includes understanding how employees’ skill profiles stack up to market, where skills gaps…","markups":[]}],"sections":[{"name":"e309","startIndex":0}]},"isFullContent":false,"subtitle":"How ML-powered skills insights are guiding talent strategy and development"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"987e9adb7fee":{"id":"987e9adb7fee","versionId":"8fc0acc3c64d","creatorId":"8c25ad9d3047","homeCollectionId":"532b19e4043c","title":"Measuring outcomes of high schoolers taking Computer Science courses","detectedLanguage":"en","latestVersion":"8fc0acc3c64d","latestPublishedVersion":"8fc0acc3c64d","hasUnpublishedEdits":false,"latestRev":201,"createdAt":1532530319847,"updatedAt":1532708364287,"acceptedAt":0,"firstPublishedAt":1532531635668,"latestPublishedAt":1532537539047,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"A case study on using Coursera in the classroom","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*XmJjJY2bk5dK6pHD","filter":"","backgroundSize":"","originalWidth":1132,"originalHeight":502,"strategy":"resample","height":0,"width":0},"wordCount":656,"imageCount":2,"readingTime":2.8588050314465407,"subtitle":"A case study on using Coursera in the classroom","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":17,"isBookmarked":false,"tags":[{"slug":"education","name":"Education","postCount":591673,"metadata":{"postCount":591673,"coverImage":{"id":"1*dVmAyTviHMkGJq46uvrLcg.jpeg"}},"type":"Tag"},{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"computer-science","name":"Computer Science","postCount":55939,"metadata":{"postCount":55939,"coverImage":{"id":"0*BTaIEoMZlgOipidp","originalWidth":6016,"originalHeight":4016,"isFeatured":true,"unsplashPhotoId":"qDY9ahp0Mto"}},"type":"Tag"},{"slug":"social-impact","name":"Social Impact","postCount":17998,"metadata":{"postCount":17998,"coverImage":{"id":"1*Uv7VyeZD509oRm9UBaqUHg.jpeg","originalWidth":6720,"originalHeight":4480,"isFeatured":true,"focusPercentX":50,"focusPercentY":33}},"type":"Tag"},{"slug":"online-education","name":"Online Education","postCount":6917,"metadata":{"postCount":6917,"coverImage":{"id":"1*m1vc2W6B-zXhrpvVnqr_hw.jpeg","originalWidth":800,"originalHeight":533}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":2,"links":{"entries":[{"url":"https://about.coursera.org/careers/careers/opportunities/data-science/","alts":[],"httpStatus":200},{"url":"https://www.coursera.org/specializations/computer-fundamentals","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1532537540977},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":282,"sectionCount":2,"readingList":0,"topics":[]},"coverless":true,"slug":"measuring-outcomes-of-high-schoolers-taking-cs-courses","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"measuring-outcomes-of-high-schoolers-taking-cs-courses-987e9adb7fee","previewContent":{"bodyModel":{"paragraphs":[{"name":"ca2e","type":3,"text":"Measuring outcomes of high schoolers taking Computer Science courses","markups":[],"alignment":1},{"name":"d6af","type":13,"text":"A case study on using Coursera in the classroom","markups":[],"alignment":1},{"name":"bfbd","type":1,"text":"In 2017, Coursera began working with the Bronx Science High School to provide students access to Computer…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"A case study on using Coursera in the classroom"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":4,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"ca2e","type":3,"text":"Measuring outcomes of high schoolers taking Computer Science courses","markups":[]},{"name":"d6af","type":13,"text":"A case study on using Coursera in the classroom","markups":[]},{"name":"bfbd","type":1,"text":"In 2017, Coursera began working with the Bronx Science High School to provide students access to Computer Science (CS) courses over the summer, specifically the Fundamentals of Computing Specialization from Rice University. As part of the program we surveyed the students before and after program participation and measured the impact…","markups":[{"type":3,"start":161,"end":186,"href":"https://www.coursera.org/specializations/computer-fundamentals","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"33a0","startIndex":0}]},"isFullContent":false,"subtitle":"A case study on using Coursera in the classroom"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"d34e5f37303":{"id":"d34e5f37303","versionId":"2941fb5721f3","creatorId":"1fc56da4b674","homeCollectionId":"532b19e4043c","title":"Building data services to bring education to millions, Part III","detectedLanguage":"en","latestVersion":"2941fb5721f3","latestPublishedVersion":"2941fb5721f3","hasUnpublishedEdits":false,"latestRev":48,"createdAt":1531929644002,"updatedAt":1531937740482,"acceptedAt":0,"firstPublishedAt":1531930916549,"latestPublishedAt":1531937740482,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Piloting Self-Serve Analytics as a Service","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*RczCL-xS55Watg4k","filter":"","backgroundSize":"","originalWidth":1260,"originalHeight":796,"strategy":"resample","height":0,"width":0},"wordCount":663,"imageCount":1,"readingTime":2.7018867924528305,"subtitle":"Piloting Self-Serve Analytics as a Service","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":14,"isBookmarked":false,"tags":[{"slug":"analytics","name":"Analytics","postCount":51192,"metadata":{"postCount":51192,"coverImage":{"id":"1*Lqx5Zg187zZY1UewaG7Q7Q.jpeg","originalWidth":4200,"originalHeight":2800,"isFeatured":true}},"type":"Tag"},{"slug":"self-service-portal","name":"Self Service Portal","postCount":153,"metadata":{"postCount":153,"coverImage":{"id":"1*-1i8Z_9lzgkDXjwQ-bLrtQ.jpeg","originalWidth":626,"originalHeight":352,"isFeatured":true}},"type":"Tag"},{"slug":"data-engineering","name":"Data Engineering","postCount":38469,"metadata":{"postCount":38469,"coverImage":{"id":"1*wJurAMzy5rcdibdSdeD7gg.png","originalWidth":1024,"originalHeight":1024,"isFeatured":true}},"type":"Tag"},{"slug":"business-intelligence","name":"Business Intelligence","postCount":23500,"metadata":{"postCount":23500,"coverImage":{"id":"0*pv-cTgMuAxVugzu0","originalWidth":7146,"originalHeight":7162,"isFeatured":true,"alt":"Photo by USGS on Unsplash","unsplashPhotoId":"hoS3dzgpHzw"}},"type":"Tag"},{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://medium.com/coursera-engineering/building-data-services-to-bring-education-to-millions-part-ii-38bd3b2e93b3","alts":[{"type":2,"url":"medium://p/38bd3b2e93b3"},{"type":3,"url":"medium://p/38bd3b2e93b3"}],"httpStatus":200},{"url":"https://medium.com/coursera-engineering/building-data-services-to-bring-education-to-millions-part-i-2222647aae28","alts":[{"type":2,"url":"medium://p/2222647aae28"},{"type":3,"url":"medium://p/2222647aae28"}],"httpStatus":200},{"url":"https://about.coursera.org/careers/careers/opportunities/data-science/","alts":[],"httpStatus":200},{"url":"https://medium.com/p/38bd3b2e93b3","alts":[{"type":2,"url":"medium://p/38bd3b2e93b3"},{"type":3,"url":"medium://p/38bd3b2e93b3"}],"httpStatus":200}],"version":"0.3","generatedAt":1531937741254},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":315,"sectionCount":1,"readingList":0,"topics":[]},"coverless":true,"slug":"building-data-services-to-bring-education-to-millions-part-iii","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"building-data-services-to-bring-education-to-millions-part-iii-d34e5f37303","previewContent":{"bodyModel":{"paragraphs":[{"name":"c19b","type":3,"text":"Building data services to bring education to millions, Part III","markups":[],"alignment":1},{"name":"5215","type":1,"text":"Piloting Self-Serve Analytics as a Service","markups":[{"type":1,"start":0,"end":42}],"alignment":1},{"name":"8bc0","type":1,"text":"This post is Part III of the “Building Data Services” series (Part II here).","markups":[{"type":3,"start":70,"end":74,"href":"https://medium.com/coursera-engineering/building-data-services-to-bring-education-to-millions-part-ii-38bd3b2e93b3","title":"","rel":"","anchorType":0},{"type":2,"start":0,"end":76}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Piloting Self-Serve Analytics as a Service"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":"c19b","type":3,"text":"Building data services to bring education to millions, Part III","markups":[]},{"name":"5215","type":1,"text":"Piloting Self-Serve Analytics as a Service","markups":[{"type":1,"start":0,"end":42}]},{"name":"8bc0","type":1,"text":"This post is Part III of the “Building Data Services” series (Part II here).","markups":[{"type":3,"start":70,"end":74,"href":"https://medium.com/coursera-engineering/building-data-services-to-bring-education-to-millions-part-ii-38bd3b2e93b3","title":"","rel":"","anchorType":0},{"type":2,"start":0,"end":76}]},{"name":"4738","type":1,"text":"Last month, we shared how we employ embedded analytics to power Coursera’s In-Platform Dashboards, serving ready-made descriptive and advanced analytics to partner institutions and enterprise customers. In this post, we…","markups":[{"type":3,"start":29,"end":97,"href":"https://medium.com/p/38bd3b2e93b3","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"dd46","startIndex":0}]},"isFullContent":false,"subtitle":"Piloting Self-Serve Analytics as a Service"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"996237bc1759":{"id":"996237bc1759","versionId":"54c8eca6c380","creatorId":"715b99bc6b5c","homeCollectionId":"532b19e4043c","title":"Using Flow Generics at Coursera","detectedLanguage":"en","latestVersion":"54c8eca6c380","latestPublishedVersion":"54c8eca6c380","hasUnpublishedEdits":false,"latestRev":1990,"createdAt":1516316878507,"updatedAt":1532002069079,"acceptedAt":0,"firstPublishedAt":1531853858340,"latestPublishedAt":1531853858340,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"In popular programming languages like Java and C#, generics serve as one of the tools for creating reusable components. By using generics…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*qe5vpF1NKVhSwqIglVkIaQ.png","filter":"","backgroundSize":"","originalWidth":1618,"originalHeight":1224,"strategy":"resample","height":0,"width":0},"wordCount":776,"imageCount":1,"readingTime":3.128301886792453,"subtitle":"In popular programming languages like Java and C#, generics serve as one of the tools for creating reusable components. By using generics…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":14,"isBookmarked":false,"tags":[{"slug":"javascript","name":"JavaScript","postCount":285856,"metadata":{"postCount":285856,"coverImage":{"id":"0*BTaIEoMZlgOipidp","originalWidth":6016,"originalHeight":4016,"isFeatured":true,"unsplashPhotoId":"qDY9ahp0Mto"}},"type":"Tag"},{"slug":"flow","name":"Flow","postCount":7985,"metadata":{"postCount":7985,"coverImage":{"id":"1*cXeO3PjRFsXngtBwKolKmg.png","originalWidth":2810,"originalHeight":1540,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://flow.org/en/docs/types/generics/","alts":[],"httpStatus":200},{"url":"https://flow.org/try/#0PQKgBAAgZgNg9gdzCYAoAlgWwA5wE4AuYASgKYCGAxkVHnJmAOR4XWMDcqqBAntqWAAKdbAGcAPABUAfGAC8YAN6owYdAVKZRALjABBPHnI8p0gDQqwcAHYBlUjFLVdACgNGTMgJTzZANzh0ABMLAF9OShhyUVEwAEkNTHtHanxTMFIADw1rINiyKgIAOgBhelxrUmsCcWE4MVNZZVUWXNI8Fx9m1TBgYDAAWXJsMAIACzoAVwBzMbVE2LgAIwArJyJyXLAg9FFsKJ4wcjBKMacAayW4TKOt9U0ignVHMCh8DKo5+8wiy1DUf7cPgCABqwVIcHkSksTwIjl0ogIeHQ1mmFlU5Em43wugA-Ijkaj0WBHKjxnjrJNMEt2mFOKhKDZEWAwUEIcl1jiwCUojFxAlNBzUnhxKyIdJZAoBUkHJy8PTItFYoJyK0CGUcDYqkQsjk8iRWMUNRVteJFKEmpY-OC4EKiAoXKJZdRSEExXBRD45JbVABIRnWURwRxFeDTFyMABi6DwzOtbMhTpSGiC2kYZjASfWrvdogA2gAGAC6Xk4PV6-Uj8CQCHQMBgRxgQbANKOSxeBEhKKg7VGZ1GwKsUEzzpTuYAhGAAKrWRmYTDavsCGAogQ06ujROkATtOh4SyqPonJnB0ihuDhrMut02-PFopLVWlv6+rgtKpsjpdA-HwNEFGMoY6zSqIkiDgoeY-qo3TlqobxwLojCPng6ZQWAoTEuWMGwY+ABeiHIahsHocRpGqD+RZlj0P4BsygEsNQIFgfwUKQcR2HlrC8JMAAMquqoGtMLAxOgNhEWAvq+pi2J4Ihei5CwSAAHLTOJkmktM5JgAAjAATAAzAALJhPQYWhHE9FxpCIQA4kYOyLgAIqQoiUNqalSViYxcow8lBIpYAqR5GlaXpRkAKwmao-zlpRP4-iwBCTHg1hgC4aGijadrvGhh79Cw+xUAI9HAQszECLW4xqLO+AMQQTGDp2I4CLAiAZIY+CiLl8yaKIciKCVjFlcCMWkTYdr9eMuxFPG7KjqN5bANIP5eH8AJAA","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1531853858852},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":176,"sectionCount":1,"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"}]},"coverless":true,"slug":"using-flow-generics-at-coursera","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"using-flow-generics-at-coursera-996237bc1759","previewContent":{"bodyModel":{"paragraphs":[{"name":"6693","type":3,"text":"Using Flow Generics at Coursera","markups":[],"alignment":1},{"name":"43b1","type":1,"text":"In popular programming languages like Java and C#, generics serve as one of the tools for creating reusable components. By using generics, the programmer is able to create safe classes and functions that can operate on objects of various types.","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"In popular programming languages like Java and C#, generics serve as one of the tools for creating reusable components. By using generics…"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":4,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"6693","type":3,"text":"Using Flow Generics at Coursera","markups":[]},{"name":"43b1","type":1,"text":"In popular programming languages like Java and C#, generics serve as one of the tools for creating reusable components. By using generics, the programmer is able to create safe classes and functions that can operate on objects of various types.","markups":[]},{"name":"b912","type":1,"text":"Similarly, Flow offers generics as a way of type abstraction…","markups":[{"type":3,"start":76,"end":80,"href":"https://flow.org/en/docs/types/generics/","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"c9be","startIndex":0}]},"isFullContent":false,"subtitle":"In popular programming languages like Java and C#, generics serve as one of the tools for creating reusable components. By using generics…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"b10418a05214":{"id":"b10418a05214","versionId":"39940f4066af","creatorId":"9999dd095c18","homeCollectionId":"532b19e4043c","title":"How our Skills Graph is helping learners find the right content to reach their goals","detectedLanguage":"en","latestVersion":"39940f4066af","latestPublishedVersion":"39940f4066af","hasUnpublishedEdits":false,"latestRev":371,"createdAt":1531229907919,"updatedAt":1531754694058,"acceptedAt":0,"firstPublishedAt":1531231489374,"latestPublishedAt":1531454811642,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"At Coursera, we use data to power our product and better serve our learners. One example is our Skills Graph —a series of algorithms…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*N53u-A_ib2ccSE6u","filter":"","backgroundSize":"","originalWidth":1600,"originalHeight":857,"strategy":"resample","height":0,"width":0},"wordCount":761,"imageCount":4,"readingTime":3.571698113207547,"subtitle":"At Coursera, we use data to power our product and better serve our learners. One example is our Skills Graph —a series of algorithms…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":152,"isBookmarked":false,"tags":[{"slug":"education","name":"Education","postCount":591673,"metadata":{"postCount":591673,"coverImage":{"id":"1*dVmAyTviHMkGJq46uvrLcg.jpeg"}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":354197,"metadata":{"postCount":354197,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":8,"links":{"entries":[{"url":"https://about.coursera.org/careers/careers/opportunities/data-science/","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1531454812295},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":815,"sectionCount":2,"readingList":0,"topics":[{"topicId":"a205669c739e","slug":"education","createdAt":1493934008418,"deletedAt":0,"image":{"id":"1*T4rtHBuFYlSoP4OuU9W0yQ@2x.jpeg","originalWidth":5536,"originalHeight":3691},"name":"Education","description":"Live it, learn it.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"News and Articles About Education — 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"},{"topicId":"f862bfc84e38","slug":"technology","createdAt":1487918016768,"deletedAt":0,"image":{"id":"1*XxQLrxqHUlIHg5j-eIQrPQ@2x.png","originalWidth":640,"originalHeight":384},"name":"Technology","description":"The download.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Technology News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"courseras-skills-graph-helps-learners-find-the-right-content-to-reach-their-goals","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"courseras-skills-graph-helps-learners-find-the-right-content-to-reach-their-goals-b10418a05214","previewContent":{"bodyModel":{"paragraphs":[{"name":"543c","type":3,"text":"How our Skills Graph is helping learners find the right content to reach their goals","markups":[],"alignment":1},{"name":"3101","type":1,"text":"At Coursera, we use data to power our product and better serve our learners. One example is our Skills Graph —a series of algorithms connecting learners, content, and careers through a…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"At Coursera, we use data to power our product and better serve our learners. One example is our Skills Graph —a series of algorithms…"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"532b19e4043c","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":"543c","type":3,"text":"How our Skills Graph is helping learners find the right content to reach their goals","markups":[]},{"name":"3101","type":1,"text":"At Coursera, we use data to power our product and better serve our learners. One example is our Skills Graph —a series of algorithms connecting learners, content, and careers through a common skills currency. At its essence, the graph maps a robust library of skills to each other, to the…","markups":[]}],"sections":[{"name":"ea1b","startIndex":0}]},"isFullContent":false,"subtitle":"At Coursera, we use data to power our product and better serve our learners. One example is our Skills Graph —a series of algorithms…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"}}},"paging":{"path":"/_/api/collections/532b19e4043c/stream","next":{"to":"1531231489374","ignoredIds":[],"page":3}},"collection":{"id":"532b19e4043c","name":"Coursera Engineering","slug":"coursera-engineering","tags":["COURSERA","ENGINEERING"],"creatorId":"d987eade03ed","description":"We're changing the way the world learns! Posts from Coursera engineers and data scientists.","shortDescription":"We're changing the way the world learns!","image":{"imageId":"1*j2vLJO9qZg435iRYfd2Mfg.png","filter":"","backgroundSize":"","originalWidth":400,"originalHeight":400,"strategy":"resample","height":0,"width":0},"metadata":{"followerCount":3780,"activeAt":1679508955293},"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":"1*zXjOKA4JKHH04Ipi2NI0jA.png","filter":"","backgroundSize":"","originalWidth":1156,"originalHeight":164,"strategy":"resample","height":0,"width":0},"twitterUsername":"CourseraEng","publicEmail":"medium@coursera.org","sections":[{"type":2,"collectionHeaderMetadata":{"title":"Coursera Engineering","description":"We're changing the way the world learns!","backgroundImage":{"id":"1*SUNVx-fZ3AwO13vvCEPqsQ.jpeg","originalWidth":1770,"originalHeight":890},"logoImage":{},"alignment":2,"layout":6}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":7,"postIds":["9cd6e8ac8b5c","f5525394da63","7541bf80eaca","3382f0711c24","df576af72502","493905a95364","3296af2805db"],"sectionHeader":"Latest"}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":24,"postIds":["dd82bb25a0f1","491b6a7e0708","878d40c45e77","62155768d595","621215e9e3f1","2f6070083bda","4c587a4ad9a8","5f1bac9cd176","84cf9b38cd52","87eecb39d292","6f6dd3bc5d5f","57b01b7c5c72","31f956bd592a","cdfeb817faf8","6658617cc330","5d45e6b073ba","89de0104bcbd","a5134b8d0e1f","aab76c7ce8dc","70a7e06e667f","987e9adb7fee","d34e5f37303","996237bc1759","b10418a05214"]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":24,"postIds":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":9,"postIds":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":9,"postIds":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":9,"postIds":[]}}],"tintColor":"#FF82A8E1","lightText":false,"favicon":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"colorPalette":{"defaultBackgroundSpectrum":{"colorPoints":[{"color":"#FF6388BF","point":0},{"color":"#FF5D7EB0","point":0.1},{"color":"#FF5775A1","point":0.2},{"color":"#FF516B91","point":0.3},{"color":"#FF4A6182","point":0.4},{"color":"#FF435673","point":0.5},{"color":"#FF3C4B63","point":0.6},{"color":"#FF334054","point":0.7},{"color":"#FF2A3444","point":0.8},{"color":"#FF202833","point":0.9},{"color":"#FF151B23","point":1}],"backgroundColor":"#FFFFFFFF"},"tintBackgroundSpectrum":{"colorPoints":[{"color":"#FF82A8E1","point":0},{"color":"#FF8FB1E6","point":0.1},{"color":"#FF9CBBEA","point":0.2},{"color":"#FFA8C4EF","point":0.3},{"color":"#FFB4CDF3","point":0.4},{"color":"#FFC0D6F7","point":0.5},{"color":"#FFCCDEFB","point":0.6},{"color":"#FFD8E7FF","point":0.7},{"color":"#FFE3EFFF","point":0.8},{"color":"#FFEFF7FF","point":0.9},{"color":"#FFFAFFFF","point":1}],"backgroundColor":"#FF82A8E1"},"highlightSpectrum":{"colorPoints":[{"color":"#FFECF3FF","point":0},{"color":"#FFE8F2FF","point":0.1},{"color":"#FFE5F0FF","point":0.2},{"color":"#FFE1EFFF","point":0.3},{"color":"#FFDDEDFF","point":0.4},{"color":"#FFD9EBFF","point":0.5},{"color":"#FFD6EAFF","point":0.6},{"color":"#FFD2E8FF","point":0.7},{"color":"#FFCEE6FF","point":0.8},{"color":"#FFCAE5FF","point":0.9},{"color":"#FFC6E3FF","point":1}],"backgroundColor":"#FFFFFFFF"},"darkBackgroundSpectrum":{"colorPoints":[{"color":"#FF7BA0D9","point":0},{"color":"#FF87A9DD","point":0.1},{"color":"#FF92B1E0","point":0.2},{"color":"#FF9EB9E4","point":0.3},{"color":"#FFA9C1E7","point":0.4},{"color":"#FFB4C9EA","point":0.5},{"color":"#FFBFD1EE","point":0.6},{"color":"#FFCAD9F1","point":0.7},{"color":"#FFD5E0F4","point":0.8},{"color":"#FFDFE8F7","point":0.9},{"color":"#FFE9EFFB","point":1}],"backgroundColor":"#FF000000"}},"navItems":[{"type":4,"title":"Frontend","url":"https://medium.com/coursera-engineering/frontend/home","topicId":"ecccd47bf364","source":"topicId"},{"type":4,"title":"Backend","url":"https://medium.com/coursera-engineering/backend/home","topicId":"4ade75150ff3","source":"topicId"},{"type":4,"title":"Mobile","url":"https://medium.com/coursera-engineering/mobile-development/home","topicId":"a467595a7ee1","source":"topicId"},{"type":4,"title":"Data","url":"https://medium.com/coursera-engineering/data/home","topicId":"ea551161649","source":"topicId"},{"type":4,"title":"Life At Coursera","url":"https://medium.com/coursera-engineering/engineering-life-coursera/home","topicId":"97a320fc1b11","source":"topicId"},{"type":3,"title":"Coursera Blog","url":"https://blog.coursera.org/"}],"colorBehavior":1,"ampLogo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"header":{"title":"Coursera Engineering","description":"We're changing the way the world learns!","backgroundImage":{"id":"1*SUNVx-fZ3AwO13vvCEPqsQ.jpeg","originalWidth":1770,"originalHeight":890},"logoImage":{},"alignment":2,"layout":6},"subscriberCount":3780,"tagline":"We're changing the way the world learns!","isOptedIntoAurora":false,"isCurationAllowedByDefault":false,"polarisCoverImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"ptsQualifiedAt":1616092813501,"type":"Collection"},"header":{"title":"Coursera Engineering","description":"We're changing the way the world learns!","backgroundImage":{"id":"1*SUNVx-fZ3AwO13vvCEPqsQ.jpeg","originalWidth":1770,"originalHeight":890},"logoImage":{},"alignment":2,"layout":6},"streamItems":[{"createdAt":1732709004173,"randomId":"34ec375e531b","section":{"items":[{"post":{"postId":"9cd6e8ac8b5c"},"itemType":"post"},{"post":{"postId":"f5525394da63"},"itemType":"post"},{"post":{"postId":"7541bf80eaca"},"itemType":"post"},{"post":{"postId":"3382f0711c24"},"itemType":"post"},{"post":{"postId":"df576af72502"},"itemType":"post"},{"post":{"postId":"493905a95364"},"itemType":"post"},{"post":{"postId":"3296af2805db"},"itemType":"post"}],"layout":4,"heading":{"fallbackTitle":"Latest","headingBasic":{"title":"Latest"},"headingType":"headingBasic"}},"itemType":"section","type":"StreamItem"},{"createdAt":1732709004173,"randomId":"6473daf91e16","section":{"items":[{"post":{"postId":"dd82bb25a0f1"},"itemType":"post"},{"post":{"postId":"491b6a7e0708"},"itemType":"post"},{"post":{"postId":"878d40c45e77"},"itemType":"post"},{"post":{"postId":"62155768d595"},"itemType":"post"},{"post":{"postId":"621215e9e3f1"},"itemType":"post"},{"post":{"postId":"2f6070083bda"},"itemType":"post"},{"post":{"postId":"4c587a4ad9a8"},"itemType":"post"},{"post":{"postId":"5f1bac9cd176"},"itemType":"post"},{"post":{"postId":"84cf9b38cd52"},"itemType":"post"},{"post":{"postId":"87eecb39d292"},"itemType":"post"},{"post":{"postId":"6f6dd3bc5d5f"},"itemType":"post"},{"post":{"postId":"57b01b7c5c72"},"itemType":"post"},{"post":{"postId":"31f956bd592a"},"itemType":"post"},{"post":{"postId":"cdfeb817faf8"},"itemType":"post"},{"post":{"postId":"6658617cc330"},"itemType":"post"},{"post":{"postId":"5d45e6b073ba"},"itemType":"post"},{"post":{"postId":"89de0104bcbd"},"itemType":"post"},{"post":{"postId":"a5134b8d0e1f"},"itemType":"post"},{"post":{"postId":"aab76c7ce8dc"},"itemType":"post"},{"post":{"postId":"70a7e06e667f"},"itemType":"post"},{"post":{"postId":"987e9adb7fee"},"itemType":"post"},{"post":{"postId":"d34e5f37303"},"itemType":"post"},{"post":{"postId":"996237bc1759"},"itemType":"post"},{"post":{"postId":"b10418a05214"},"itemType":"post"}],"layout":4},"itemType":"section","type":"StreamItem"}]}) // ]]></script><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'8e91f98a5a365feb',t:'MTczMjcwOTAwNC4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10