CINXE.COM
Archive of stories published by 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>Archive of stories published by Coursera Engineering – Medium</title><link rel="canonical" href="https://medium.com/coursera-engineering/archive"><meta name="robots" content="index,follow"><meta name="title" content="Archive of stories published by Coursera Engineering – Medium"><meta name="referrer" content="unsafe-url"><meta name="description" content="Read top stories published by Coursera Engineering. We're changing the way the world learns! Posts from Coursera engineers and data scientists."><meta name="theme-color" content="#000000"><meta property="og:title" content="Archive of stories published by Coursera Engineering – Medium"><meta property="twitter:title" content="Archive of stories published by Coursera Engineering – Medium"><meta property="og:url" content="https://medium.com/coursera-engineering/archive"><meta property="fb:app_id" content="542599432471018"><meta property="og:description" content="Read top stories published by Coursera Engineering. We're changing the way the world learns! Posts from Coursera engineers and data scientists."><meta name="twitter:description" content="Read top stories published by Coursera Engineering. We're changing the way the world learns! Posts from Coursera engineers and data scientists."><meta name="twitter:image:src" content=""><meta property="og:type" content="medium-com:collection"><meta name="twitter:card" content="summary_large_image"><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/archive"><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/archive"><meta property="al:android:url" content="medium://coursera-engineering/archive"><meta property="al:web:url" content="https://medium.com/coursera-engineering/archive"><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/archive" /><link rel="stylesheet" href="https://cdn-static-1.medium.com/_/fp/css/main-branding-base.W9J-2zkF03j8TkriAGn1Tg.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 u-boxShadow4px12pxBlackLightest 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 class="u-flexCenter u-height65 u-xs-height56"><span class="u-inlineBlock u-height28 u-xs-height24 u-verticalAlignTop u-marginRight20 u-marginLeft15 u-borderRightLighter"></span></div><div class="u-flexCenter u-height65 u-xs-height56 u-marginRight18"><div class="u-xs-show"><a class="link u-baseColor--link avatar avatar--roundedRectangle" href="https://medium.com/coursera-engineering?source=avatar-lo_b635b8b32f90-532b19e4043c" title="Go to Coursera Engineering" aria-label="Go to Coursera Engineering" data-action-source="avatar-lo_b635b8b32f90-532b19e4043c"><img src="https://cdn-images-1.medium.com/fit/c/64/64/1*j2vLJO9qZg435iRYfd2Mfg.png" class="avatar-image avatar-image--icon" alt="Coursera Engineering"></a></div><div class="u-xs-hide"><a href="https://medium.com/coursera-engineering?source=logo-lo_b635b8b32f90---532b19e4043c" class="u-flexCenter js-collectionLogoOrName"><img height="36" width="254" src="https://cdn-images-1.medium.com/letterbox/508/72/50/50/1*zXjOKA4JKHH04Ipi2NI0jA.png?source=logoAvatar-lo_b635b8b32f90---532b19e4043c" alt="Coursera Engineering" /></a></div></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%2Farchive&source=--------------------------nav_reg&operation=login" data-action="sign-in-prompt" data-redirect="https://medium.com/coursera-engineering/archive" 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%2Farchive&source=--------------------------nav_reg&operation=register" data-action="sign-up-prompt" data-redirect="https://medium.com/coursera-engineering/archive" 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="container u-maxWidth1040 u-marginTop30"><div class="col u-xs-size12of12 u-size8of12 u-padding0"><header class="heading heading--borderedBottom" ><div class="u-clearfix"><div class="heading-content u-floatLeft"><span class="heading-title">Archive of stories published by Coursera Engineering</span></div></div></header><div class="u-marginTop20 container u-fontSize14 u-textColorDark"><div class="row"><div class="col u-inlineBlock u-paddingLeft0 u-verticalAlignTop u-paddingRight0"><a class="button button--withChrome u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--withIconRight button--withIconAndLabel button--withSvgIcon button--chromeless" href="https://medium.com/coursera-engineering/archive"><span class="button-label"><strong>All</strong></span><span class="button-defaultState"><span class="svgIcon svgIcon--arrowRight svgIcon--21px is-flushRight"><svg class="svgIcon-use" width="21" height="21" ><path d="M8.3 4.2l6.4 6.3-6.4 6.3-.8-.8 5.5-5.5L7.5 5" fill-rule="evenodd"/></svg></span></span></a></div><div class="col u-inlineBlock u-maxWidth300 u-verticalAlignTop u-lineHeight35"><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/coursera-engineering/archive/2014">2014</a></div><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/coursera-engineering/archive/2015">2015</a></div><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/coursera-engineering/archive/2016">2016</a></div><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/coursera-engineering/archive/2017">2017</a></div><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/coursera-engineering/archive/2018">2018</a></div><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/coursera-engineering/archive/2019">2019</a></div><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/coursera-engineering/archive/2020">2020</a></div><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/coursera-engineering/archive/2021">2021</a></div><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/coursera-engineering/archive/2023">2023</a></div></div><div class="col u-inlineBlock u-maxWidth300 u-verticalAlignTop u-lineHeight35"></div><div class="col u-inlineBlock u-floatRight u-verticalAlignTop u-paddingRight0 u-paddingLeft0 js-sortToggle"><button class="button button--withChrome u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--withIconRight button--withIconAndLabel button--chromeless" data-action="open-sort-popover" data-action-value="toggle"><span class="button-label js-buttonLabel">Sort by most read</span><span class="svgIcon svgIcon--arrowDown svgIcon--21px is-flushRight"><svg class="svgIcon-use" width="21" height="21" ><path d="M4 7.331l6.032 6.67.495.547.495-.547 5.973-6.603-.989-.895-5.974 6.603h.99l-6.033-6.67z" fill-rule="evenodd"/></svg></span></button></div></div></div><div class="u-marginTop25 js-postStream"><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="ec5fc54d3903" data-source="collection_archive---------0-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://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?source=collection_archive---------0-----------------------" data-action="show-user-card" data-action-source="collection_archive---------0-----------------------" data-action-value="99c0fb464c1f" data-action-type="hover" data-user-id="99c0fb464c1f" dir="auto">Coursera</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/coursera-engineering?source=collection_archive---------0-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------0-----------------------" data-action-value="coursera-engineering" data-action-type="hover">Coursera Engineering</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/coursera-engineering/should-engineering-managers-write-code-wrong-question-ec5fc54d3903?source=collection_archive---------0-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/should-engineering-managers-write-code-wrong-question-ec5fc54d3903?source=collection_archive---------0-----------------------" data-action-source="preview-listing" ><time datetime="2016-12-01T00:00:00.000Z">Nov 30, 2016</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="6 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/coursera-engineering/should-engineering-managers-write-code-wrong-question-ec5fc54d3903?source=collection_archive---------0-----------------------" data-action-source="collection_archive---------0-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><h3 name="d8a7" id="d8a7" class="graf graf--h3 graf--leading graf--title">Should engineering managers write code? Wrong question.</h3><p name="b37c" id="b37c" class="graf graf--p graf-after--h3">By <em class="markup--em markup--p-em">eleith</em></p><p name="4ca5" id="4ca5" class="graf graf--p graf-after--p graf--trailing">I spend a lot of my time advising engineering managers and “How much code should I write?” gets asked by a lot of folks new to the role.</p></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/should-engineering-managers-write-code-wrong-question-ec5fc54d3903?source=collection_archive---------0-----------------------" data-action="open-post" data-action-source="collection_archive---------0-----------------------" data-action-value="https://medium.com/coursera-engineering/should-engineering-managers-write-code-wrong-question-ec5fc54d3903?source=collection_archive---------0-----------------------" data-post-id="ec5fc54d3903">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="ec5fc54d3903" data-is-flush-left="true" data-source="listing-----ec5fc54d3903---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/ec5fc54d3903" data-action-source="listing-----ec5fc54d3903---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="ec5fc54d3903">622</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/should-engineering-managers-write-code-wrong-question-ec5fc54d3903?source=collection_archive---------0-----------------------#--responses" data-action-source="collection_archive---------0-----------------------">1 response</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="ec5fc54d3903"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="3382f0711c24" data-source="collection_archive---------1-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://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?source=collection_archive---------1-----------------------" data-action="show-user-card" data-action-source="collection_archive---------1-----------------------" data-action-value="36e5b8f4c18f" data-action-type="hover" data-user-id="36e5b8f4c18f" dir="auto">Mustafa Furniturewala</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/coursera-engineering?source=collection_archive---------1-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------1-----------------------" data-action-value="coursera-engineering" data-action-type="hover">Coursera Engineering</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/coursera-engineering/creating-an-engineering-vision-3382f0711c24?source=collection_archive---------1-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/creating-an-engineering-vision-3382f0711c24?source=collection_archive---------1-----------------------" data-action-source="preview-listing" ><time datetime="2021-01-12T18:26:37.350Z">Jan 12, 2021</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="6 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/coursera-engineering/creating-an-engineering-vision-3382f0711c24?source=collection_archive---------1-----------------------" data-action-source="collection_archive---------1-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*Fgdi_CkCVWnfZGeGFkLUnQ.png" data-width="592" data-height="526" data-is-featured="true" alt="Visual description of eng vision process" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*Fgdi_CkCVWnfZGeGFkLUnQ.png"></div></figure><h3 name="previewTitle" id="previewTitle" class="graf graf--h3 graf-after--figure graf--title">Creating an Engineering Vision</h3><h4 name="previewSubtitle" id="previewSubtitle" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle">In this blog post, we share how we drafted a three-year engineering…</h4></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/creating-an-engineering-vision-3382f0711c24?source=collection_archive---------1-----------------------" data-action="open-post" data-action-source="collection_archive---------1-----------------------" data-action-value="https://medium.com/coursera-engineering/creating-an-engineering-vision-3382f0711c24?source=collection_archive---------1-----------------------" data-post-id="3382f0711c24">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="3382f0711c24" data-is-flush-left="true" data-source="listing-----3382f0711c24---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/3382f0711c24" data-action-source="listing-----3382f0711c24---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="3382f0711c24">531</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/creating-an-engineering-vision-3382f0711c24?source=collection_archive---------1-----------------------#--responses" data-action-source="collection_archive---------1-----------------------">7 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="3382f0711c24"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="b10418a05214" data-source="collection_archive---------2-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://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?source=collection_archive---------2-----------------------" data-action="show-user-card" data-action-source="collection_archive---------2-----------------------" data-action-value="9999dd095c18" data-action-type="hover" data-user-id="9999dd095c18" dir="auto">Emily Glassberg Sands</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/coursera-engineering?source=collection_archive---------2-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------2-----------------------" data-action-value="coursera-engineering" data-action-type="hover">Coursera Engineering</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/coursera-engineering/courseras-skills-graph-helps-learners-find-the-right-content-to-reach-their-goals-b10418a05214?source=collection_archive---------2-----------------------" 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_archive---------2-----------------------" data-action-source="preview-listing" ><time datetime="2018-07-10T14:04:49.374Z">Jul 10, 2018</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="4 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/coursera-engineering/courseras-skills-graph-helps-learners-find-the-right-content-to-reach-their-goals-b10418a05214?source=collection_archive---------2-----------------------" data-action-source="collection_archive---------2-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><h3 name="543c" id="543c" class="graf graf--h3 graf--leading graf--title">How our Skills Graph is helping learners find the right content to reach their goals</h3><p name="3101" id="3101" class="graf graf--p graf-after--h3 graf--trailing">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…</p></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/courseras-skills-graph-helps-learners-find-the-right-content-to-reach-their-goals-b10418a05214?source=collection_archive---------2-----------------------" data-action="open-post" data-action-source="collection_archive---------2-----------------------" data-action-value="https://medium.com/coursera-engineering/courseras-skills-graph-helps-learners-find-the-right-content-to-reach-their-goals-b10418a05214?source=collection_archive---------2-----------------------" data-post-id="b10418a05214">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="b10418a05214" data-is-flush-left="true" data-source="listing-----b10418a05214---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/b10418a05214" data-action-source="listing-----b10418a05214---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="b10418a05214">815</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/courseras-skills-graph-helps-learners-find-the-right-content-to-reach-their-goals-b10418a05214?source=collection_archive---------2-----------------------#--responses" data-action-source="collection_archive---------2-----------------------">8 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="b10418a05214"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="5f1bac9cd176" data-source="collection_archive---------3-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://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?source=collection_archive---------3-----------------------" data-action="show-user-card" data-action-source="collection_archive---------3-----------------------" data-action-value="6595f3dc1125" data-action-type="hover" data-user-id="6595f3dc1125" dir="auto">Billy Kirk</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/coursera-engineering?source=collection_archive---------3-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------3-----------------------" data-action-value="coursera-engineering" data-action-type="hover">Coursera Engineering</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/coursera-engineering/improving-end-to-end-testing-at-coursera-using-puppeteer-and-jest-5f1bac9cd176?source=collection_archive---------3-----------------------" 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_archive---------3-----------------------" data-action-source="preview-listing" ><time datetime="2019-06-26T00:27:41.527Z">Jun 25, 2019</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="6 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/coursera-engineering/improving-end-to-end-testing-at-coursera-using-puppeteer-and-jest-5f1bac9cd176?source=collection_archive---------3-----------------------" data-action-source="collection_archive---------3-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="0*ZqPC8l4_Atux4uba" data-width="1124" data-height="1119" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/0*ZqPC8l4_Atux4uba"></div></figure><h3 name="f7cf" id="f7cf" class="graf graf--h3 graf-after--figure graf--trailing graf--title">Improving End-to-End Testing at Coursera using Puppeteer and Jest</h3></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/improving-end-to-end-testing-at-coursera-using-puppeteer-and-jest-5f1bac9cd176?source=collection_archive---------3-----------------------" data-action="open-post" data-action-source="collection_archive---------3-----------------------" data-action-value="https://medium.com/coursera-engineering/improving-end-to-end-testing-at-coursera-using-puppeteer-and-jest-5f1bac9cd176?source=collection_archive---------3-----------------------" data-post-id="5f1bac9cd176">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="5f1bac9cd176" data-is-flush-left="true" data-source="listing-----5f1bac9cd176---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/5f1bac9cd176" data-action-source="listing-----5f1bac9cd176---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="5f1bac9cd176">770</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/improving-end-to-end-testing-at-coursera-using-puppeteer-and-jest-5f1bac9cd176?source=collection_archive---------3-----------------------#--responses" data-action-source="collection_archive---------3-----------------------">6 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="5f1bac9cd176"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="89de0104bcbd" data-source="collection_archive---------4-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://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?source=collection_archive---------4-----------------------" data-action="show-user-card" data-action-source="collection_archive---------4-----------------------" data-action-value="70814e310ce3" data-action-type="hover" data-user-id="70814e310ce3" dir="auto">Chris Liu</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/coursera-engineering?source=collection_archive---------4-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------4-----------------------" data-action-value="coursera-engineering" data-action-type="hover">Coursera Engineering</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/coursera-engineering/data-driven-content-categorization-89de0104bcbd?source=collection_archive---------4-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/data-driven-content-categorization-89de0104bcbd?source=collection_archive---------4-----------------------" data-action-source="preview-listing" ><time datetime="2018-09-12T04:13:40.251Z">Sep 11, 2018</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="5 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/coursera-engineering/data-driven-content-categorization-89de0104bcbd?source=collection_archive---------4-----------------------" data-action-source="collection_archive---------4-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*A-lEgYtSuSKQZ21ves4JOw.png" data-width="1092" data-height="868" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*A-lEgYtSuSKQZ21ves4JOw.png"></div></figure><h3 name="previewTitle" id="previewTitle" class="graf graf--h3 graf-after--figure graf--title">Data Driven Content Categorization</h3><h4 name="previewSubtitle" id="previewSubtitle" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle">How Coursera generated course categories from thousands of courses…</h4></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/data-driven-content-categorization-89de0104bcbd?source=collection_archive---------4-----------------------" data-action="open-post" data-action-source="collection_archive---------4-----------------------" data-action-value="https://medium.com/coursera-engineering/data-driven-content-categorization-89de0104bcbd?source=collection_archive---------4-----------------------" data-post-id="89de0104bcbd">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="89de0104bcbd" data-is-flush-left="true" data-source="listing-----89de0104bcbd---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/89de0104bcbd" data-action-source="listing-----89de0104bcbd---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="89de0104bcbd">780</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/data-driven-content-categorization-89de0104bcbd?source=collection_archive---------4-----------------------#--responses" data-action-source="collection_archive---------4-----------------------">5 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="89de0104bcbd"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="2f6070083bda" data-source="collection_archive---------5-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://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?source=collection_archive---------5-----------------------" data-action="show-user-card" data-action-source="collection_archive---------5-----------------------" data-action-value="e8d286bb099f" data-action-type="hover" data-user-id="e8d286bb099f" dir="auto">Myra Cheng</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/coursera-engineering?source=collection_archive---------5-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------5-----------------------" data-action-value="coursera-engineering" data-action-type="hover">Coursera Engineering</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/coursera-engineering/query2vec-2f6070083bda?source=collection_archive---------5-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/query2vec-2f6070083bda?source=collection_archive---------5-----------------------" data-action-source="preview-listing" ><time datetime="2019-09-13T17:13:29.296Z">Sep 13, 2019</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="6 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/coursera-engineering/query2vec-2f6070083bda?source=collection_archive---------5-----------------------" data-action-source="collection_archive---------5-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*ZDjKiqrnmLj29xO6f5mqLQ.png" data-width="2760" data-height="882" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*ZDjKiqrnmLj29xO6f5mqLQ.png"></div></figure><h3 name="e7d4" id="e7d4" class="graf graf--h3 graf-after--figure graf--title">Order from Chaos: Understanding Search Queries through Vectors</h3><h4 name="e2ca" id="e2ca" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle"><em class="markup--em markup--h4-em">The Query2Vec pipeline and a foray into</em>…</h4></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/query2vec-2f6070083bda?source=collection_archive---------5-----------------------" data-action="open-post" data-action-source="collection_archive---------5-----------------------" data-action-value="https://medium.com/coursera-engineering/query2vec-2f6070083bda?source=collection_archive---------5-----------------------" data-post-id="2f6070083bda">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="2f6070083bda" data-is-flush-left="true" data-source="listing-----2f6070083bda---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/2f6070083bda" data-action-source="listing-----2f6070083bda---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="2f6070083bda">512</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/query2vec-2f6070083bda?source=collection_archive---------5-----------------------#--responses" data-action-source="collection_archive---------5-----------------------">4 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="2f6070083bda"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="31f956bd592a" data-source="collection_archive---------6-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://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?source=collection_archive---------6-----------------------" data-action="show-user-card" data-action-source="collection_archive---------6-----------------------" data-action-value="8c25ad9d3047" data-action-type="hover" data-user-id="8c25ad9d3047" dir="auto">Vinod Bakthavachalam</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/coursera-engineering?source=collection_archive---------6-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------6-----------------------" data-action-value="coursera-engineering" data-action-type="hover">Coursera Engineering</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/coursera-engineering/controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention-31f956bd592a?source=collection_archive---------6-----------------------" 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_archive---------6-----------------------" data-action-source="preview-listing" ><time datetime="2018-11-08T17:01:03.207Z">Nov 8, 2018</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="5 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/coursera-engineering/controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention-31f956bd592a?source=collection_archive---------6-----------------------" data-action-source="collection_archive---------6-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="0*P6TaXFB0-TivYLSe" data-width="1600" data-height="864" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/0*P6TaXFB0-TivYLSe"></div></figure><h3 name="04e9" id="04e9" class="graf graf--h3 graf-after--figure graf--trailing graf--title">Controlled Regression: Quantifying the Impact of Course Quality on Learner Retention</h3></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention-31f956bd592a?source=collection_archive---------6-----------------------" data-action="open-post" data-action-source="collection_archive---------6-----------------------" data-action-value="https://medium.com/coursera-engineering/controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention-31f956bd592a?source=collection_archive---------6-----------------------" data-post-id="31f956bd592a">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="31f956bd592a" data-is-flush-left="true" data-source="listing-----31f956bd592a---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/31f956bd592a" data-action-source="listing-----31f956bd592a---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="31f956bd592a">262</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention-31f956bd592a?source=collection_archive---------6-----------------------#--responses" data-action-source="collection_archive---------6-----------------------">3 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="31f956bd592a"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="84cf9b38cd52" data-source="collection_archive---------7-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://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?source=collection_archive---------7-----------------------" data-action="show-user-card" data-action-source="collection_archive---------7-----------------------" data-action-value="70814e310ce3" data-action-type="hover" data-user-id="70814e310ce3" dir="auto">Chris Liu</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/coursera-engineering?source=collection_archive---------7-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------7-----------------------" data-action-value="coursera-engineering" data-action-type="hover">Coursera Engineering</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/coursera-engineering/an-engineers-perspective-on-engineering-and-data-science-collaboration-for-data-products-84cf9b38cd52?source=collection_archive---------7-----------------------" 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_archive---------7-----------------------" data-action-source="preview-listing" ><time datetime="2019-05-20T10:01:00.868Z">May 20, 2019</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="7 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/coursera-engineering/an-engineers-perspective-on-engineering-and-data-science-collaboration-for-data-products-84cf9b38cd52?source=collection_archive---------7-----------------------" data-action-source="collection_archive---------7-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="0*rvxR1udpDV7YaJfG" data-width="1600" data-height="653" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/0*rvxR1udpDV7YaJfG"></div></figure><h3 name="cdc0" id="cdc0" class="graf graf--h3 graf-after--figure graf--trailing graf--title">An engineer’s perspective on engineering and data science collaboration for data products</h3></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/an-engineers-perspective-on-engineering-and-data-science-collaboration-for-data-products-84cf9b38cd52?source=collection_archive---------7-----------------------" data-action="open-post" data-action-source="collection_archive---------7-----------------------" data-action-value="https://medium.com/coursera-engineering/an-engineers-perspective-on-engineering-and-data-science-collaboration-for-data-products-84cf9b38cd52?source=collection_archive---------7-----------------------" data-post-id="84cf9b38cd52">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="84cf9b38cd52" data-is-flush-left="true" data-source="listing-----84cf9b38cd52---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/84cf9b38cd52" data-action-source="listing-----84cf9b38cd52---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="84cf9b38cd52">322</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/an-engineers-perspective-on-engineering-and-data-science-collaboration-for-data-products-84cf9b38cd52?source=collection_archive---------7-----------------------#--responses" data-action-source="collection_archive---------7-----------------------">7 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="84cf9b38cd52"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="4c587a4ad9a8" data-source="collection_archive---------8-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://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?source=collection_archive---------8-----------------------" data-action="show-user-card" data-action-source="collection_archive---------8-----------------------" data-action-value="d987eade03ed" data-action-type="hover" data-user-id="d987eade03ed" dir="auto">jon wong</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/coursera-engineering?source=collection_archive---------8-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------8-----------------------" data-action-value="coursera-engineering" data-action-type="hover">Coursera Engineering</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/coursera-engineering/evolving-the-graph-4c587a4ad9a8?source=collection_archive---------8-----------------------" data-action="open-post" data-action-value="https://medium.com/coursera-engineering/evolving-the-graph-4c587a4ad9a8?source=collection_archive---------8-----------------------" data-action-source="preview-listing" ><time datetime="2019-08-28T01:28:37.849Z">Aug 27, 2019</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="9 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/coursera-engineering/evolving-the-graph-4c587a4ad9a8?source=collection_archive---------8-----------------------" data-action-source="collection_archive---------8-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="0*y5d4rT_fu3VF3bNs" data-width="2172" data-height="1138" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/0*y5d4rT_fu3VF3bNs"></div></figure><h3 name="previewTitle" id="previewTitle" class="graf graf--h3 graf-after--figure graf--title">Evolving the Graph</h3><h4 name="previewSubtitle" id="previewSubtitle" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle">We’ve been using GraphQL at Coursera for over three years, and we’ve learned a lot…</h4></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/evolving-the-graph-4c587a4ad9a8?source=collection_archive---------8-----------------------" data-action="open-post" data-action-source="collection_archive---------8-----------------------" data-action-value="https://medium.com/coursera-engineering/evolving-the-graph-4c587a4ad9a8?source=collection_archive---------8-----------------------" data-post-id="4c587a4ad9a8">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="4c587a4ad9a8" data-is-flush-left="true" data-source="listing-----4c587a4ad9a8---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/4c587a4ad9a8" data-action-source="listing-----4c587a4ad9a8---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="4c587a4ad9a8">256</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/evolving-the-graph-4c587a4ad9a8?source=collection_archive---------8-----------------------#--responses" data-action-source="collection_archive---------8-----------------------">1 response</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="4c587a4ad9a8"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="cdfeb817faf8" data-source="collection_archive---------9-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://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?source=collection_archive---------9-----------------------" data-action="show-user-card" data-action-source="collection_archive---------9-----------------------" data-action-value="70814e310ce3" data-action-type="hover" data-user-id="70814e310ce3" dir="auto">Chris Liu</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/coursera-engineering?source=collection_archive---------9-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------9-----------------------" data-action-value="coursera-engineering" data-action-type="hover">Coursera Engineering</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/coursera-engineering/webpack-3-to-4-facing-the-known-unknowns-and-unknown-unknowns-cdfeb817faf8?source=collection_archive---------9-----------------------" 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_archive---------9-----------------------" data-action-source="preview-listing" ><time datetime="2018-10-11T12:01:02.474Z">Oct 11, 2018</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="7 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/coursera-engineering/webpack-3-to-4-facing-the-known-unknowns-and-unknown-unknowns-cdfeb817faf8?source=collection_archive---------9-----------------------" data-action-source="collection_archive---------9-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="0*Inb_k0uJHCmGBr2_" data-width="719" data-height="533" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/0*Inb_k0uJHCmGBr2_"></div></figure><h3 name="25dc" id="25dc" class="graf graf--h3 graf-after--figure graf--trailing graf--title"><strong class="markup--strong markup--h3-strong">Webpack 3 to 4: Facing the known unknowns and unknown unknowns</strong></h3></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/webpack-3-to-4-facing-the-known-unknowns-and-unknown-unknowns-cdfeb817faf8?source=collection_archive---------9-----------------------" data-action="open-post" data-action-source="collection_archive---------9-----------------------" data-action-value="https://medium.com/coursera-engineering/webpack-3-to-4-facing-the-known-unknowns-and-unknown-unknowns-cdfeb817faf8?source=collection_archive---------9-----------------------" data-post-id="cdfeb817faf8">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="cdfeb817faf8" data-is-flush-left="true" data-source="listing-----cdfeb817faf8---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/cdfeb817faf8" data-action-source="listing-----cdfeb817faf8---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="cdfeb817faf8">271</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/coursera-engineering/webpack-3-to-4-facing-the-known-unknowns-and-unknown-unknowns-cdfeb817faf8?source=collection_archive---------9-----------------------#--responses" data-action-source="collection_archive---------9-----------------------">2 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="cdfeb817faf8"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div></div><div class="u-marginTop30 u-marginBottom40 u-clearfix"></div><p class="u-marginBottom40 u-clearfix u-fontSize14 u-textColorDark">These were the top 10 stories published by Coursera Engineering; you can also dive into yearly archives: <a href="https://medium.com/coursera-engineering/archive/2014">2014</a>, <a href="https://medium.com/coursera-engineering/archive/2015">2015</a>, <a href="https://medium.com/coursera-engineering/archive/2016">2016</a>, <a href="https://medium.com/coursera-engineering/archive/2017">2017</a>, <a href="https://medium.com/coursera-engineering/archive/2018">2018</a>, <a href="https://medium.com/coursera-engineering/archive/2019">2019</a>, <a href="https://medium.com/coursera-engineering/archive/2020">2020</a>, <a href="https://medium.com/coursera-engineering/archive/2021">2021</a>, and <a href="https://medium.com/coursera-engineering/archive/2023">2023</a>.</p></div><div class="col u-xs-size12of12 u-size3of12 u-paddingRight0 u-paddingLeft50"><header class="heading heading--borderedBottom" ><div class="u-clearfix"><div class="heading-content u-floatLeft"><span class="heading-title">About</span></div></div></header><div class="u-paddingTop18 u-paddingBottom35"><div class="u-fontSize18 u-lineHeightTight">Coursera Engineering</div><div class="u-fontSize14 u-lineHeightBaseSans u-paddingTop15"><div class="u-textColorDark u-marginBottom15">We're changing the way the world learns! Posts from Coursera engineers and data scientists.</div><a class=" link--darken u-accentColor--textDarken link--accent u-accentColor--textNormal" href="https://medium.com/coursera-engineering/about">More information</a></div></div><header class="heading heading--borderedBottom" ><div class="u-clearfix"><div class="heading-content u-floatLeft"><span class="heading-title">Tags</span></div></div></header><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/coursera-engineering/tagged/infrastructure">Infrastructure</a></div><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/coursera-engineering/tagged/upgrade">Upgrade</a></div><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/coursera-engineering/tagged/frontend">Frontend</a></div><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/coursera-engineering/tagged/coursera">Coursera</a></div><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/coursera-engineering/tagged/webpack">Webpack</a></div><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/coursera-engineering/tagged/frontend">Frontend</a></div><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/coursera-engineering/tagged/schema-first-design">Schema First Design</a></div><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/coursera-engineering/tagged/javascript">JavaScript</a></div><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/coursera-engineering/tagged/sangria">Sangria</a></div><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/coursera-engineering/tagged/graphql">GraphQL</a></div><div class="u-marginTop30"><header class="heading heading--borderedBottom" ><div class="u-clearfix"><div class="heading-content u-floatLeft"><span class="heading-title">Editors</span></div></div></header></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@jnwng?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="d987eade03ed" data-action-type="hover" data-user-id="d987eade03ed" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*zrMbbNRq80W_fOfnB_BzXQ.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of jon wong"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@yunhao.personal?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="80624ba8fd79" data-action-type="hover" data-user-id="80624ba8fd79" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/0*yIMx8Vj8iEi5IVXJ." class="avatar-image avatar-image--smaller" alt="Go to the profile of Yun Hao"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@yunhao.personal" data-action="show-user-card" data-action-value="80624ba8fd79" data-action-type="hover" data-user-id="80624ba8fd79" dir="auto">Yun Hao</a></div></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@kelly.kc.cheng?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="7b91bcea825" data-action-type="hover" data-user-id="7b91bcea825" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/0*W6UItfyn-rBZ3dQL." class="avatar-image avatar-image--smaller" alt="Go to the profile of Kelly Cheng"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@kelly.kc.cheng" data-action="show-user-card" data-action-value="7b91bcea825" data-action-type="hover" data-user-id="7b91bcea825" dir="auto">Kelly Cheng</a></div></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@cliu_88389?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="70814e310ce3" data-action-type="hover" data-user-id="70814e310ce3" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/0*ECSDCjFKbFRqqOIr." class="avatar-image avatar-image--smaller" alt="Go to the profile of Chris Liu"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@emilyglassbergsands?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="9999dd095c18" data-action-type="hover" data-user-id="9999dd095c18" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*UKxyBUaf5YQvLy7pb2T1dg.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of Emily Glassberg Sands"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div><div class="u-marginTop30"><header class="heading heading--borderedBottom" ><div class="u-clearfix"><div class="heading-content u-floatLeft"><span class="heading-title">Writers</span></div></div></header><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@vidaaudrey?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="8830b0e2d4f" data-action-type="hover" data-user-id="8830b0e2d4f" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*oqLHYVt4Kc63FjEy_gPqRA@2x.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of Audrey Li"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@vidaaudrey" data-action="show-user-card" data-action-value="8830b0e2d4f" data-action-type="hover" data-user-id="8830b0e2d4f" dir="auto">Audrey Li</a></div></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@kelly.kc.cheng?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="7b91bcea825" data-action-type="hover" data-user-id="7b91bcea825" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/0*W6UItfyn-rBZ3dQL." class="avatar-image avatar-image--smaller" alt="Go to the profile of Kelly Cheng"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@kelly.kc.cheng" data-action="show-user-card" data-action-value="7b91bcea825" data-action-type="hover" data-user-id="7b91bcea825" dir="auto">Kelly Cheng</a></div></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@yunhao.personal?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="80624ba8fd79" data-action-type="hover" data-user-id="80624ba8fd79" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/0*yIMx8Vj8iEi5IVXJ." class="avatar-image avatar-image--smaller" alt="Go to the profile of Yun Hao"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@yunhao.personal" data-action="show-user-card" data-action-value="80624ba8fd79" data-action-type="hover" data-user-id="80624ba8fd79" dir="auto">Yun Hao</a></div></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@CourseraEng?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="99c0fb464c1f" data-action-type="hover" data-user-id="99c0fb464c1f" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*j2vLJO9qZg435iRYfd2Mfg.png" class="avatar-image avatar-image--smaller" alt="Go to the profile of Coursera"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@emilyglassbergsands?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="9999dd095c18" data-action-type="hover" data-user-id="9999dd095c18" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*UKxyBUaf5YQvLy7pb2T1dg.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of Emily Glassberg Sands"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@Saber_Metrics?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="12a7eff71fbc" data-action-type="hover" data-user-id="12a7eff71fbc" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*HMuoPeXRSb5DeiHT0fYSPw.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of Dan Saber"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@Saber_Metrics" data-action="show-user-card" data-action-value="12a7eff71fbc" data-action-type="hover" data-user-id="12a7eff71fbc" dir="auto">Dan Saber</a></div></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@alanhickey0502?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="283802d43c" data-action-type="hover" data-user-id="283802d43c" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*LoU5BlI2E6Az369C_w8Zrg.png" class="avatar-image avatar-image--smaller" alt="Go to the profile of Alan Hickey"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@ronyinusc?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="1fc56da4b674" data-action-type="hover" data-user-id="1fc56da4b674" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*18_2uiCFrWGBc6g0qbXuww.png" class="avatar-image avatar-image--smaller" alt="Go to the profile of Ronak Shah"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@yash.ksagar?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="146a5788a4bf" data-action-type="hover" data-user-id="146a5788a4bf" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*7PKRdMvRK-Al4nVsWL5hDQ.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of Yash Kshirsagar"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@yash.ksagar" data-action="show-user-card" data-action-value="146a5788a4bf" data-action-type="hover" data-user-id="146a5788a4bf" dir="auto">Yash Kshirsagar</a></div></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@dangquang2011?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="715b99bc6b5c" data-action-type="hover" data-user-id="715b99bc6b5c" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/0*l1AbFKTHlpaIh417." class="avatar-image avatar-image--smaller" alt="Go to the profile of Quang Tran"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@msorba?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="f36ac0ad7592" data-action-type="hover" data-user-id="f36ac0ad7592" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*_MTxJH9F2109-aNvPbuP5A.png" class="avatar-image avatar-image--smaller" alt="Go to the profile of Marianne Sorba"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@daltyboy11?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="3bebd5c70600" data-action-type="hover" data-user-id="3bebd5c70600" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/2*sFxbQxfsIMo-yxA1gG62ww.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of Dalton Sweeney"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@billykirk?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="6595f3dc1125" data-action-type="hover" data-user-id="6595f3dc1125" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/2*mjkbhjTgvHEylH9c1vEEag.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of Billy Kirk"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@myracheng?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="e8d286bb099f" data-action-type="hover" data-user-id="e8d286bb099f" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/2*UGwK6uew5IgCWB7TrX_hIw.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of Myra Cheng"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@richa123?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="afbf744275c8" data-action-type="hover" data-user-id="afbf744275c8" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/0*6Db1xfnc79cwgPjm.png" class="avatar-image avatar-image--smaller" alt="Go to the profile of richa123"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@cathchi?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="5bb4dcd49b0f" data-action-type="hover" data-user-id="5bb4dcd49b0f" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/0*aE2SZ1-oQvXZEnfz" class="avatar-image avatar-image--smaller" alt="Go to the profile of Cathy Chi"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@davidkle1?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="db2f2af1172b" data-action-type="hover" data-user-id="db2f2af1172b" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/2*DPmMXHbpEzqceGw2Pbc-LA.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of David Le"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@bry3133?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="15fc9548e39d" data-action-type="hover" data-user-id="15fc9548e39d" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*4BrT4eRwOyBEhv3Mzln2fw@2x.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of Bryan Rivera"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@mustafasf?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="36e5b8f4c18f" data-action-type="hover" data-user-id="36e5b8f4c18f" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/0*VTtfLrnf0qDSogwg.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of Mustafa Furniturewala"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@nvarela?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="2dafa94ed5f7" data-action-type="hover" data-user-id="2dafa94ed5f7" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/0*j4uNthGh6uEYe-Xj" class="avatar-image avatar-image--smaller" alt="Go to the profile of Nichalus Varela"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@rrliao?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="4f35c2c00794" data-action-type="hover" data-user-id="4f35c2c00794" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*GmAoiPbp8lCPgvvpPA839A.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of Rachel Liao"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@rrliao" data-action="show-user-card" data-action-value="4f35c2c00794" data-action-type="hover" data-user-id="4f35c2c00794" dir="auto">Rachel Liao</a></div></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@habtegebrielc?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="5f3bbeee7670" data-action-type="hover" data-user-id="5f3bbeee7670" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/0*YsS3lrpbHsR3hOWF" class="avatar-image avatar-image--smaller" alt="Go to the profile of Caleb Habtegebriel"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@mengying-li?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="dbd909ab7ead" data-action-type="hover" data-user-id="dbd909ab7ead" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*OSkgz1_TZgSIGVJwXI7dQg.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of Mengying Li"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" 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></div></div></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></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":"20241122-2326-root","currentUser":{"userId":"lo_b635b8b32f90","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.jgL7zdhxfcJMjkJjEjB6xg.12.js","common-async":"https://cdn-static-1.medium.com/_/fp/gen-js/main-common-async.bundle.fULbttUzdHyewyAazMUYXw.12.js","hightower":"https://cdn-static-1.medium.com/_/fp/gen-js/main-hightower.bundle.NQoDXJuDHPBqR63_AdMDaA.12.js","home-screens":"https://cdn-static-1.medium.com/_/fp/gen-js/main-home-screens.bundle.m76-07Q1DcEMKgEwzJjhDA.12.js","misc-screens":"https://cdn-static-1.medium.com/_/fp/gen-js/main-misc-screens.bundle.2CLT5j6rDReEhG2bjr3NdA.12.js","notes":"https://cdn-static-1.medium.com/_/fp/gen-js/main-notes.bundle.yrGWoeoBrJB7GBGv--gr1g.12.js","payments":"https://cdn-static-1.medium.com/_/fp/gen-js/main-payments.bundle.Cc_nfCICljMx7aW6-Pr_9w.12.js","posters":"https://cdn-static-1.medium.com/_/fp/gen-js/main-posters.bundle.QCX6B3q-KqcSv8hiUNsQ9Q.12.js","power-readers":"https://cdn-static-1.medium.com/_/fp/gen-js/main-power-readers.bundle.nxgYPC9-BrhdicIoMMuzoA.12.js","pubs":"https://cdn-static-1.medium.com/_/fp/gen-js/main-pubs.bundle.SOwTEi0SkdYAS9MQpioQXw.12.js","stats":"https://cdn-static-1.medium.com/_/fp/gen-js/main-stats.bundle.hA1c7rerc_dk3N05UG54qQ.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":"1732377470157:3d998a16b9b7","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":"group_1","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_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":1,"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.jgL7zdhxfcJMjkJjEjB6xg.12.js" async></script><script>// <![CDATA[ window["obvInit"]({"references":{"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"},"80624ba8fd79":{"userId":"80624ba8fd79","name":"Yun Hao","username":"yunhao.personal","createdAt":1524595711925,"imageId":"0*yIMx8Vj8iEi5IVXJ.","backgroundImageId":"","bio":"","twitterScreenName":"CourseraEng","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"Yun Hao","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"7b91bcea825":{"userId":"7b91bcea825","name":"Kelly Cheng","username":"kelly.kc.cheng","createdAt":1524595746645,"imageId":"0*W6UItfyn-rBZ3dQL.","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[12,2,5],"hasSeenIcelandOnboarding":false,"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"},"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"},"8830b0e2d4f":{"userId":"8830b0e2d4f","name":"Audrey Li","username":"vidaaudrey","createdAt":1450326461804,"imageId":"1*oqLHYVt4Kc63FjEy_gPqRA@2x.jpeg","backgroundImageId":"","bio":"La passion est une façon de vivre.","twitterScreenName":"vidaaudrey","allowNotes":0,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedAndroidApp":1611122213535,"isMembershipTrialEligible":false,"facebookDisplayName":"Audrey Li","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,32,29,2,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"},"12a7eff71fbc":{"userId":"12a7eff71fbc","name":"Dan Saber","username":"Saber_Metrics","createdAt":1432418129770,"imageId":"1*HMuoPeXRSb5DeiHT0fYSPw.jpeg","backgroundImageId":"","bio":"Artless brand-building","twitterScreenName":"Saber_Metrics","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"},"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"},"146a5788a4bf":{"userId":"146a5788a4bf","name":"Yash Kshirsagar","username":"yash.ksagar","createdAt":1492197073561,"imageId":"1*7PKRdMvRK-Al4nVsWL5hDQ.jpeg","backgroundImageId":"","bio":"Software @ Coursera | Georgia Tech Alum | Musician | yashksagar.com","twitterScreenName":"","allowNotes":1,"mediumMemberAt":1581926006000,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedAndroidApp":1582912077389,"isMembershipTrialEligible":true,"facebookDisplayName":"Yash Kshirsagar","optInToIceland":true,"hasCompletedProfile":true,"userDismissableFlags":[48,29,8,50,2,1,33,49],"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"},"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"},"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"},"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"},"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"},"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"},"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"},"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"},"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"},"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"},"4f35c2c00794":{"userId":"4f35c2c00794","name":"Rachel Liao","username":"rrliao","createdAt":1554850233759,"imageId":"1*GmAoiPbp8lCPgvvpPA839A.jpeg","backgroundImageId":"","bio":"","allowNotes":0,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"optInToIceland":true,"hasCompletedProfile":false,"isCreatorPartnerProgramEnrolled":true,"userDismissableFlags":[8,21,2,1,9],"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"},"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"},"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"}},"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":3778,"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":3778,"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"}},"Post":{"ec5fc54d3903":{"id":"ec5fc54d3903","versionId":"a16a2a0db4f5","creatorId":"99c0fb464c1f","homeCollectionId":"532b19e4043c","title":"Should engineering managers write code? Wrong question.","detectedLanguage":"en","latestVersion":"a16a2a0db4f5","latestPublishedVersion":"a16a2a0db4f5","hasUnpublishedEdits":false,"latestRev":90,"createdAt":1524695958926,"updatedAt":1526252195409,"acceptedAt":0,"firstPublishedAt":1480550400000,"latestPublishedAt":1524775565739,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"By eleith","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":false,"previewImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"wordCount":1508,"imageCount":0,"readingTime":5.690566037735849,"subtitle":"By eleith","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":150,"isBookmarked":false,"tags":[{"slug":"software-development","name":"Software Development","postCount":325611,"metadata":{"postCount":325611,"coverImage":{"id":"1*BqVsCBa2mLv1UWQrdhjX5w.png","originalWidth":1500,"originalHeight":750,"isFeatured":true,"alt":"How I Am Using a Lifetime 100% Free Server"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://www.linkedin.com/in/richardcywong","alts":[],"httpStatus":999},{"url":"https://www.linkedin.com/pulse/should-engineering-managers-code-nikhil-garg","alts":[],"httpStatus":999},{"url":"https://www.linkedin.com/in/jcharum","alts":[],"httpStatus":999},{"url":"https://www.linkedin.com/in/mustafaf","alts":[],"httpStatus":999},{"url":"https://www.linkedin.com/in/priyankch","alts":[],"httpStatus":999},{"url":"https://www.linkedin.com/in/nickd","alts":[],"httpStatus":999},{"url":"https://building.coursera.org/blog/2016/12/01/should-engineering-managers-write-code-wrong-question/","alts":[],"httpStatus":200},{"url":"https://github.com/eleith/emailjs","alts":[],"httpStatus":200},{"url":"https://github.com/coursera/buggy","alts":[],"httpStatus":200},{"url":"https://gist.github.com/eleith/d91e2199e3ac622a0c7f8937a4794428","alts":[],"httpStatus":200},{"url":"https://github.com/coursera/booky","alts":[],"httpStatus":200},{"url":"https://github.com/coursera/foody","alts":[],"httpStatus":200},{"url":"http://www.drdobbs.com/architecture-and-design/engineering-managers-should-code-30-of-t/240165174","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1524775571468},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":622,"sectionCount":2,"readingList":0,"topics":[]},"coverless":true,"slug":"should-engineering-managers-write-code-wrong-question","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"https://building.coursera.org/blog/2016/12/01/should-engineering-managers-write-code-wrong-question/","importedPublishedAt":1480550400000,"visibility":0,"uniqueSlug":"should-engineering-managers-write-code-wrong-question-ec5fc54d3903","previewContent":{"bodyModel":{"paragraphs":[{"name":"d8a7","type":3,"text":"Should engineering managers write code? Wrong question.","markups":[],"alignment":1},{"name":"b37c","type":1,"text":"By eleith","markups":[{"type":2,"start":3,"end":9}],"alignment":1},{"name":"4ca5","type":1,"text":"I spend a lot of my time advising engineering managers and “How much code should I write?” gets asked by a lot of folks new to the role.","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"By eleith"},"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":"d8a7","type":3,"text":"Should engineering managers write code? Wrong question.","markups":[]},{"name":"b37c","type":1,"text":"By eleith","markups":[{"type":2,"start":3,"end":9}]},{"name":"4ca5","type":1,"text":"I spend a lot of my time advising engineering managers and “How much code should I write?” gets asked by a lot of folks new to the role.","markups":[]},{"name":"df6f","type":1,"text":"Many good essays propose one line answers ranging from no all the way to 30% of your time.","markups":[{"type":3,"start":55,"end":57,"href":"https://www.linkedin.com/pulse/should-engineering-managers-code-nikhil-garg","title":"","rel":"","anchorType":0},{"type":3,"start":73,"end":89,"href":"http://www.drdobbs.com/architecture-and-design/engineering-managers-should-code-30-of-t/240165174","title":"","rel":"","anchorType":0}]},{"name":"90e4","type":1,"text":"However, focusing…","markups":[]}],"sections":[{"name":"0ce6","startIndex":0}]},"isFullContent":false,"subtitle":"By eleith"},"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":293172,"metadata":{"postCount":293172,"coverImage":{"id":"1*x3eOBvKInrpkalYofhODIQ.jpeg"}},"type":"Tag"},{"slug":"vision","name":"Vision","postCount":13673,"metadata":{"postCount":13673,"coverImage":{"id":"0*puj-aauESDF1mE3I","originalWidth":4859,"originalHeight":3218,"isFeatured":true,"unsplashPhotoId":"wpi3sDUrSEk"}},"type":"Tag"},{"slug":"engineering","name":"Engineering","postCount":56367,"metadata":{"postCount":56367,"coverImage":{"id":"0*qbQTuVlzhFYSkCjL","originalWidth":4896,"originalHeight":3220,"isFeatured":true,"unsplashPhotoId":"KYxXMTpTzek"}},"type":"Tag"},{"slug":"management","name":"Management","postCount":94084,"metadata":{"postCount":94084,"coverImage":{"id":"1*BygtbwxZTRaBfcZGzcSOLw@2x.jpeg","originalWidth":2316,"originalHeight":3088,"isFeatured":true}},"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"},"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":590386,"metadata":{"postCount":590386,"coverImage":{"id":"1*dVmAyTviHMkGJq46uvrLcg.jpeg"}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":353579,"metadata":{"postCount":353579,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"data-science","name":"Data Science","postCount":346133,"metadata":{"postCount":346133,"coverImage":{"id":"1*YUIhHmZyuEn92w2azqpfXg.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"},"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*Ae6qda6tbnIJBy5BMVBEXg.jpeg","originalWidth":894,"originalHeight":673,"isFeatured":true}},"type":"Tag"},{"slug":"testing","name":"Testing","postCount":42664,"metadata":{"postCount":42664,"coverImage":{"id":"1*JZHO5lsnXJ3BvUdHHbN8xA.png","originalWidth":8418,"originalHeight":2506,"isFeatured":true}},"type":"Tag"},{"slug":"jest","name":"Jest","postCount":3253,"metadata":{"postCount":3253,"coverImage":{"id":"1*xjBkv3GI0UClugzdEI6pUw.png","originalWidth":1746,"originalHeight":1017,"isFeatured":true}},"type":"Tag"},{"slug":"javascript","name":"JavaScript","postCount":285127,"metadata":{"postCount":285127,"coverImage":{"id":"1*IKZuN_kzUYPl37lBXQkymQ.png","originalWidth":2560,"originalHeight":1440,"isFeatured":true,"alt":"Banner with the Angular logo saying “v19 is now available”"}},"type":"Tag"},{"slug":"frontend","name":"Frontend","postCount":17703,"metadata":{"postCount":17703,"coverImage":{"id":"0*lmNSS2nwEYOW2LMc","originalWidth":5472,"originalHeight":3450,"isFeatured":true,"unsplashPhotoId":"vkzceVhkPBs"}},"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"},"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":346133,"metadata":{"postCount":346133,"coverImage":{"id":"1*YUIhHmZyuEn92w2azqpfXg.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"education","name":"Education","postCount":590386,"metadata":{"postCount":590386,"coverImage":{"id":"1*dVmAyTviHMkGJq46uvrLcg.jpeg"}},"type":"Tag"},{"slug":"technology","name":"Technology","postCount":2697461,"metadata":{"postCount":2697461,"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"},"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":353579,"metadata":{"postCount":353579,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"word2vec","name":"Word2vec","postCount":793,"metadata":{"postCount":793,"coverImage":{"id":"0*U7onDobmoZBrvFk-.png","originalWidth":1034,"originalHeight":486,"isFeatured":true}},"type":"Tag"},{"slug":"data-science","name":"Data Science","postCount":346133,"metadata":{"postCount":346133,"coverImage":{"id":"1*YUIhHmZyuEn92w2azqpfXg.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"search","name":"Search","postCount":8664,"metadata":{"postCount":8664,"coverImage":{"id":"1*dtgu1vA6U5d94yGNdsY-mg.png","originalWidth":1654,"originalHeight":904,"isFeatured":true}},"type":"Tag"},{"slug":"data","name":"Data","postCount":130032,"metadata":{"postCount":130032,"coverImage":{"id":"1*X_tAPVf1mKF22l0pVvauIg.jpeg","originalWidth":1024,"originalHeight":1024,"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"},"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":346133,"metadata":{"postCount":346133,"coverImage":{"id":"1*YUIhHmZyuEn92w2azqpfXg.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"causal-inference","name":"Causal Inference","postCount":1191,"metadata":{"postCount":1191,"coverImage":{"id":"1*AgEHNdlQXfof5D4Kl0eRfQ.png","originalWidth":1280,"originalHeight":720,"isFeatured":true}},"type":"Tag"},{"slug":"education","name":"Education","postCount":590386,"metadata":{"postCount":590386,"coverImage":{"id":"1*dVmAyTviHMkGJq46uvrLcg.jpeg"}},"type":"Tag"},{"slug":"online-learning","name":"Online Learning","postCount":10246,"metadata":{"postCount":10246,"coverImage":{"id":"1*QfqFlW7Ovmsmgy2GPng3tA.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"statistics","name":"Statistics","postCount":33615,"metadata":{"postCount":33615,"coverImage":{"id":"1*bI_1OLzTas6U0yzysWj06g.png","originalWidth":1362,"originalHeight":773,"isFeatured":true}},"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"},"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":346133,"metadata":{"postCount":346133,"coverImage":{"id":"1*YUIhHmZyuEn92w2azqpfXg.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"engineering","name":"Engineering","postCount":56367,"metadata":{"postCount":56367,"coverImage":{"id":"0*qbQTuVlzhFYSkCjL","originalWidth":4896,"originalHeight":3220,"isFeatured":true,"unsplashPhotoId":"KYxXMTpTzek"}},"type":"Tag"},{"slug":"data","name":"Data","postCount":130032,"metadata":{"postCount":130032,"coverImage":{"id":"1*X_tAPVf1mKF22l0pVvauIg.jpeg","originalWidth":1024,"originalHeight":1024,"isFeatured":true}},"type":"Tag"},{"slug":"product-development","name":"Product Development","postCount":26818,"metadata":{"postCount":26818,"coverImage":{"id":"1*PQv-BYZMsU1GC3mjP-kLgg@2x.jpeg","originalWidth":1792,"originalHeight":1024,"isFeatured":true}},"type":"Tag"},{"slug":"collaboration","name":"Collaboration","postCount":30768,"metadata":{"postCount":30768,"coverImage":{"id":"1*T0yu4ElfwGE9Ko0xAESLvw.jpeg","originalWidth":3060,"originalHeight":4080,"isFeatured":true}},"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"},"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":10812,"metadata":{"postCount":10812,"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":285127,"metadata":{"postCount":285127,"coverImage":{"id":"1*IKZuN_kzUYPl37lBXQkymQ.png","originalWidth":2560,"originalHeight":1440,"isFeatured":true,"alt":"Banner with the Angular logo saying “v19 is now available”"}},"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":17703,"metadata":{"postCount":17703,"coverImage":{"id":"0*lmNSS2nwEYOW2LMc","originalWidth":5472,"originalHeight":3450,"isFeatured":true,"unsplashPhotoId":"vkzceVhkPBs"}},"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"},"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":4883,"metadata":{"postCount":4883,"coverImage":{"id":"0*irhh04O_ilbFHtDI","originalWidth":4515,"originalHeight":3010,"unsplashPhotoId":"UYsBCu9RP3Y"}},"type":"Tag"},{"slug":"coursera","name":"Coursera","postCount":3074,"metadata":{"postCount":3074,"coverImage":{"id":"1*OSlHEFeEPKxhhPrrOUuIzQ.jpeg","originalWidth":1200,"originalHeight":1200}},"type":"Tag"},{"slug":"frontend","name":"Frontend","postCount":17703,"metadata":{"postCount":17703,"coverImage":{"id":"0*lmNSS2nwEYOW2LMc","originalWidth":5472,"originalHeight":3450,"isFeatured":true,"unsplashPhotoId":"vkzceVhkPBs"}},"type":"Tag"},{"slug":"upgrade","name":"Upgrade","postCount":2627,"metadata":{"postCount":2627,"coverImage":{"id":"1*Jwvo6jJ5Jfn1GOOsucuP3g.png","originalWidth":1000,"originalHeight":600,"isFeatured":true}},"type":"Tag"},{"slug":"infrastructure","name":"Infrastructure","postCount":14733,"metadata":{"postCount":14733,"coverImage":{"id":"0*QsqFF3ZJ_vOR_y7i","originalWidth":1600,"originalHeight":1066,"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"}}},"paging":{},"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":3778,"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":3778,"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"},"masthead":{"collectionMastheadId":"","editorsNote":"","staff":[{"userId":"d987eade03ed","excluded":false,"isEditor":true,"type":"CollectionMastheadUserItem"},{"userId":"80624ba8fd79","excluded":false,"isEditor":true,"type":"CollectionMastheadUserItem"},{"userId":"7b91bcea825","excluded":false,"isEditor":true,"type":"CollectionMastheadUserItem"},{"userId":"70814e310ce3","excluded":false,"isEditor":true,"type":"CollectionMastheadUserItem"},{"userId":"9999dd095c18","excluded":false,"isEditor":true,"type":"CollectionMastheadUserItem"},{"userId":"8830b0e2d4f","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"7b91bcea825","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"80624ba8fd79","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"99c0fb464c1f","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"9999dd095c18","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"12a7eff71fbc","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"283802d43c","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"1fc56da4b674","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"146a5788a4bf","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"715b99bc6b5c","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"f36ac0ad7592","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"3bebd5c70600","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"6595f3dc1125","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"e8d286bb099f","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"afbf744275c8","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"5bb4dcd49b0f","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"db2f2af1172b","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"15fc9548e39d","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"36e5b8f4c18f","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"2dafa94ed5f7","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"4f35c2c00794","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"5f3bbeee7670","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"dbd909ab7ead","excluded":false,"type":"CollectionMastheadUserItem"}],"type":"CollectionMasthead"},"archiveIndex":{"timeBucket":{"year":"","month":"","day":"","hasStories":false},"yearlyBuckets":[{"year":"2014","month":"","day":"","hasStories":true},{"year":"2015","month":"","day":"","hasStories":true},{"year":"2016","month":"","day":"","hasStories":true},{"year":"2017","month":"","day":"","hasStories":true},{"year":"2018","month":"","day":"","hasStories":true},{"year":"2019","month":"","day":"","hasStories":true},{"year":"2020","month":"","day":"","hasStories":true},{"year":"2021","month":"","day":"","hasStories":true},{"year":"2023","month":"","day":"","hasStories":true}],"monthlyBuckets":[],"dailyBuckets":[]},"tags":[{"slug":"infrastructure","name":"Infrastructure","postCount":14733,"metadata":{"postCount":14733,"coverImage":{"id":"0*QsqFF3ZJ_vOR_y7i","originalWidth":1600,"originalHeight":1066,"isFeatured":true}},"type":"Tag"},{"slug":"upgrade","name":"Upgrade","postCount":2627,"metadata":{"postCount":2627,"coverImage":{"id":"1*Jwvo6jJ5Jfn1GOOsucuP3g.png","originalWidth":1000,"originalHeight":600,"isFeatured":true}},"type":"Tag"},{"slug":"frontend","name":"Frontend","postCount":17703,"metadata":{"postCount":17703,"coverImage":{"id":"0*lmNSS2nwEYOW2LMc","originalWidth":5472,"originalHeight":3450,"isFeatured":true,"unsplashPhotoId":"vkzceVhkPBs"}},"type":"Tag"},{"slug":"coursera","name":"Coursera","postCount":3074,"metadata":{"postCount":3074,"coverImage":{"id":"1*OSlHEFeEPKxhhPrrOUuIzQ.jpeg","originalWidth":1200,"originalHeight":1200}},"type":"Tag"},{"slug":"webpack","name":"Webpack","postCount":4883,"metadata":{"postCount":4883,"coverImage":{"id":"0*irhh04O_ilbFHtDI","originalWidth":4515,"originalHeight":3010,"unsplashPhotoId":"UYsBCu9RP3Y"}},"type":"Tag"},{"slug":"frontend","name":"Frontend","postCount":17703,"metadata":{"postCount":17703,"coverImage":{"id":"0*lmNSS2nwEYOW2LMc","originalWidth":5472,"originalHeight":3450,"isFeatured":true,"unsplashPhotoId":"vkzceVhkPBs"}},"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":"javascript","name":"JavaScript","postCount":285127,"metadata":{"postCount":285127,"coverImage":{"id":"1*IKZuN_kzUYPl37lBXQkymQ.png","originalWidth":2560,"originalHeight":1440,"isFeatured":true,"alt":"Banner with the Angular logo saying “v19 is now available”"}},"type":"Tag"},{"slug":"sangria","name":"Sangria","postCount":89,"metadata":{"postCount":89,"coverImage":{"id":"0*qVFR6K5i8OaSrJ1c","originalWidth":660,"originalHeight":1024,"isFeatured":true}},"type":"Tag"},{"slug":"graphql","name":"GraphQL","postCount":10812,"metadata":{"postCount":10812,"coverImage":{"id":"1*6eiJ7I-LHclHcik265-rkQ.png","originalWidth":800,"originalHeight":400,"isFeatured":true}},"type":"Tag"}],"streamItems":[{"createdAt":1732377470239,"postPreview":{"postId":"ec5fc54d3903"},"randomId":"ab90a51fce2c","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732377470239,"postPreview":{"postId":"3382f0711c24"},"randomId":"77a847beb89f","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732377470239,"postPreview":{"postId":"b10418a05214"},"randomId":"27ad12e17821","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732377470239,"postPreview":{"postId":"5f1bac9cd176"},"randomId":"afec945fa788","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732377470239,"postPreview":{"postId":"89de0104bcbd"},"randomId":"7b7d2b64cd43","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732377470239,"postPreview":{"postId":"2f6070083bda"},"randomId":"6caa6b6d02c4","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732377470239,"postPreview":{"postId":"31f956bd592a"},"randomId":"4c85e1d4bfbf","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732377470240,"postPreview":{"postId":"84cf9b38cd52"},"randomId":"300e162ffb63","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732377470240,"postPreview":{"postId":"4c587a4ad9a8"},"randomId":"0e6bbc3fccf2","itemType":"postPreview","type":"StreamItem"},{"createdAt":1732377470240,"postPreview":{"postId":"cdfeb817faf8"},"randomId":"e58a1571d890","itemType":"postPreview","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:'8e725b736a779c4a',t:'MTczMjM3NzQ3MC4wMDAwMDA='};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>