<!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>Chronic Build Failure</title><link rel="canonical" href="https://chronicbuildfailure.co/"><link id="feedLink" rel="alternate" type="application/rss+xml" title="RSS" href="https://chronicbuildfailure.co/feed"><meta name="title" content="Chronic Build Failure"><meta name="referrer" content="unsafe-url"><meta name="description" content="Mindless ramblings from a supposedly professional software developer."><meta name="keywords" content="RUBY, DEVOPS, SOFTWARE DEVELOPMENT"><meta name="theme-color" content="#000000"><meta property="og:title" content="Chronic Build Failure"><meta property="og:url" content="https://chronicbuildfailure.co/"><meta property="og:image" content="https://cdn-images-1.medium.com/max/1200/1*r-_XTOvMHrtJynurrdZVLQ.png"><meta property="fb:app_id" content="542599432471018"><meta property="og:description" content="Mindless ramblings from a supposedly professional software developer."><meta name="twitter:description" content="Mindless ramblings from a supposedly professional software developer."><meta name="twitter:image:src" content="https://cdn-images-1.medium.com/max/1200/1*r-_XTOvMHrtJynurrdZVLQ.png"><link rel="publisher" href="https://plus.google.com/103654360130207659246"><meta property="og:type" content="medium-com:collection"><meta name="twitter:card" content="summary_large_image"><meta property="medium-com:creator" content="https://chronicbuildfailure.co/@binarycleric"><meta name="twitter:site" content="@binarycleric"><meta property="og:site_name" content="Chronic Build Failure"><meta name="twitter:app:name:iphone" content="Medium"><meta name="twitter:app:id:iphone" content="828256236"><meta name="twitter:app:url:iphone" content="medium://chronic-build-failure"><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://chronic-build-failure"><meta property="al:android:url" content="medium://chronic-build-failure"><meta property="al:web:url" content="https://chronicbuildfailure.co/"><link rel="search" type="application/opensearchdescription+xml" title="Medium" href="/osd.xml" /><link rel="alternate" href="android-app://com.medium.reader/https/medium.com/chronic-build-failure" /><script type="application/ld+json">{"@context": "http://schema.org", "@type": "WebSite", "url": "https:\/\/chronicbuildfailure.co", "name": "Chronic Build Failure", "alternateName": "Mindless ramblings from a supposedly professional software developer."}</script><link rel="stylesheet" href="https://cdn-static-1.medium.com/_/fp/css/main-branding-base.g_kPXnfEAowH9UsZKGdHxg.css"><script>if (window.top !== window.self) window.top.location = window.self.location.href;var OB_startTime = new Date().getTime(); var OB_loadErrors = []; function _onerror(e) { OB_loadErrors.push(e) }; if (document.addEventListener) document.addEventListener("error", _onerror, true); else if (document.attachEvent) document.attachEvent("onerror", _onerror); function _asyncScript(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("script"); s.type = "text/javascript"; s.async = true; s.src = u; f.parentNode.insertBefore(s, f);}function _asyncStyles(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("link"); s.rel = "stylesheet"; s.href = u; f.parentNode.insertBefore(s, f); return s}(new Image()).src = "/_/stat?event=pixel.load&origin=" + encodeURIComponent(location.origin);</script><script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; ga("create", "UA-24232453-2", "auto", {"allowLinker": true, "legacyCookieDomain": window.location.hostname}); ga("send", "pageview");</script><script async src="https://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-sizeViewHeight100 {height: " + height + "px !important;}.u-sizeViewHeight110 {height: " + Math.round(1.1 * height) + "px !important;}.u-sizeViewHeightMin100 {min-height: " + height + "px !important;}.u-sizeViewHeightMax100 {max-height: " + height + "px !important;}section.section-image--coverFade {height: " + height + "px;}.section-aspectRatioViewportPlaceholder, .section-aspectRatioViewportCropPlaceholder {max-height: " + height + "px;}.section-aspectRatioViewportBottomSpacer, .section-aspectRatioViewportBottomPlaceholder {max-height: " + Math.round(0.5 * height) + "px;}.zoomable:before {top: " + (-1 * height) + "px; left: " + (-1 * width) + "px; padding: " + height + "px " + width + "px;}</style>");})()</script><!--[if lt IE 9]><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.js"></script><![endif]--><link rel="icon" href="https://cdn-static-1.medium.com/_/fp/icons/favicon-rebrand-medium.3Y6xpZ-0FSdWDnPM3hSBIA.ico" class="js-favicon"><link rel="apple-touch-icon" sizes="152x152" href="https://cdn-images-1.medium.com/fit/c/304/304/1*r-_XTOvMHrtJynurrdZVLQ.png"><link rel="apple-touch-icon" sizes="120x120" href="https://cdn-images-1.medium.com/fit/c/240/240/1*r-_XTOvMHrtJynurrdZVLQ.png"><link rel="apple-touch-icon" sizes="76x76" href="https://cdn-images-1.medium.com/fit/c/152/152/1*r-_XTOvMHrtJynurrdZVLQ.png"><link rel="apple-touch-icon" sizes="60x60" href="https://cdn-images-1.medium.com/fit/c/120/120/1*r-_XTOvMHrtJynurrdZVLQ.png"><link rel="mask-icon" href="https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.svg" color="#171717"></head><body itemscope class="  v-glyph v-glyph--m2 is-noJs"><script>document.body.className = document.body.className.replace(/(^|\s)is-noJs(\s|$)/, "$1is-js$2")</script><div class="site-main" id="container"><div class="butterBar butterBar--error"></div><div class="surface"><div id="prerendered" class="screenContent"><div class="metabar u-clearfix js-metabar"><div class="js-metabarMiddle metabar-inner u-marginAuto u-maxWidth1000 u-flexCenter u-justifyContentSpaceBetween u-height65 u-xs-height56 u-paddingLeft20 u-paddingRight20"><div class="metabar-block u-flex1 "><div class="js-metabarLogoLeft"><a href="https://medium.com/" data-log-event="home" class="siteNav-logo u-flexCenter u-paddingTop0"><span class="svgIcon svgIcon--logoMonogram svgIcon--45px is-flushLeft u-textColorDarker"><svg class="svgIcon-use" width="45" height="45" viewBox="0 0 45 45" ><path d="M5 40V5h35v35H5zm8.56-12.627c0 .555-.027.687-.318 1.03l-2.457 2.985v.396h6.974v-.396l-2.456-2.985c-.291-.343-.344-.502-.344-1.03V18.42l6.127 13.364h.714l5.256-13.364v10.644c0 .29 0 .342-.185.528l-1.848 1.796v.396h9.19v-.396l-1.822-1.796c-.184-.186-.21-.238-.21-.528V15.937c0-.291.026-.344.21-.528l1.823-1.797v-.396h-6.471l-4.622 11.542-5.203-11.542h-6.79v.396l2.14 2.64c.239.292.291.37.291.768v10.353z"/></svg></span><span class="u-textScreenReader">Homepage</span></a></div></div><div class="metabar-block u-flex0 u-flexCenter"><div class="u-alignMiddle u-inlineBlock u-verticalAlignTop u-height65 u-xs-height56"><div class="u-alignBlock"><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%2Fchronicbuildfailure.co%2F&amp;source=--------------------------nav_reg&amp;operation=login" data-action="sign-in-prompt" data-redirect="https://chronicbuildfailure.co/" 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%2Fchronicbuildfailure.co%2F&amp;source=--------------------------nav_reg&amp;operation=register" data-action="sign-up-prompt" data-redirect="https://chronicbuildfailure.co/" data-action-source="--------------------------nav_reg">Get started</a></div></div></div></div></div></div><div class="metabar metabar--spacer js-metabarSpacer u-height65 u-xs-height56"></div><div class="collectionHeader js-collectionHeaderContainer u-relative collectionHeader--layoutLarge collectionHeader--alignmentCenter collectionHeader--withLogo collectionHeader--withoutBackground collectionHeader--colorBehaviorSubtle collectionHeader--withoutNavigation collectionHeader--editorLayoutTitleAndLogo is-modeView is-whiteLabel"><div class="collectionHeader-aspectRatioTable"><div class="collectionHeader-aspectRatioContent u-backgroundSizeCover js-collectionHeaderBackground"><div class="collectionHeader-overlayBackground u-sizeViewHeight100"></div><header class="collectionHeader-heroAndInlineNav u-borderBox u-maxWidth1040 u-paddingLeft20 u-paddingRight20 u-marginAuto u-foreground js-collectionHeader"><div class="collectionHeader-hero js-collectionHeaderHero u-clearfix"><div class="collectionHeader-heroInner"><div class="collectionHeader-logo js-collectionHeaderLogo" style="max-width: 140px;"><a class="link u-baseColor--link"   href="https://chronicbuildfailure.co" title="Go to Chronic Build Failure" aria-label="Go to Chronic Build Failure" data-collection-slug="chronic-build-failure"><div class="u-relative u-marginAuto"><div style="padding-bottom: 100%"></div><img class="collectionHeader-logoImage js-collectionHeaderLogoImage" src="https://cdn-images-1.medium.com/max/280/1*r-_XTOvMHrtJynurrdZVLQ.png"  data-image-id="1*r-_XTOvMHrtJynurrdZVLQ.png" data-width="512" data-height="512" /></div></a></div><div class="collectionHeader-nameAndDescription"><a class="link link--noUnderline u-baseColor--link"   href="https://chronicbuildfailure.co" title="Go to Chronic Build Failure" aria-label="Go to Chronic Build Failure" data-collection-slug="chronic-build-failure"><h1 class="collectionHeader-name js-collectionName u-foreground u-baseColor--textDark u-paddingBottom4 u-lineHeightTightest u-contentSansBold u-fontSize40 u-xs-fontSize32">Chronic Build Failure</h1></a><h2 class="collectionHeader-description js-collectionDescription u-foreground u-baseColor--textNormal u-contentSansRegular u-fontSize24 u-xs-fontSize18">Mindless ramblings from a supposedly professional software developer.</h2></div></div></div></header></div><div class="collectionHeader-aspectRatioCell"><div class="collectionHeader-aspectRatioFullWidth"></div></div></div><div class="collectionHeader-blockNav"><div class="u-borderBox u-maxWidth1040 u-paddingLeft20 u-paddingRight20 u-marginAuto"><nav class="collectionHeader-nav u-clearfix js-collectionHeaderNav u-lineHeight40 u-overflowHiddenY"><div class="buttonSet u-flex1 u-noWrap u-overflowX u-paddingBottom100 u-xs-marginRight15"><label class="button button--chromeless inputGroup u-sm-hide metabar-predictiveSearch u-baseColor--buttonNormal u-baseColor--placeholderNormal" title="Search"><span class="svgIcon svgIcon--search svgIcon--25px u-top0 u-baseColor--iconLight"><svg class="svgIcon-use" width="25" height="25"  viewBox="0 0 25 25"><path d="M20.067 18.933l-4.157-4.157a6 6 0 1 0-.884.884l4.157 4.157a.624.624 0 1 0 .884-.884zM6.5 11c0-2.62 2.13-4.75 4.75-4.75S16 8.38 16 11s-2.13 4.75-4.75 4.75S6.5 13.62 6.5 11z"/></svg></span><input class="js-predictiveSearchInput textInput textInput--rounded textInput--darkText u-baseColor--textNormal textInput--transparent" type="search" placeholder="Search" required="true" data-collection-id="6efbd51be2a5" /></label><a class="button button--chromeless is-touchIconBlackPulse u-baseColor--buttonNormal button--withIcon button--withSvgIcon u-verticalAlignMiddle"   href="https://twitter.com/binarycleric" title="Visit “Chronic Build Failure” on Twitter" aria-label="Visit “Chronic Build Failure” on Twitter" rel="me" target="_blank"><span class="button-defaultState"><span class="svgIcon svgIcon--twitterFilled svgIcon--25px"><svg class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25" ><path d="M21.725 5.338c-.744.47-1.605.804-2.513 1.006a3.978 3.978 0 0 0-2.942-1.293c-2.22 0-4.02 1.81-4.02 4.02 0 .32.034.63.07.94-3.31-.18-6.27-1.78-8.255-4.23a4.544 4.544 0 0 0-.574 2.01c.04 1.43.74 2.66 1.8 3.38-.63-.01-1.25-.19-1.79-.5v.08c0 1.93 1.38 3.56 3.23 3.95-.34.07-.7.12-1.07.14-.25-.02-.5-.04-.72-.07.49 1.58 1.97 2.74 3.74 2.8a8.49 8.49 0 0 1-5.02 1.72c-.3-.03-.62-.04-.93-.07A11.447 11.447 0 0 0 8.88 21c7.386 0 11.43-6.13 11.414-11.414.015-.21.01-.38 0-.578a7.604 7.604 0 0 0 2.01-2.08 7.27 7.27 0 0 1-2.297.645 3.856 3.856 0 0 0 1.72-2.23"/></svg></span></span></a></div><div class="buttonSet u-textAlignRight u-marginLeft18 u-flex0 u-noWrap"><button class="button button--primary button--smallest u-noUserSelect button--withChrome u-accentColor--buttonNormal button--followCollection js-followCollectionButton"  data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-collection" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/collection/chronic-build-failure" data-action-source="header----6efbd51be2a5----------------------follow_pub"><span class="button-label  button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></div></nav></div></div></div><div class="u-marginBottom40 js-collectionStream"><div class="streamItem streamItem--section js-streamItem"><section class="u-marginTop30 u-xs-margin0 u-marginBottom15 u-maxWidth1000 u-sm-paddingLeft20 u-sm-paddingRight20 u-borderBox u-marginAuto"><div class="row u-marginTop30 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackedPost u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size6of12" data-source="collection_home---4------0----------------" data-post-id="5ad7713201d5" data-index="0"><div class="u-lineHeightBase postItem"><a href="https://chronicbuildfailure.co/splitting-up-modules-in-rust-5ad7713201d5?source=collection_home---4------0----------------" data-action="open-post" data-action-value="https://chronicbuildfailure.co/splitting-up-modules-in-rust-5ad7713201d5?source=collection_home---4------0----------------" class="u-block u-xs-height170 u-width600 u-height272  u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/1200/1*G7s9GgBsZhEVIVsb5dbHHQ.png&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Splitting up modules in Rust</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class=""   href="https://chronicbuildfailure.co/splitting-up-modules-in-rust-5ad7713201d5?source=collection_home---4------0----------------" data-action-source="collection_home---4------0----------------" data-post-id="5ad7713201d5"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-fontSize24">Splitting up modules in Rust</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">A few weeks ago, I decided to prioritize learning Rust over a few other potential side projects. I had played around with the language a…</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar"   href="https://chronicbuildfailure.co/@binarycleric" data-action="show-user-card" data-action-value="ad0e2af15627" data-action-type="hover" data-user-id="ad0e2af15627" data-collection-slug="chronic-build-failure" dir="auto"><img  src="https://cdn-images-1.medium.com/fit/c/72/72/1*HwZtUgMNzraX36YtgT55wA.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Jon Daniel"></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://chronicbuildfailure.co/@binarycleric" data-action="show-user-card" data-action-value="ad0e2af15627" data-action-type="hover" data-user-id="ad0e2af15627" data-collection-slug="chronic-build-failure" dir="auto">Jon Daniel</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2018-04-23T14:31:01.180Z">Apr 23</time></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackedPost u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size6of12" data-source="collection_home---4------1----------------" data-post-id="a622b9e50fba" data-index="1"><div class="u-lineHeightBase postItem"><a href="https://chronicbuildfailure.co/electron-is-derogatory-phrase-here-111-a622b9e50fba?source=collection_home---4------1----------------" data-action="open-post" data-action-value="https://chronicbuildfailure.co/electron-is-derogatory-phrase-here-111-a622b9e50fba?source=collection_home---4------1----------------" class="u-block u-xs-height170 u-width600 u-height272  u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/1200/1*9ce5Yft8Cqg3Vt63pVGNkw.png&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Electron is {derogatory_phrase_here}!!!111</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class=""   href="https://chronicbuildfailure.co/electron-is-derogatory-phrase-here-111-a622b9e50fba?source=collection_home---4------1----------------" data-action-source="collection_home---4------1----------------" data-post-id="a622b9e50fba"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-fontSize24">Electron is {derogatory_phrase_here}!!!111</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Do I have your attention?</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar"   href="https://chronicbuildfailure.co/@binarycleric" data-action="show-user-card" data-action-value="ad0e2af15627" data-action-type="hover" data-user-id="ad0e2af15627" data-collection-slug="chronic-build-failure" dir="auto"><img  src="https://cdn-images-1.medium.com/fit/c/72/72/1*HwZtUgMNzraX36YtgT55wA.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Jon Daniel"></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://chronicbuildfailure.co/@binarycleric" data-action="show-user-card" data-action-value="ad0e2af15627" data-action-type="hover" data-user-id="ad0e2af15627" data-collection-slug="chronic-build-failure" dir="auto">Jon Daniel</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2018-01-10T17:40:01.766Z">Jan 10</time></div></div></div></div></div></div></div><div class="row u-marginTop30 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackedPost u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------2----------------" data-post-id="8b0af5c07cf3" data-index="2"><div class="u-lineHeightBase postItem"><a href="https://chronicbuildfailure.co/thoughts-on-rubys-net-http-8b0af5c07cf3?source=collection_home---4------2----------------" data-action="open-post" data-action-value="https://chronicbuildfailure.co/thoughts-on-rubys-net-http-8b0af5c07cf3?source=collection_home---4------2----------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*Y-QdVVj1adXj745T7rMKMg.png&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Thoughts on Ruby’s Net::HTTP</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class=""   href="https://chronicbuildfailure.co/thoughts-on-rubys-net-http-8b0af5c07cf3?source=collection_home---4------2----------------" data-action-source="collection_home---4------2----------------" data-post-id="8b0af5c07cf3"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-fontSize24">Thoughts on Ruby’s Net::HTTP</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">This was written as a non-judgemental comment to a post on lobster.rs (think a smaller version of hackernews).</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar"   href="https://chronicbuildfailure.co/@binarycleric" data-action="show-user-card" data-action-value="ad0e2af15627" data-action-type="hover" data-user-id="ad0e2af15627" data-collection-slug="chronic-build-failure" dir="auto"><img  src="https://cdn-images-1.medium.com/fit/c/72/72/1*HwZtUgMNzraX36YtgT55wA.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Jon Daniel"></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://chronicbuildfailure.co/@binarycleric" data-action="show-user-card" data-action-value="ad0e2af15627" data-action-type="hover" data-user-id="ad0e2af15627" data-collection-slug="chronic-build-failure" dir="auto">Jon Daniel</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2017-12-18T18:13:41.670Z">Dec 18, 2017</time></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackedPost u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------3----------------" data-post-id="2da7ac95bdd5" data-index="3"><div class="u-lineHeightBase postItem"><a href="https://chronicbuildfailure.co/fix-hiring-and-train-a-new-generation-2da7ac95bdd5?source=collection_home---4------3----------------" data-action="open-post" data-action-value="https://chronicbuildfailure.co/fix-hiring-and-train-a-new-generation-2da7ac95bdd5?source=collection_home---4------3----------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*2H3y-9kqxOf_2SjT6U3M_g.jpeg&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Fix Hiring and Train a New Generation</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class=""   href="https://chronicbuildfailure.co/fix-hiring-and-train-a-new-generation-2da7ac95bdd5?source=collection_home---4------3----------------" data-action-source="collection_home---4------3----------------" data-post-id="2da7ac95bdd5"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-fontSize24">Fix Hiring and Train a New Generation</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Discussions about how to “fix tech hiring” and “improve diversity” are becoming common at tech conferences, developer meetups, and…</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar"   href="https://chronicbuildfailure.co/@binarycleric" data-action="show-user-card" data-action-value="ad0e2af15627" data-action-type="hover" data-user-id="ad0e2af15627" data-collection-slug="chronic-build-failure" dir="auto"><img  src="https://cdn-images-1.medium.com/fit/c/72/72/1*HwZtUgMNzraX36YtgT55wA.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Jon Daniel"></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://chronicbuildfailure.co/@binarycleric" data-action="show-user-card" data-action-value="ad0e2af15627" data-action-type="hover" data-user-id="ad0e2af15627" data-collection-slug="chronic-build-failure" dir="auto">Jon Daniel</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2016-08-09T16:54:07.162Z">Aug 9, 2016</time></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackedPost u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------4----------------" data-post-id="4c7458f4f152" data-index="4"><div class="u-lineHeightBase postItem"><a href="https://chronicbuildfailure.co/embrace-chaos-day-1-in-unfamiliar-code-4c7458f4f152?source=collection_home---4------4----------------" data-action="open-post" data-action-value="https://chronicbuildfailure.co/embrace-chaos-day-1-in-unfamiliar-code-4c7458f4f152?source=collection_home---4------4----------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*pVJUtzsnsn_gjvOp4URilg.jpeg&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Embrace Chaos. Day 1 in Unfamiliar Code.</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class=""   href="https://chronicbuildfailure.co/embrace-chaos-day-1-in-unfamiliar-code-4c7458f4f152?source=collection_home---4------4----------------" data-action-source="collection_home---4------4----------------" data-post-id="4c7458f4f152"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-fontSize24">Embrace Chaos. Day 1 in Unfamiliar Code.</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Note: This post was written before I was laid off by my employer but I still thought it was valuable to share. I plan on asking all of…</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar"   href="https://chronicbuildfailure.co/@binarycleric" data-action="show-user-card" data-action-value="ad0e2af15627" data-action-type="hover" data-user-id="ad0e2af15627" data-collection-slug="chronic-build-failure" dir="auto"><img  src="https://cdn-images-1.medium.com/fit/c/72/72/1*HwZtUgMNzraX36YtgT55wA.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Jon Daniel"></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://chronicbuildfailure.co/@binarycleric" data-action="show-user-card" data-action-value="ad0e2af15627" data-action-type="hover" data-user-id="ad0e2af15627" data-collection-slug="chronic-build-failure" dir="auto">Jon Daniel</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2016-03-22T15:01:01.647Z">Mar 22, 2016</time></div></div></div></div></div></div></div></section></div></div><style class="js-collectionStyle">
.u-accentColor--borderLight {border-color: #02B875 !important;}
.u-accentColor--borderNormal {border-color: #02B875 !important;}
.u-accentColor--borderDark {border-color: #1C9963 !important;}
.u-accentColor--iconLight .svgIcon,.u-accentColor--iconLight.svgIcon {fill: #02B875 !important;}
.u-accentColor--iconNormal .svgIcon,.u-accentColor--iconNormal.svgIcon {fill: #02B875 !important;}
.u-accentColor--iconDark .svgIcon,.u-accentColor--iconDark.svgIcon {fill: #1C9963 !important;}
.u-accentColor--textNormal {color: #1C9963 !important;}
.u-accentColor--hoverTextNormal:hover {color: #1C9963 !important;}
.u-accentColor--textNormal.u-accentColor--textDarken:hover {color: #1C9963 !important;}
.u-accentColor--textDark {color: #1C9963 !important;}
.u-accentColor--backgroundLight {background-color: #02B875 !important;}
.u-accentColor--backgroundNormal {background-color: #02B875 !important;}
.u-accentColor--backgroundDark {background-color: #1C9963 !important;}
.u-accentColor--buttonDark {border-color: #1C9963 !important; color: #1C9963 !important;}
.u-accentColor--buttonDark:hover {border-color: #1C9963 !important;}
.u-accentColor--buttonDark .icon:before,.u-accentColor--buttonDark .svgIcon{color: #1C9963 !important; fill: #1C9963 !important;}
.u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: #02B875 !important; color: #1C9963 !important;}
.u-accentColor--buttonNormal:hover {border-color: #1C9963 !important;}
.u-accentColor--buttonNormal .icon:before,.u-accentColor--buttonNormal .svgIcon{color: #02B875 !important; fill: #02B875 !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: #1C9963 !important; border-color: #1C9963 !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: #02B875 !important; border-color: #02B875 !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: #1C9963 !important;}
.u-accentColor--highlightFaint {background-color: rgba(233, 253, 240, 1) !important;}
.u-accentColor--highlightStrong.is-active .svgIcon {fill: rgba(125, 255, 179, 1) !important;}
.postArticle.is-withAccentColors .markup--quote.is-other {background-color: rgba(233, 253, 240, 1) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-other {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(233, 253, 240, 1), rgba(233, 253, 240, 1));}
.postArticle.is-withAccentColors .markup--quote.is-me {background-color: rgba(173, 255, 207, 1) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-me {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(173, 255, 207, 1), rgba(173, 255, 207, 1));}
.postArticle.is-withAccentColors .markup--quote.is-targeted {background-color: rgba(125, 255, 179, 1) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-targeted {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(125, 255, 179, 1), rgba(125, 255, 179, 1));}
.postArticle.is-withAccentColors .markup--quote.is-selected {background-color: rgba(125, 255, 179, 1) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-selected {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(125, 255, 179, 1), rgba(125, 255, 179, 1));}
.postArticle.is-withAccentColors .markup--highlight {background-color: rgba(125, 255, 179, 1) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--highlight {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(125, 255, 179, 1), rgba(125, 255, 179, 1));}.u-baseColor--iconNormal.avatar-halo {fill: rgba(0, 0, 0, 0.4980392156862745) !important;}</style><style class="js-collectionStyleConstant">.u-imageBgColor {background-color: rgba(0, 0, 0, 0.24705882352941178);}
.u-imageSpectrum .u-baseColor--borderLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;}
.u-imageSpectrum .u-baseColor--borderNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important;}
.u-imageSpectrum .u-baseColor--borderDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-baseColor--iconLight .svgIcon,.u-imageSpectrum .u-baseColor--iconLight.svgIcon {fill: rgba(255, 255, 255, 0.8) !important;}
.u-imageSpectrum .u-baseColor--iconNormal .svgIcon,.u-imageSpectrum .u-baseColor--iconNormal.svgIcon {fill: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-baseColor--iconDark .svgIcon,.u-imageSpectrum .u-baseColor--iconDark.svgIcon {fill: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--textNormal {color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--textDark {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--textDarker {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--backgroundLight {background-color: rgba(255, 255, 255, 0.8980392156862745) !important;}
.u-imageSpectrum .u-baseColor--backgroundNormal {background-color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-baseColor--backgroundDark {background-color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--buttonLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important; color: rgba(255, 255, 255, 0.8) !important;}
.u-imageSpectrum .u-baseColor--buttonLight:hover {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;}
.u-imageSpectrum .u-baseColor--buttonLight .icon:before,.u-imageSpectrum .u-baseColor--buttonLight .svgIcon {color: rgba(255, 255, 255, 0.8) !important; fill: rgba(255, 255, 255, 0.8) !important;}
.u-imageSpectrum .u-baseColor--buttonDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--buttonDark:hover {border-color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--buttonDark .icon:before,.u-imageSpectrum .u-baseColor--buttonDark .svgIcon {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--buttonNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important; color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-baseColor--buttonNormal:hover {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-baseColor--buttonNormal .icon:before,.u-imageSpectrum .u-baseColor--buttonNormal .svgIcon {color: rgba(255, 255, 255, 0.9490196078431372) !important; fill: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-baseColor--buttonDark.button--filled,.u-imageSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: rgba(255, 255, 255, 1) !important; border-color: rgba(255, 255, 255, 1) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;}
.u-imageSpectrum .u-baseColor--buttonNormal.button--filled,.u-imageSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: rgba(255, 255, 255, 0.9490196078431372) !important; border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;}
.u-imageSpectrum .u-baseColor--link {color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--link.link--darken:hover,.u-imageSpectrum .u-baseColor--link.link--darken:focus,.u-imageSpectrum .u-baseColor--link.link--darken:active {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--link.link--dark {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-imageSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-imageSpectrum .u-baseColor--link.link--dark.link--darken:active {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--link.link--darker {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: rgba(255, 255, 255, 0.8);}
.u-imageSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: rgba(255, 255, 255, 0.8);}
.u-imageSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: rgba(255, 255, 255, 0.8);}
.u-imageSpectrum .svgIcon--logoNew path:nth-child(1) {stroke: none !important; fill: rgba(255, 255, 255, 0.4) !important;}
.u-imageSpectrum .svgIcon--logoNew path:nth-child(2) {stroke: none !important; fill: rgba(255, 255, 255, 0.4980392156862745) !important;}
.u-imageSpectrum .svgIcon--logoNew path:nth-child(3) {stroke: none !important; fill: rgba(255, 255, 255, 0.6980392156862745) !important;}
.u-imageSpectrum .svgIcon--logoNew path:nth-child(4) {stroke: none !important; fill: rgba(255, 255, 255, 0.8980392156862745) !important;}
.u-imageSpectrum .svgIcon--logoWordmark {stroke: none !important; fill: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .svgIcon--logoMonogram {stroke: none !important; fill: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum  .ui-h1,.u-imageSpectrum  .ui-h2,.u-imageSpectrum  .ui-h3,.u-imageSpectrum  .ui-h4,.u-imageSpectrum  .ui-brand1,.u-imageSpectrum  .ui-brand2,.u-imageSpectrum  .ui-captionStrong {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum  .ui-body,.u-imageSpectrum  .ui-caps {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum  .ui-summary,.u-imageSpectrum  .ui-caption {color: rgba(255, 255, 255, 0.8) !important; fill: rgba(255, 255, 255, 0.8) !important;}
.u-imageSpectrum .u-accentColor--borderLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;}
.u-imageSpectrum .u-accentColor--borderNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important;}
.u-imageSpectrum .u-accentColor--borderDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-accentColor--iconLight .svgIcon,.u-imageSpectrum .u-accentColor--iconLight.svgIcon {fill: rgba(255, 255, 255, 0.8) !important;}
.u-imageSpectrum .u-accentColor--iconNormal .svgIcon,.u-imageSpectrum .u-accentColor--iconNormal.svgIcon {fill: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-accentColor--iconDark .svgIcon,.u-imageSpectrum .u-accentColor--iconDark.svgIcon {fill: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-accentColor--textNormal {color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-accentColor--hoverTextNormal:hover {color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-accentColor--textDark {color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-accentColor--backgroundLight {background-color: rgba(255, 255, 255, 0.8980392156862745) !important;}
.u-imageSpectrum .u-accentColor--backgroundNormal {background-color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-accentColor--backgroundDark {background-color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-accentColor--buttonDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-accentColor--buttonDark:hover {border-color: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-accentColor--buttonDark .icon:before,.u-imageSpectrum .u-accentColor--buttonDark .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;}
.u-imageSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: rgba(255, 255, 255, 0.8980392156862745) !important; color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-accentColor--buttonNormal:hover {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-accentColor--buttonNormal .icon:before,.u-imageSpectrum .u-accentColor--buttonNormal .svgIcon{color: rgba(255, 255, 255, 0.9490196078431372) !important; fill: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-imageSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;}
.u-imageSpectrum .u-accentColor--buttonDark.button--filled,.u-imageSpectrum .u-accentColor--buttonDark.button--withChrome.is-active,.u-imageSpectrum .u-accentColor--fillWhenActive.is-active {background-color: rgba(255, 255, 255, 1) !important; border-color: rgba(255, 255, 255, 1) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;}
.u-imageSpectrum .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-imageSpectrum .u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: rgba(255, 255, 255, 0.9490196078431372) !important; border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;}
.u-imageSpectrum .postArticle.is-withAccentColors .markup--user,.u-imageSpectrum .postArticle.is-withAccentColors .markup--query {color: rgba(255, 255, 255, 0.9490196078431372) !important;}
.u-imageSpectrum .u-accentColor--highlightFaint {background-color: rgba(255, 255, 255, 0.2) !important;}
.u-imageSpectrum .u-accentColor--highlightStrong.is-active .svgIcon {fill: rgba(255, 255, 255, 0.6) !important;}
.postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-other {background-color: rgba(255, 255, 255, 0.2) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-other {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2));}
.postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-me {background-color: rgba(255, 255, 255, 0.4) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-me {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.4));}
.postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-targeted {background-color: rgba(255, 255, 255, 0.6) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-targeted {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));}
.postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-selected {background-color: rgba(255, 255, 255, 0.6) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-selected {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));}
.postArticle.is-withAccentColors .u-imageSpectrum .markup--highlight {background-color: rgba(255, 255, 255, 0.6) !important;}
body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--highlight {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));}.u-resetSpectrum .u-tintBgColor {background-color: rgba(255, 255, 255, 1) !important;}.u-resetSpectrum .u-tintBgColor .u-fadeLeft:before {background-image: linear-gradient(to right, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%) !important;}.u-resetSpectrum .u-tintBgColor .u-fadeRight:after {background-image: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%) !important;}
.u-resetSpectrum .u-baseColor--borderLight {border-color: rgba(0, 0, 0, 0.2980392156862745) !important;}
.u-resetSpectrum .u-baseColor--borderNormal {border-color: rgba(0, 0, 0, 0.4980392156862745) !important;}
.u-resetSpectrum .u-baseColor--borderDark {border-color: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--iconLight .svgIcon,.u-resetSpectrum .u-baseColor--iconLight.svgIcon {fill: rgba(0, 0, 0, 0.2980392156862745) !important;}
.u-resetSpectrum .u-baseColor--iconNormal .svgIcon,.u-resetSpectrum .u-baseColor--iconNormal.svgIcon {fill: rgba(0, 0, 0, 0.4980392156862745) !important;}
.u-resetSpectrum .u-baseColor--iconDark .svgIcon,.u-resetSpectrum .u-baseColor--iconDark.svgIcon {fill: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--textNormal {color: rgba(0, 0, 0, 0.4980392156862745) !important;}
.u-resetSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--textDark {color: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--textDarker {color: rgba(0, 0, 0, 0.8) !important;}
.u-resetSpectrum .u-baseColor--backgroundLight {background-color: rgba(0, 0, 0, 0.09803921568627451) !important;}
.u-resetSpectrum .u-baseColor--backgroundNormal {background-color: rgba(0, 0, 0, 0.2) !important;}
.u-resetSpectrum .u-baseColor--backgroundDark {background-color: rgba(0, 0, 0, 0.2980392156862745) !important;}
.u-resetSpectrum .u-baseColor--buttonLight {border-color: rgba(0, 0, 0, 0.2980392156862745) !important; color: rgba(0, 0, 0, 0.2980392156862745) !important;}
.u-resetSpectrum .u-baseColor--buttonLight:hover {border-color: rgba(0, 0, 0, 0.2980392156862745) !important;}
.u-resetSpectrum .u-baseColor--buttonLight .icon:before,.u-resetSpectrum .u-baseColor--buttonLight .svgIcon {color: rgba(0, 0, 0, 0.2980392156862745) !important; fill: rgba(0, 0, 0, 0.2980392156862745) !important;}
.u-resetSpectrum .u-baseColor--buttonDark {border-color: rgba(0, 0, 0, 0.6) !important; color: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--buttonDark:hover {border-color: rgba(0, 0, 0, 0.8) !important;}
.u-resetSpectrum .u-baseColor--buttonDark .icon:before,.u-resetSpectrum .u-baseColor--buttonDark .svgIcon {color: rgba(0, 0, 0, 0.6) !important; fill: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--buttonNormal {border-color: rgba(0, 0, 0, 0.4980392156862745) !important; color: rgba(0, 0, 0, 0.4980392156862745) !important;}
.u-resetSpectrum .u-baseColor--buttonNormal:hover {border-color: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--buttonNormal .icon:before,.u-resetSpectrum .u-baseColor--buttonNormal .svgIcon {color: rgba(0, 0, 0, 0.4980392156862745) !important; fill: rgba(0, 0, 0, 0.4980392156862745) !important;}
.u-resetSpectrum .u-baseColor--buttonDark.button--filled,.u-resetSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: rgba(0, 0, 0, 0.2980392156862745) !important; border-color: rgba(0, 0, 0, 0.2980392156862745) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;}
.u-resetSpectrum .u-baseColor--buttonNormal.button--filled,.u-resetSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: rgba(0, 0, 0, 0.2) !important; border-color: rgba(0, 0, 0, 0.2) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;}
.u-resetSpectrum .u-baseColor--link {color: rgba(0, 0, 0, 0.4980392156862745) !important;}
.u-resetSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--link.link--darken:hover,.u-resetSpectrum .u-baseColor--link.link--darken:focus,.u-resetSpectrum .u-baseColor--link.link--darken:active {color: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--link.link--dark {color: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-resetSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-resetSpectrum .u-baseColor--link.link--dark.link--darken:active {color: rgba(0, 0, 0, 0.8) !important;}
.u-resetSpectrum .u-baseColor--link.link--darker {color: rgba(0, 0, 0, 0.8) !important;}
.u-resetSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);}
.u-resetSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);}
.u-resetSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);}
.u-resetSpectrum .svgIcon--logoNew path:nth-child(1) {stroke: none !important; fill: rgba(0, 0, 0, 0.2) !important;}
.u-resetSpectrum .svgIcon--logoNew path:nth-child(2) {stroke: none !important; fill: rgba(0, 0, 0, 0.2980392156862745) !important;}
.u-resetSpectrum .svgIcon--logoNew path:nth-child(3) {stroke: none !important; fill: rgba(0, 0, 0, 0.4) !important;}
.u-resetSpectrum .svgIcon--logoNew path:nth-child(4) {stroke: none !important; fill: rgba(0, 0, 0, 0.4980392156862745) !important;}
.u-resetSpectrum .svgIcon--logoWordmark {stroke: none !important; fill: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum .svgIcon--logoMonogram {stroke: none !important; fill: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum  .ui-h1,.u-resetSpectrum  .ui-h2,.u-resetSpectrum  .ui-h3,.u-resetSpectrum  .ui-h4,.u-resetSpectrum  .ui-brand1,.u-resetSpectrum  .ui-brand2,.u-resetSpectrum  .ui-captionStrong {color: rgba(0, 0, 0, 0.8) !important; fill: rgba(0, 0, 0, 0.8) !important;}
.u-resetSpectrum  .ui-body,.u-resetSpectrum  .ui-caps {color: rgba(0, 0, 0, 0.6) !important; fill: rgba(0, 0, 0, 0.6) !important;}
.u-resetSpectrum  .ui-summary,.u-resetSpectrum  .ui-caption {color: rgba(0, 0, 0, 0.2980392156862745) !important; fill: rgba(0, 0, 0, 0.2980392156862745) !important;}
.u-resetSpectrum .u-accentColor--borderLight {border-color: rgba(2, 184, 117, 1) !important;}
.u-resetSpectrum .u-accentColor--borderNormal {border-color: rgba(2, 184, 117, 1) !important;}
.u-resetSpectrum .u-accentColor--borderDark {border-color: rgba(0, 171, 107, 1) !important;}
.u-resetSpectrum .u-accentColor--iconLight .svgIcon,.u-resetSpectrum .u-accentColor--iconLight.svgIcon {fill: rgba(2, 184, 117, 1) !important;}
.u-resetSpectrum .u-accentColor--iconNormal .svgIcon,.u-resetSpectrum .u-accentColor--iconNormal.svgIcon {fill: rgba(0, 171, 107, 1) !important;}
.u-resetSpectrum .u-accentColor--iconDark .svgIcon,.u-resetSpectrum .u-accentColor--iconDark.svgIcon {fill: rgba(28, 153, 99, 1) !important;}
.u-resetSpectrum .u-accentColor--textNormal {color: rgba(0, 171, 107, 1) !important;}
.u-resetSpectrum .u-accentColor--hoverTextNormal:hover {color: rgba(0, 171, 107, 1) !important;}
.u-resetSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: rgba(28, 153, 99, 1) !important;}
.u-resetSpectrum .u-accentColor--textDark {color: rgba(28, 153, 99, 1) !important;}
.u-resetSpectrum .u-accentColor--backgroundLight {background-color: rgba(2, 184, 117, 1) !important;}
.u-resetSpectrum .u-accentColor--backgroundNormal {background-color: rgba(0, 171, 107, 1) !important;}
.u-resetSpectrum .u-accentColor--backgroundDark {background-color: rgba(28, 153, 99, 1) !important;}
.u-resetSpectrum .u-accentColor--buttonDark {border-color: rgba(0, 171, 107, 1) !important; color: rgba(28, 153, 99, 1) !important;}
.u-resetSpectrum .u-accentColor--buttonDark:hover {border-color: rgba(28, 153, 99, 1) !important;}
.u-resetSpectrum .u-accentColor--buttonDark .icon:before,.u-resetSpectrum .u-accentColor--buttonDark .svgIcon{color: rgba(28, 153, 99, 1) !important; fill: rgba(28, 153, 99, 1) !important;}
.u-resetSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: rgba(2, 184, 117, 1) !important; color: rgba(0, 171, 107, 1) !important;}
.u-resetSpectrum .u-accentColor--buttonNormal:hover {border-color: rgba(0, 171, 107, 1) !important;}
.u-resetSpectrum .u-accentColor--buttonNormal .icon:before,.u-resetSpectrum .u-accentColor--buttonNormal .svgIcon{color: rgba(0, 171, 107, 1) !important; fill: rgba(0, 171, 107, 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(28, 153, 99, 1) !important; border-color: rgba(28, 153, 99, 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(0, 171, 107, 1) !important; border-color: rgba(0, 171, 107, 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(0, 171, 107, 1) !important;}</style><div class="js-collectionFooter u-hide"><div class="container u-maxWidth1040"><div class="u-marginTop10 u-paddingTop10 u-paddingBottom30 u-borderTopLighter"><div class="linkSet u-clearfix"><div class="u-floatRight u-textColorNormal u-baseColor--textNormal u-xs-floatLeft"><a class="button button--chromeless u-baseColor--buttonNormal u-marginLeft15 u-lineHeight35 u-xs-block u-xs-marginLeft0"   href="https://chronicbuildfailure.co/about" title="About Chronic Build Failure" aria-label="About Chronic Build Failure" data-collection-slug="chronic-build-failure">About Chronic Build Failure</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block"   href="https://chronicbuildfailure.co/latest" title="Latest Stories for Chronic Build Failure" aria-label="Latest Stories for Chronic Build Failure" data-collection-slug="chronic-build-failure">Latest Stories</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block"   href="https://chronicbuildfailure.co/archive" title="Archive for Chronic Build Failure" aria-label="Archive for Chronic Build Failure" data-collection-slug="chronic-build-failure">Archive</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block"   href="https://about.medium.com">About Medium</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block"   href="https://medium.com/policy/9db0094a1e0f">Terms</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block"   href="https://medium.com/policy/f03bf92035c9">Privacy</a></div></div></div></div></div></div></div></div><div class="loadingBar"></div><script>// <![CDATA[
window["obvInit"] = function (opt_embedded) {window["obvInit"]["embedded"] = opt_embedded; window["obvInit"]["ready"] = true;}
// ]]></script><script>// <![CDATA[
var GLOBALS = {"audioUrl":"https://d1fcbxp97j4nb2.cloudfront.net","baseUrl":"https://chronicbuildfailure.co","buildLabel":"33501-c75a731","currentUser":{"userId":"lo_jsbghHNJcPR7","isVerified":false,"subscriberEmail":"","hasPastMemberships":false,"isEnrolledInHightower":false,"isEligibleForHightower":false,"hightowerLastLockedAt":0},"currentUserHasUnverifiedEmail":false,"isAuthenticated":false,"isCurrentUserVerified":false,"mediumTwitterScreenName":"medium","miroUrl":"https://cdn-images-1.medium.com","moduleUrls":{"base":"https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.s6bOpRU41OIUJxYZktHpkA.js","common-async":"https://cdn-static-1.medium.com/_/fp/gen-js/main-common-async.bundle.2qNri8g1ppyOm24W23jlZw.js","hightower":"https://cdn-static-1.medium.com/_/fp/gen-js/main-hightower.bundle.DsGj0ZOCAigrj4D6iLusWQ.js","home-screens":"https://cdn-static-1.medium.com/_/fp/gen-js/main-home-screens.bundle._VFsP4irb4sf-k-Q-gtnYg.js","misc-screens":"https://cdn-static-1.medium.com/_/fp/gen-js/main-misc-screens.bundle.nZuw2VEQ6GqLU15iRUX9Lw.js","notes":"https://cdn-static-1.medium.com/_/fp/gen-js/main-notes.bundle.BEwdf2YsKKVXpf2VkgSv7Q.js","payments":"https://cdn-static-1.medium.com/_/fp/gen-js/main-payments.bundle.ZSrlB3mXBfJrEdrLgld8XA.js","posters":"https://cdn-static-1.medium.com/_/fp/gen-js/main-posters.bundle.SWwFDovfr-SuNmeCKkiWsA.js","power-readers":"https://cdn-static-1.medium.com/_/fp/gen-js/main-power-readers.bundle.yj11FfhEUbAmFOIo-w7sWg.js","pubs":"https://cdn-static-1.medium.com/_/fp/gen-js/main-pubs.bundle._3CRksookS2EGyl1IYANTw.js","stats":"https://cdn-static-1.medium.com/_/fp/gen-js/main-stats.bundle.efyOpWCjxF-GS-_fHj2cGw.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":"//medium.com/policy/9db0094a1e0f","textshotHost":"textshot.medium.com","transactionId":"1524650274273:3240e84b9113","useragent":{"browser":"other","family":"","os":"","version":0,"supportsDesktopEdit":false,"supportsInteract":false,"supportsView":true,"isMobile":false,"isTablet":false,"isNative":false,"supportsFileAPI":false,"isTier1":false,"clientVersion":"","unknownParagraphsBad":false,"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,"supportsScrollableMetabar":false},"variants":{"allow_access":true,"allow_signup":true,"allow_test_auth":"disallow","signin_services":"twitter,facebook,google,email,google-fastidv","signup_services":"twitter,facebook,google,email,google-fastidv","android_rating_prompt_recommend_threshold":5,"google_sign_in_android":true,"reengagement_notification_duration":3,"browsable_stream_config_bucket":"curated-topics","enable_series_creation":true,"enable_your_series_pages":true,"enable_productionized_series":true,"enable_dedicated_series_tab_api_ios":true,"enable_clap_milestone_notifications":true,"enable_series_stats_page":true,"enable_post_import":true,"enable_export_members":true,"enable_series_card_background_creation":true,"available_monthly_plan":"60e220181034","available_annual_plan":"2c754bcc2995","enable_sms":true,"is_not_medium_subscriber":true,"disable_followed_tag_fan_out":true,"enable_glyph":true,"glyph_font_set":"m2","enable_branding":true,"enable_branding_fonts":true,"enable_sequence_carousel":true,"enable_multirecommends":true,"enable_post_monger_v2":true,"enable_post_monger_v3":true,"enable_hightower_editor_copy_v2":true,"enable_user_post_metering":true,"max_premium_content_per_user_under_metering":3,"tag_intercom_user_on_metering_count":3,"enable_topic_writer_onboarding":true,"enable_strong_graph_chp_reorder":true,"enable_unsplash_images":true,"enable_top_stories_for_you":true,"enable_ios_member_post_labeling":true,"enable_li_search_collection":true,"enable_homepage_remodel":true,"enable_signin_wall_custom_domain":true,"enable_standalone_profile_edit_page":true,"enable_standalone_user_follow_pages":true,"enable_post_footer_copy":true,"app_download_email_template":"control","enable_hack_series_web":true,"enable_infinite_ranked_feed":true,"enable_topic_lifecycle_email":true,"enable_marketing_emails":true,"enable_ranked_feed_in_digest":true,"enable_more_top_posts_in_digest":true,"enable_curation_post_locking":true,"disable_ios_popchunk_ui":true,"disable_android_popchunk_ui":true,"enable_email_automation_system":true,"ios_hide_avatars_on_home":true,"raise_editors_picks_digest":"control","disable_ios_nfyn_carousel_ui":true,"disable_ios_popular_on_medium_carousel_ui":true,"disable_ios_reading_list_carousel_ui":true,"android_disable_author_avatars":true,"enable_evergreen_provider_homepage_li":true,"enable_persistent_user_id_for_dnt":true,"enable_evergreen_section_digest":true,"deprecate_old_sequences":true,"enable_truncated_rss_for_tags_and_topics":true,"enable_ios_related_reads_ui_large":true,"enable_ios_responses_collapsed":true},"xsrfToken":"","iosAppId":"828256236","supportEmail":"yourfriends@medium.com","fp":{"/icons/monogram-mask.svg":"https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.svg","/icons/favicon-dev-editor.ico":"https://cdn-static-1.medium.com/_/fp/icons/favicon-dev-editor.YKKRxBO8EMvIqhyCwIiJeQ.ico","/icons/favicon-hatch-editor.ico":"https://cdn-static-1.medium.com/_/fp/icons/favicon-hatch-editor.BuEyHIqlyh2s_XEk4Rl32Q.ico","/icons/favicon-medium-editor.ico":"https://cdn-static-1.medium.com/_/fp/icons/favicon-medium-editor.PiakrZWB7Yb80quUVQWM6g.ico"},"authBaseUrl":"https://medium.com","imageUploadSizeMb":25,"isAuthDomainRequest":false,"domainCollectionSlug":"chronic-build-failure","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":"UA-24232453-2","jsShivUrl":"https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.js","useDynamicCss":false,"faviconUrl":"https://cdn-static-1.medium.com/_/fp/icons/favicon-rebrand-medium.3Y6xpZ-0FSdWDnPM3hSBIA.ico","faviconImageId":"1*8I-HPL0bfoIzGied-dzOvA.png","fontSets":[{"id":8,"url":"https://glyph.medium.com/css/e/sr/latin/e/ssr/latin/e/ssb/latin/m2.css"},{"id":9,"url":"https://glyph.medium.com/css/mkt.css"},{"id":10,"url":"https://glyph.medium.com/css/elv8.css"}],"editorFaviconUrl":"https://cdn-static-1.medium.com/_/fp/icons/favicon-rebrand-medium-editor.3Y6xpZ-0FSdWDnPM3hSBIA.ico","glyphUrl":"https://glyph.medium.com"},"authBaseUrlRev":"moc.muidem//:sptth","isDnt":false,"stripePublishableKey":"pk_live_7FReX44VnNIInZwrIIx6ghjl","archiveUploadSizeMb":100,"paymentData":{"currencies":{"1":{"label":"US Dollar","external":"usd"}},"countries":{"1":{"label":"United States of America","external":"US"}},"accountTypes":{"1":{"label":"Individual","external":"individual"},"2":{"label":"Company","external":"company"}}},"previewConfig2":{"weightThreshold":1,"weightImageParagraph":0.05,"raiseImage":true,"enforceHeaderHierarchy":true,"isImageInsetRight":true},"isAmp":false,"iosScheme":"medium","isSwBoot":false,"lightstep":{"accessToken":"ce5be895bef60919541332990ac9fef2","carrier":"{\"ot-tracer-spanid\":\"6fce5f0b5b465312\",\"ot-tracer-traceid\":\"620dc47b74b431b2\",\"ot-tracer-sampled\":\"true\"}","host":"collector-medium.lightstep.com"},"facebook":{"key":"542599432471018","namespace":"medium-com","scope":{"default":["public_profile","email","user_friends"],"connect":["public_profile","email","user_friends"],"login":["public_profile","email","user_friends"],"share":["public_profile","email","user_friends","publish_actions"]}},"mailingListArchiveUploadSizeMb":2,"editorsPicksTopicId":"3985d2a191c5","popularOnMediumTopicId":"9d34e48ecf94","memberContentTopicId":"13d7efd82fb2","audioContentTopicId":"3792abbd134","brandedSequenceId":"7d337ddf1941","isDoNotAuth":false,"goldfinchUrl":"https://goldfinch.medium.com","buggle":{"url":"https://buggle.medium.com","videoUrl":"https://cdn-videos-1.medium.com","audioUrl":"https://cdn-audio-1.medium.com"},"referrerType":5,"isMeteredOut":false,"meterConfig":{"maxUnlockCount":3,"windowLength":"MONTHLY"},"partnerProgramEmail":"partnerprogram@medium.com","userResearchPrompts":[{"promptId":"lo_post_page_4","type":0,"url":"www.calendly.com"},{"promptId":"lo_home_page","type":1,"url":"www.calendly.com"},{"promptId":"lo_profile_page","type":2,"url":"www.calendly.com"}],"recaptchaKey":"6LdAokEUAAAAAC7seICd4vtC8chDb3jIXDQulyUJ","paypalClientMode":"production","signinWallCustomDomainCollectionIds":["3a8144eabfe3","336d898217ee","61061eb0c96b","138adf9c44c","819cc2aaeee0"],"countryCode":"US"}
// ]]></script><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.s6bOpRU41OIUJxYZktHpkA.js" async></script><script>// <![CDATA[
window["obvInit"]({"references":{"Collection":{"6efbd51be2a5":{"id":"6efbd51be2a5","name":"Chronic Build Failure","slug":"chronic-build-failure","tags":["RUBY","DEVOPS","SOFTWARE DEVELOPMENT"],"creatorId":"ad0e2af15627","description":"Mindless ramblings from a supposedly professional software developer.","shortDescription":"Mindless ramblings from a supposedly professional software…","image":{"imageId":"1*r-_XTOvMHrtJynurrdZVLQ.png","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"followerCount":14,"activeAt":1524493861394},"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},"isSubscribed":false,"isNewsletterSubscribed":false,"memberOfMembershipPlanId":"","isEnrolledInHightower":false,"isEligibleForHightower":false},"logo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"twitterUsername":"binarycleric","domain":"chronicbuildfailure.co","sections":[{"type":2,"collectionHeaderMetadata":{"title":"Chronic Build Failure","description":"Mindless ramblings from a supposedly professional software developer.","backgroundImage":{},"logoImage":{"id":"1*r-_XTOvMHrtJynurrdZVLQ.png","originalWidth":512,"originalHeight":512},"alignment":1,"layout":6}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":5,"postIds":[]}}],"favicon":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"colorPalette":{"defaultBackgroundSpectrum":{"colorPoints":[{"color":"#FF02B875","point":0},{"color":"#FF00AB6B","point":0.1},{"color":"#FF1C9963","point":0.2},{"color":"#FF092E20","point":1}],"backgroundColor":"#FFFFFFFF"},"highlightSpectrum":{"colorPoints":[{"color":"#FFFFFFFF","point":0},{"color":"#FFE9FDF0","point":0.1},{"color":"#FFE2FAEE","point":0.2},{"color":"#FFADFFCF","point":0.6},{"color":"#FF7DFFB3","point":1}],"backgroundColor":"#FFFFFFFF"}},"navItems":[],"ampLogo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"header":{"title":"Chronic Build Failure","description":"Mindless ramblings from a supposedly professional software developer.","backgroundImage":{},"logoImage":{"id":"1*r-_XTOvMHrtJynurrdZVLQ.png","originalWidth":512,"originalHeight":512},"alignment":1},"type":"Collection"}},"User":{"ad0e2af15627":{"userId":"ad0e2af15627","name":"Jon Daniel","username":"binarycleric","createdAt":1391723496482,"lastPostCreatedAt":1524426859580,"imageId":"1*HwZtUgMNzraX36YtgT55wA.jpeg","backgroundImageId":"","bio":"Software Developer. Supposedly Professional. Others fret, hesitate, calculate, and pontificate. Like Winnie the Pooh, I just am.","allowNotes":1,"mediumMemberAt":0,"isNsfw":false,"type":"User"}},"Post":{"5ad7713201d5":{"id":"5ad7713201d5","versionId":"ee3d7642afb7","creatorId":"ad0e2af15627","homeCollectionId":"6efbd51be2a5","title":"Splitting up modules in Rust","detectedLanguage":"en","latestVersion":"ee3d7642afb7","latestPublishedVersion":"ee3d7642afb7","hasUnpublishedEdits":false,"latestRev":566,"createdAt":1524426859580,"updatedAt":1524586848106,"acceptedAt":0,"firstPublishedAt":1524493861180,"latestPublishedAt":1524519794011,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"A few weeks ago, I decided to prioritize learning Rust over a few other potential side projects. I had played around with the language a…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*G7s9GgBsZhEVIVsb5dbHHQ.png","filter":"","backgroundSize":"","originalWidth":600,"originalHeight":400,"strategy":"resample","height":0,"width":0},"wordCount":525,"imageCount":2,"readingTime":2.3644654088050316,"subtitle":"A few weeks ago, I decided to prioritize learning Rust over a few other potential side projects. I had played around with the language a…","publishedInCount":1,"usersBySocialRecommends":[],"recommends":14,"isBookmarked":false,"tags":[{"slug":"programming","name":"Programming","postCount":61395,"virtuals":{"isFollowing":false},"metadata":{"followerCount":48036,"postCount":61395,"coverImage":{"id":"1*HTRqXgr7CVtRBsyTxurQew.jpeg","originalWidth":800,"originalHeight":523}},"type":"Tag"},{"slug":"rust","name":"Rust","postCount":657,"virtuals":{"isFollowing":false},"metadata":{"followerCount":561,"postCount":657,"coverImage":{"id":"1*G7s9GgBsZhEVIVsb5dbHHQ.png","originalWidth":600,"originalHeight":400}},"type":"Tag"},{"slug":"rustlang","name":"Rustlang","postCount":172,"virtuals":{"isFollowing":false},"metadata":{"followerCount":234,"postCount":172,"coverImage":{"id":"1*G7s9GgBsZhEVIVsb5dbHHQ.png","originalWidth":600,"originalHeight":400}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://doc.rust-lang.org/nightly/std/collections/struct.HashMap.html","alts":[],"httpStatus":200},{"url":"https://redis.io/topics/protocol","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1524519794780},"isLockedPreviewOnly":false,"takeoverId":"","metaDescription":"","totalClapCount":129,"sectionCount":1,"readingList":0},"coverless":true,"slug":"splitting-up-modules-in-rust","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"splitting-up-modules-in-rust-5ad7713201d5","previewContent":{"bodyModel":{"paragraphs":[{"name":"20cb","type":3,"text":"Splitting up modules in Rust","markups":[],"alignment":1},{"name":"6588","type":4,"text":"","markups":[],"layout":9,"metadata":{"id":"1*G7s9GgBsZhEVIVsb5dbHHQ.png","originalWidth":600,"originalHeight":400}},{"name":"094c","type":1,"text":"A few weeks ago, I decided to prioritize learning Rust over a few other potential side projects. I had played…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"6efbd51be2a5","newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":true,"isSponsored":false,"isRequestToPubDisabled":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isNsfw":false,"isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"featureLockRequestMinimumGuaranteeAmount":0,"isElevate":false,"mongerRequestType":1,"type":"Post"},"a622b9e50fba":{"id":"a622b9e50fba","versionId":"203fe934c1ff","creatorId":"ad0e2af15627","homeCollectionId":"6efbd51be2a5","title":"Electron is {derogatory_phrase_here}!!!111","detectedLanguage":"en","latestVersion":"203fe934c1ff","latestPublishedVersion":"203fe934c1ff","hasUnpublishedEdits":false,"latestRev":229,"createdAt":1515604332246,"updatedAt":1523929073646,"acceptedAt":0,"firstPublishedAt":1515606001766,"latestPublishedAt":1515686509354,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Do I have your attention?","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*9ce5Yft8Cqg3Vt63pVGNkw.png","filter":"","backgroundSize":"","originalWidth":1200,"originalHeight":648,"strategy":"resample","height":0,"width":0},"wordCount":341,"imageCount":1,"readingTime":1.4867924528301886,"subtitle":"Do I have your attention?","publishedInCount":1,"usersBySocialRecommends":[],"recommends":32,"isBookmarked":false,"tags":[{"slug":"javascript","name":"JavaScript","postCount":64795,"virtuals":{"isFollowing":false},"metadata":{"followerCount":41097,"postCount":64795,"coverImage":{"id":"1*fT7mE04QbF6BT7D7M6tqmQ.png","originalWidth":312,"originalHeight":312,"isFeatured":true}},"type":"Tag"},{"slug":"electron","name":"Electron","postCount":464,"virtuals":{"isFollowing":false},"metadata":{"followerCount":370,"postCount":464,"coverImage":{"id":"1*PQwgjFvq8KcaNOyjZqC5ig.jpeg","originalWidth":1746,"originalHeight":1133}},"type":"Tag"},{"slug":"programming","name":"Programming","postCount":61395,"virtuals":{"isFollowing":false},"metadata":{"followerCount":48036,"postCount":61395,"coverImage":{"id":"1*HTRqXgr7CVtRBsyTxurQew.jpeg","originalWidth":800,"originalHeight":523}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":2,"links":{"entries":[{"url":"https://github.com/servo/servo","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1515686510560},"isLockedPreviewOnly":false,"takeoverId":"","metaDescription":"","totalClapCount":439,"sectionCount":1,"readingList":0},"coverless":true,"slug":"electron-is-derogatory-phrase-here-111","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"electron-is-derogatory-phrase-here-111-a622b9e50fba","previewContent":{"bodyModel":{"paragraphs":[{"name":"61da","type":3,"text":"Electron is {derogatory_phrase_here}!!!111","markups":[],"alignment":1},{"name":"297e","type":4,"text":"","markups":[],"layout":9,"metadata":{"id":"1*9ce5Yft8Cqg3Vt63pVGNkw.png","originalWidth":1200,"originalHeight":648}},{"name":"3fbe","type":1,"text":"Do I have your attention?","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"6efbd51be2a5","newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"isSponsored":false,"isRequestToPubDisabled":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isNsfw":false,"isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"featureLockRequestMinimumGuaranteeAmount":0,"isElevate":false,"mongerRequestType":1,"type":"Post"},"8b0af5c07cf3":{"id":"8b0af5c07cf3","versionId":"9b64625782a2","creatorId":"ad0e2af15627","homeCollectionId":"6efbd51be2a5","title":"Thoughts on Ruby’s Net::HTTP","detectedLanguage":"en","latestVersion":"9b64625782a2","latestPublishedVersion":"9b64625782a2","hasUnpublishedEdits":false,"latestRev":59,"createdAt":1513620498549,"updatedAt":1516726986386,"acceptedAt":0,"firstPublishedAt":1513620821670,"latestPublishedAt":1513780673451,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"This was written as a non-judgemental comment to a post on lobster.rs (think a smaller version of hackernews).","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*Y-QdVVj1adXj745T7rMKMg.png","filter":"","backgroundSize":"","originalWidth":1024,"originalHeight":576,"strategy":"resample","height":0,"width":0},"wordCount":335,"imageCount":1,"readingTime":1.4641509433962263,"subtitle":"This was written as a non-judgemental comment to a post on lobster.rs (think a smaller version of hackernews).","publishedInCount":1,"usersBySocialRecommends":[],"recommends":3,"isBookmarked":false,"tags":[{"slug":"ruby","name":"Ruby","postCount":6921,"virtuals":{"isFollowing":false},"metadata":{"followerCount":2296,"postCount":6921,"coverImage":{"id":"1*V4zhBhb33zKH2eNdc4A6bQ.png","originalWidth":905,"originalHeight":497}},"type":"Tag"},{"slug":"https","name":"Http","postCount":0,"virtuals":{"isFollowing":false},"metadata":{"followerCount":25,"postCount":0,"coverImage":{"id":"0*WzfXMNnEatQX-PkL.png","originalWidth":529,"originalHeight":258}},"type":"Tag"},{"slug":"programming","name":"Programming","postCount":61395,"virtuals":{"isFollowing":false},"metadata":{"followerCount":48036,"postCount":61395,"coverImage":{"id":"1*HTRqXgr7CVtRBsyTxurQew.jpeg","originalWidth":800,"originalHeight":523}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://github.com/excon/excon","alts":[],"httpStatus":200},{"url":"https://lobste.rs/","alts":[],"httpStatus":200},{"url":"https://engineering.wework.com/ruby-users-be-wary-of-net-http-f284747288b2","alts":[{"type":2,"url":"medium://p/f284747288b2"},{"type":3,"url":"medium://p/f284747288b2"}],"httpStatus":200}],"version":"0.3","generatedAt":1513780674606},"isLockedPreviewOnly":false,"takeoverId":"","metaDescription":"","totalClapCount":10,"sectionCount":1,"readingList":0},"coverless":true,"slug":"thoughts-on-rubys-net-http","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"thoughts-on-rubys-net-http-8b0af5c07cf3","previewContent":{"bodyModel":{"paragraphs":[{"name":"4d89","type":3,"text":"Thoughts on Ruby’s Net::HTTP","markups":[],"alignment":1},{"name":"cc98","type":4,"text":"","markups":[],"layout":9,"metadata":{"id":"1*Y-QdVVj1adXj745T7rMKMg.png","originalWidth":1024,"originalHeight":576}},{"name":"230e","type":1,"text":"This was written as a non-judgemental comment to a post on lobster.rs (think a smaller version of…","markups":[{"type":3,"start":59,"end":69,"href":"https://lobste.rs/","title":"","rel":"noopener","anchorType":0}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"6efbd51be2a5","newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"isSponsored":false,"isRequestToPubDisabled":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isNsfw":false,"isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"featureLockRequestMinimumGuaranteeAmount":0,"isElevate":false,"mongerRequestType":1,"type":"Post"},"2da7ac95bdd5":{"id":"2da7ac95bdd5","versionId":"ba8df785a0fb","creatorId":"ad0e2af15627","homeCollectionId":"6efbd51be2a5","title":"Fix Hiring and Train a New Generation","detectedLanguage":"en","latestVersion":"ba8df785a0fb","latestPublishedVersion":"ba8df785a0fb","hasUnpublishedEdits":false,"latestRev":664,"createdAt":1463595359687,"updatedAt":1508428533552,"acceptedAt":0,"firstPublishedAt":1470761647162,"latestPublishedAt":1470762065541,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Discussions about how to “fix tech hiring” and “improve diversity” are becoming common at tech conferences, developer meetups, and…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*2H3y-9kqxOf_2SjT6U3M_g.jpeg","filter":"","backgroundSize":"","originalWidth":4978,"originalHeight":3318,"strategy":"resample","height":0,"width":0},"wordCount":918,"imageCount":1,"readingTime":3.6641509433962267,"subtitle":"Discussions about how to “fix tech hiring” and “improve diversity” are becoming common at tech conferences, developer meetups, and…","publishedInCount":1,"usersBySocialRecommends":[],"recommends":2,"isBookmarked":false,"tags":[{"slug":"tech","name":"Tech","postCount":123881,"virtuals":{"isFollowing":false},"metadata":{"followerCount":1069674,"postCount":123881,"coverImage":{"id":"1*gBjaApzP8O4V-DyPHl1Gwg.png","originalWidth":1966,"originalHeight":1048}},"type":"Tag"},{"slug":"hiring","name":"Hiring","postCount":13825,"virtuals":{"isFollowing":false},"metadata":{"followerCount":1029,"postCount":13825,"coverImage":{"id":"1*40DwtkJLydJytU9BuN52-Q.png","originalWidth":1200,"originalHeight":628}},"type":"Tag"},{"slug":"apprenticeship","name":"Apprenticeship","postCount":671,"virtuals":{"isFollowing":false},"metadata":{"followerCount":17,"postCount":671,"coverImage":{"id":"1*XfvDCY1Uousvx9RzsE7eXQ.jpeg","originalWidth":6000,"originalHeight":4000}},"type":"Tag"},{"slug":"programming","name":"Programming","postCount":61395,"virtuals":{"isFollowing":false},"metadata":{"followerCount":48036,"postCount":61395,"coverImage":{"id":"1*HTRqXgr7CVtRBsyTxurQew.jpeg","originalWidth":800,"originalHeight":523}},"type":"Tag"},{"slug":"social-justice","name":"Social Justice","postCount":10605,"virtuals":{"isFollowing":false},"metadata":{"followerCount":93279,"postCount":10605,"coverImage":{"id":"1*7vmxg6NcQk0yVLHZMgky5Q.jpeg","originalWidth":480,"originalHeight":496,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://www.youtube.com/user/crashcourse","alts":[{"type":2,"url":"vnd.youtube://user/UCX6b17PVsYBQ0ip5gyeme-Q"},{"type":3,"url":"https://www.youtube.com/user/crashcourse?feature=applinks"}]}],"version":"0.3","generatedAt":1472232298041},"isLockedPreviewOnly":false,"takeoverId":"","metaDescription":"","totalClapCount":2,"sectionCount":3,"readingList":0},"coverless":true,"slug":"fix-hiring-and-train-a-new-generation","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"fix-hiring-and-train-a-new-generation-2da7ac95bdd5","previewContent":{"bodyModel":{"paragraphs":[{"name":"444e","type":4,"text":"","markups":[],"layout":9,"metadata":{"id":"1*2H3y-9kqxOf_2SjT6U3M_g.jpeg","originalWidth":4978,"originalHeight":3318}},{"name":"aa3b","type":3,"text":"Fix Hiring and Train a New Generation","markups":[],"alignment":1},{"name":"4387","type":1,"text":"Discussions about how to “fix tech hiring” and “improve diversity” are becoming common at…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"6efbd51be2a5","newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":true,"isSponsored":false,"isRequestToPubDisabled":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isNsfw":false,"isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"featureLockRequestMinimumGuaranteeAmount":0,"isElevate":false,"mongerRequestType":1,"type":"Post"},"4c7458f4f152":{"id":"4c7458f4f152","versionId":"467911a90f5","creatorId":"ad0e2af15627","homeCollectionId":"6efbd51be2a5","title":"Embrace Chaos. Day 1 in Unfamiliar Code.","detectedLanguage":"en","latestVersion":"467911a90f5","latestPublishedVersion":"467911a90f5","hasUnpublishedEdits":false,"latestRev":736,"createdAt":1455673835597,"updatedAt":1517426989886,"acceptedAt":0,"firstPublishedAt":1458658861647,"latestPublishedAt":1458665906742,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Note: This post was written before I was laid off by my employer but I still thought it was valuable to share. I plan on asking all of…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*pVJUtzsnsn_gjvOp4URilg.jpeg","filter":"","backgroundSize":"","originalWidth":800,"originalHeight":450,"strategy":"resample","height":0,"width":0},"wordCount":915,"imageCount":1,"readingTime":3.6528301886792454,"subtitle":"Note: This post was written before I was laid off by my employer but I still thought it was valuable to share. I plan on asking all of…","publishedInCount":1,"usersBySocialRecommends":[],"recommends":5,"isBookmarked":false,"tags":[{"slug":"software-development","name":"Software Development","postCount":37841,"virtuals":{"isFollowing":false},"metadata":{"followerCount":24143,"postCount":37841,"coverImage":{"id":"1*fT7mE04QbF6BT7D7M6tqmQ.png","originalWidth":312,"originalHeight":312,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://medium.com/chronic-build-failure/life-changed-in-an-instant-i-was-laid-off-3316a93881c0#.2wwfhq6gd","alts":[{"type":2,"url":"medium://p/3316a93881c0"},{"type":3,"url":"medium://p/3316a93881c0"}]}],"version":"0.3","generatedAt":1471938096168},"isLockedPreviewOnly":false,"takeoverId":"","metaDescription":"","totalClapCount":5,"sectionCount":4,"readingList":0},"coverless":true,"slug":"embrace-chaos-day-1-in-unfamiliar-code","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"embrace-chaos-day-1-in-unfamiliar-code-4c7458f4f152","previewContent":{"bodyModel":{"paragraphs":[{"name":"3ef7","type":3,"text":"Embrace Chaos. Day 1 in Unfamiliar Code.","markups":[],"alignment":1},{"name":"c3de","type":1,"text":"Note: This post was written before I was laid off by my employer but I still thought it was valuable to share. I plan on asking all of these questions when I begin my new job in the next few weeks/months. If you happen to know of anyone who is hiring Ruby…","markups":[{"type":3,"start":41,"end":49,"href":"https://medium.com/chronic-build-failure/life-changed-in-an-instant-i-was-laid-off-3316a93881c0#.2wwfhq6gd","title":"","rel":"","anchorType":0},{"type":1,"start":0,"end":5}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"6efbd51be2a5","newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"isSponsored":false,"isRequestToPubDisabled":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isNsfw":false,"isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"featureLockRequestMinimumGuaranteeAmount":0,"isElevate":false,"mongerRequestType":1,"type":"Post"}}},"paging":{"path":"/_/api/collections/6efbd51be2a5/stream","next":{"to":"1458658861647","ignoredIds":[],"page":2}},"collection":{"id":"6efbd51be2a5","name":"Chronic Build Failure","slug":"chronic-build-failure","tags":["RUBY","DEVOPS","SOFTWARE DEVELOPMENT"],"creatorId":"ad0e2af15627","description":"Mindless ramblings from a supposedly professional software developer.","shortDescription":"Mindless ramblings from a supposedly professional software…","image":{"imageId":"1*r-_XTOvMHrtJynurrdZVLQ.png","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"followerCount":14,"activeAt":1524493861394},"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},"isSubscribed":false,"isNewsletterSubscribed":false,"memberOfMembershipPlanId":"","isEnrolledInHightower":false,"isEligibleForHightower":false},"logo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"twitterUsername":"binarycleric","domain":"chronicbuildfailure.co","sections":[{"type":2,"collectionHeaderMetadata":{"title":"Chronic Build Failure","description":"Mindless ramblings from a supposedly professional software developer.","backgroundImage":{},"logoImage":{"id":"1*r-_XTOvMHrtJynurrdZVLQ.png","originalWidth":512,"originalHeight":512},"alignment":1,"layout":6}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":5,"postIds":["5ad7713201d5","a622b9e50fba","8b0af5c07cf3","2da7ac95bdd5","4c7458f4f152"]}}],"favicon":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"colorPalette":{"defaultBackgroundSpectrum":{"colorPoints":[{"color":"#FF02B875","point":0},{"color":"#FF00AB6B","point":0.1},{"color":"#FF1C9963","point":0.2},{"color":"#FF092E20","point":1}],"backgroundColor":"#FFFFFFFF"},"highlightSpectrum":{"colorPoints":[{"color":"#FFFFFFFF","point":0},{"color":"#FFE9FDF0","point":0.1},{"color":"#FFE2FAEE","point":0.2},{"color":"#FFADFFCF","point":0.6},{"color":"#FF7DFFB3","point":1}],"backgroundColor":"#FFFFFFFF"}},"navItems":[],"ampLogo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"header":{"title":"Chronic Build Failure","description":"Mindless ramblings from a supposedly professional software developer.","backgroundImage":{},"logoImage":{"id":"1*r-_XTOvMHrtJynurrdZVLQ.png","originalWidth":512,"originalHeight":512},"alignment":1},"type":"Collection"},"header":{"title":"Chronic Build Failure","description":"Mindless ramblings from a supposedly professional software developer.","backgroundImage":{},"logoImage":{"id":"1*r-_XTOvMHrtJynurrdZVLQ.png","originalWidth":512,"originalHeight":512},"alignment":1},"streamItems":[{"createdAt":1524650274550,"randomId":"9012d2523a5","section":{"items":[{"post":{"postId":"5ad7713201d5"},"itemType":"post"},{"post":{"postId":"a622b9e50fba"},"itemType":"post"},{"post":{"postId":"8b0af5c07cf3"},"itemType":"post"},{"post":{"postId":"2da7ac95bdd5"},"itemType":"post"},{"post":{"postId":"4c7458f4f152"},"itemType":"post"}],"layout":4},"itemType":"section","type":"StreamItem"}]})
// ]]></script></body></html>